diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2014-09-09 12:14:01 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2014-09-09 12:14:01 +0200 |
| commit | 8e5d28aec9368c29acec858e9d748ed2ed5eb397 (patch) | |
| tree | f80282cb0c9ab47159816ca3c3a8f7c193103e65 | |
| parent | 7690395f52e3d0853695cea77f0103fb56c81838 (diff) | |
Support move to using UUIDs and ItemPaths as Item identifiers instead of
ints.
25 files changed, 83 insertions, 87 deletions
diff --git a/bin/eclipse/Cristal Kernel GUI.launch b/bin/eclipse/Cristal Kernel GUI.launch index c0a78e5..e63b995 100644 --- a/bin/eclipse/Cristal Kernel GUI.launch +++ b/bin/eclipse/Cristal Kernel GUI.launch @@ -7,10 +7,6 @@ <listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.debug.ui.ATTR_CONSOLE_ENCODING" value="UTF-8"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.c2kernel.gui.Main"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-logLevel 0 -config bin/conf/client.conf -connect ${file_prompt}"/>
diff --git a/src/main/java/com/c2kernel/gui/ItemDetails.java b/src/main/java/com/c2kernel/gui/ItemDetails.java index 92fc077..cc8b8d3 100644 --- a/src/main/java/com/c2kernel/gui/ItemDetails.java +++ b/src/main/java/com/c2kernel/gui/ItemDetails.java @@ -19,6 +19,7 @@ import javax.swing.event.ChangeListener; import com.c2kernel.gui.tabs.ItemTabPane;
import com.c2kernel.gui.tree.NodeItem;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.utils.Language;
import com.c2kernel.utils.Logger;
@@ -141,7 +142,7 @@ public class ItemDetails extends JPanel implements ChangeListener, Runnable { gridbag.setConstraints(current, c);
titlePanel.add(current);
// Place Name/ID Label
- current = new JLabel(myItem.getName() + " (" + myItem.getSysKey() + ")");
+ current = new JLabel(myItem.getName() + " (" + myItem.getItemPath().getUUID().toString() + ")");
c.gridx = 1; c.gridy = 0; c.gridheight = 1;
c.anchor = GridBagConstraints.NORTH; c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1.0; c.ipadx = 2; c.ipady = 2;
@@ -169,14 +170,14 @@ public class ItemDetails extends JPanel implements ChangeListener, Runnable { }
}
- public int getSysKey()
+ public ItemPath getItemPath()
{
- return myItem.getSysKey();
+ return myItem.getItemPath();
}
public void closeTab() {
- desktopManager.remove(myItem.getSysKey());
- Logger.msg(5,"Remove master Tab :"+myItem.getType()+ " SysKey "+myItem.getSysKey());
+ desktopManager.remove(myItem.getItemPath());
+ Logger.msg(5,"Remove master Tab :"+myItem.getType()+ " SysKey "+myItem.getItemPath());
myItem.getItem().dumpSubscriptions(5);
}
@@ -224,7 +225,7 @@ public class ItemDetails extends JPanel implements ChangeListener, Runnable { */
@Override
protected void finalize() throws Throwable {
- Logger.msg(7, "EntityDetails "+myItem.getSysKey()+" reaped");
+ Logger.msg(7, "EntityDetails "+myItem.getItemPath()+" reaped");
super.finalize();
}
diff --git a/src/main/java/com/c2kernel/gui/ItemTabManager.java b/src/main/java/com/c2kernel/gui/ItemTabManager.java index 2c07207..bb0dfd9 100644 --- a/src/main/java/com/c2kernel/gui/ItemTabManager.java +++ b/src/main/java/com/c2kernel/gui/ItemTabManager.java @@ -8,6 +8,7 @@ import javax.swing.JPanel; import com.c2kernel.gui.tabs.JTabbedPaneWithCloseIcons;
import com.c2kernel.gui.tree.NodeItem;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.utils.Logger;
/**
@@ -20,7 +21,7 @@ import com.c2kernel.utils.Logger; public class ItemTabManager extends JPanel
{
- protected HashMap<Integer, ItemDetails> openItems = new HashMap<Integer, ItemDetails>();
+ protected HashMap<ItemPath, ItemDetails> openItems = new HashMap<ItemPath, ItemDetails>();
protected JTabbedPaneWithCloseIcons tabbedPane = new JTabbedPaneWithCloseIcons();
//JTabbedPane tabbedPane = new JTabbedPane();
MenuBuilder myMenuBuilder;
@@ -37,21 +38,21 @@ public class ItemTabManager extends JPanel public ItemDetails add(NodeItem thisItem) {
ItemDetails requestedDetails;
- if (!openItems.containsKey(new Integer(thisItem.getSysKey()))) {
+ if (!openItems.containsKey(thisItem.getItemPath())) {
MainFrame.progress.startBouncing("Opening "+thisItem.getName()+". Please wait.");
- Logger.msg(1, "ItemWindowManager.add() - Window for syskey "+thisItem.getSysKey()+" not found. Opening new one.");
+ Logger.msg(1, "ItemWindowManager.add() - Window for syskey "+thisItem.getItemPath()+" not found. Opening new one.");
requestedDetails = new ItemDetails(thisItem);
Thread itemLoader = new Thread(requestedDetails);
itemLoader.start();
- openItems.put(new Integer(thisItem.getSysKey()), requestedDetails);
+ openItems.put(thisItem.getItemPath(), requestedDetails);
requestedDetails.setDesktopManager(this);
// get currently selected item to set location
- tabbedPane.addTab(thisItem.getName(), thisItem.getIcon(), requestedDetails, Integer.toString(thisItem.getSysKey()));
+ tabbedPane.addTab(thisItem.getName(), thisItem.getIcon(), requestedDetails, thisItem.getType());
}
else { //opened window but different nodeitem
- requestedDetails = openItems.get(new Integer(thisItem.getSysKey()));
+ requestedDetails = openItems.get(thisItem.getItemPath());
}
tabbedPane.setSelectedComponent(requestedDetails);
return requestedDetails;
@@ -61,24 +62,22 @@ public class ItemTabManager extends JPanel this.myMenuBuilder = myMenuBuilder;
}
- @Override
- public void remove(int sysKey) {
- Integer sysKeyObj = new Integer(sysKey);
- if (!openItems.containsKey(sysKeyObj)) return;
- ItemDetails tabToClose = openItems.get(sysKeyObj);
+ public void remove(ItemPath itemPath) {
+ if (!openItems.containsKey(itemPath)) return;
+ ItemDetails tabToClose = openItems.get(itemPath);
tabbedPane.remove(tabToClose);
tabToClose.discardTabs();
- openItems.remove(sysKeyObj);
+ openItems.remove(itemPath);
}
public void closeAll(boolean keepOpen) {
- ArrayList<Integer> toRemove = new ArrayList<Integer>();
- for (Integer element : openItems.keySet()) {
+ ArrayList<ItemPath> toRemove = new ArrayList<ItemPath>();
+ for (ItemPath element : openItems.keySet()) {
if (keepOpen && openItems.get(element).equals(tabbedPane.getSelectedComponent())) continue;
toRemove.add(element);
}
- for (Integer element : toRemove) {
- remove(element.intValue());
+ for (ItemPath element : toRemove) {
+ remove(element);
}
}
}
diff --git a/src/main/java/com/c2kernel/gui/MenuBuilder.java b/src/main/java/com/c2kernel/gui/MenuBuilder.java index eba592f..ec01b4d 100644 --- a/src/main/java/com/c2kernel/gui/MenuBuilder.java +++ b/src/main/java/com/c2kernel/gui/MenuBuilder.java @@ -27,6 +27,7 @@ import javax.swing.text.html.HTMLEditorKit; import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.lookup.DomainPath;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.lookup.Path;
import com.c2kernel.persistency.ClusterStorage;
import com.c2kernel.process.Gateway;
@@ -100,9 +101,9 @@ public class MenuBuilder extends JMenuBar implements ActionListener, ItemListene while(servers.hasNext()) {
Path thisServerPath = (Path)servers.next();
try {
- int syskey = thisServerPath.getSysKey();
- String serverName = ((Property)Gateway.getStorage().get(syskey, ClusterStorage.PROPERTY+"/Name", null)).getValue();
- String portStr = ((Property)Gateway.getStorage().get(syskey, ClusterStorage.PROPERTY+"/ConsolePort", null)).getValue();
+ ItemPath serverItemPath = thisServerPath.getItemPath();
+ String serverName = ((Property)Gateway.getStorage().get(serverItemPath, ClusterStorage.PROPERTY+"/Name", null)).getValue();
+ String portStr = ((Property)Gateway.getStorage().get(serverItemPath, ClusterStorage.PROPERTY+"/ConsolePort", null)).getValue();
addMenuItem(serverName+":"+portStr, "console", null, 0);
} catch (Exception ex) {
Logger.error("Exception retrieving proxy server connection data for "+thisServerPath);
diff --git a/src/main/java/com/c2kernel/gui/collection/SelectedMemberPanel.java b/src/main/java/com/c2kernel/gui/collection/SelectedMemberPanel.java index 89479df..6b3865f 100644 --- a/src/main/java/com/c2kernel/gui/collection/SelectedMemberPanel.java +++ b/src/main/java/com/c2kernel/gui/collection/SelectedMemberPanel.java @@ -15,6 +15,7 @@ import javax.swing.JToggleButton; import com.c2kernel.collection.AggregationMember;
import com.c2kernel.collection.MembershipException;
+import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.entity.proxy.ItemProxy;
import com.c2kernel.graph.model.Vertex;
import com.c2kernel.gui.DomainKeyConsumer;
@@ -80,7 +81,7 @@ public class SelectedMemberPanel extends SelectedVertexPanel implements DomainKe }
else {
MainFrame.itemFinder.clearConsumer(me);
- if (selectedMember.getSystemKey() > -1) findButton.setEnabled(true);
+ if (selectedMember.getItemPath() != null) findButton.setEnabled(true);
}
}
});
@@ -109,12 +110,13 @@ public class SelectedMemberPanel extends SelectedVertexPanel implements DomainKe public void select(Vertex vert) {
selectedMember = (AggregationMember)vert;
slotNumber.setText(String.valueOf(vert.getID()));
- int memberId = selectedMember.getSystemKey();
+ ItemPath memberPath = selectedMember.getItemPath();
String name = "Empty";
- try {
- ItemProxy member = Gateway.getProxyManager().getProxy(new ItemPath(memberId));
- name = member.getName();
- } catch (Exception e) { }
+ if (memberPath != null)
+ try {
+ ItemProxy member = Gateway.getProxyManager().getProxy(memberPath);
+ name = member.getName();
+ } catch (Exception e) { }
memberKey.setText(name);
setButtons(true);
@@ -142,11 +144,13 @@ public class SelectedMemberPanel extends SelectedVertexPanel implements DomainKe @Override
public void push(DomainPath key) {
try {
- selectedMember.assignItem(key.getSysKey());
+ selectedMember.assignItem(key.getItemPath());
select(selectedMember);
} catch (MembershipException ex) {
- JOptionPane.showMessageDialog(null, "Product does not fit in this slot", "Error", JOptionPane.ERROR_MESSAGE);
- }
+ JOptionPane.showMessageDialog(null, "Item does not fit in this slot", "Error", JOptionPane.ERROR_MESSAGE);
+ } catch (ObjectNotFoundException e) {
+ JOptionPane.showMessageDialog(null, "Not an item - cannot assign", "Error", JOptionPane.ERROR_MESSAGE);
+ }
}
/**
@@ -154,7 +158,7 @@ public class SelectedMemberPanel extends SelectedVertexPanel implements DomainKe */
@Override
public void push(String name) {
- JOptionPane.showMessageDialog(null, "Product is not known in this centre", "Error", JOptionPane.ERROR_MESSAGE);
+ JOptionPane.showMessageDialog(null, "Item is not known in this centre", "Error", JOptionPane.ERROR_MESSAGE);
}
}
diff --git a/src/main/java/com/c2kernel/gui/lifecycle/instance/TransitionPanel.java b/src/main/java/com/c2kernel/gui/lifecycle/instance/TransitionPanel.java index 7806dc1..f9a1a81 100644 --- a/src/main/java/com/c2kernel/gui/lifecycle/instance/TransitionPanel.java +++ b/src/main/java/com/c2kernel/gui/lifecycle/instance/TransitionPanel.java @@ -178,7 +178,7 @@ public class TransitionPanel extends SelectedVertexPanel implements ActionListen try {
StateMachine actSM = mCurrentAct.getStateMachine();
Job thisJob = new Job(mCurrentAct,
- mItem.getSystemKey(),
+ mItem.getPath(),
actSM.getTransition(transition),
MainFrame.userAgent.getPath(),
"Admin");
diff --git a/src/main/java/com/c2kernel/gui/tabs/CollectionPane.java b/src/main/java/com/c2kernel/gui/tabs/CollectionPane.java index 4469af5..c55c4c7 100644 --- a/src/main/java/com/c2kernel/gui/tabs/CollectionPane.java +++ b/src/main/java/com/c2kernel/gui/tabs/CollectionPane.java @@ -99,7 +99,7 @@ public class CollectionPane extends ItemTabPane implements ProxyObserver<Collect @Override
public void reload()
{
- Gateway.getStorage().clearCache(sourceItem.getSysKey(), ClusterStorage.COLLECTION);
+ Gateway.getStorage().clearCache(sourceItem.getItemPath(), ClusterStorage.COLLECTION);
collTabs.removeAll();
initForItem(sourceItem);
}
diff --git a/src/main/java/com/c2kernel/gui/tabs/DomainPathAdmin.java b/src/main/java/com/c2kernel/gui/tabs/DomainPathAdmin.java index c5d6683..5745731 100644 --- a/src/main/java/com/c2kernel/gui/tabs/DomainPathAdmin.java +++ b/src/main/java/com/c2kernel/gui/tabs/DomainPathAdmin.java @@ -13,6 +13,7 @@ import javax.swing.JScrollPane; import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
+import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.entity.proxy.ItemProxy;
import com.c2kernel.gui.MainFrame;
import com.c2kernel.lookup.DomainPath;
@@ -118,8 +119,9 @@ public void actionPerformed(ActionEvent e) { domPaths.clear();
for (Iterator<?> currentPaths = Gateway.getLookup().search(new DomainPath(), entity.getName()); currentPaths.hasNext();) {
DomainPath thisPath = (DomainPath)currentPaths.next();
- if (thisPath.getSysKey() == entity.getSystemKey())
- domPaths.add(thisPath);
+ try {
+ if (thisPath.getItemPath().equals(entity.getPath())) domPaths.add(thisPath);
+ } catch (ObjectNotFoundException e) { }
}
fireTableDataChanged();
}
diff --git a/src/main/java/com/c2kernel/gui/tabs/HistoryPane.java b/src/main/java/com/c2kernel/gui/tabs/HistoryPane.java index 01fc3ff..ad10ad3 100644 --- a/src/main/java/com/c2kernel/gui/tabs/HistoryPane.java +++ b/src/main/java/com/c2kernel/gui/tabs/HistoryPane.java @@ -267,7 +267,7 @@ public class HistoryPane extends ItemTabPane implements ActionListener, ProxyObs case 2: return sm[rowIndex]==null?"Unknown":
sm[rowIndex].getTransition(event[rowIndex].getTransition()).getName();
case 3: return event[rowIndex].getTimeString();
- case 4: return event[rowIndex].getAgentName();
+ case 4: return event[rowIndex].getAgentPath().getAgentName();
case 5: return event[rowIndex].getAgentRole();
case 6: return event[rowIndex].getSchemaName()+" v"+event[rowIndex].getSchemaVersion();
case 7: return event[rowIndex].getViewName();
diff --git a/src/main/java/com/c2kernel/gui/tabs/JobListPane.java b/src/main/java/com/c2kernel/gui/tabs/JobListPane.java index bfc3019..4893ae5 100644 --- a/src/main/java/com/c2kernel/gui/tabs/JobListPane.java +++ b/src/main/java/com/c2kernel/gui/tabs/JobListPane.java @@ -197,7 +197,7 @@ public class JobListPane extends ItemTabPane implements ActionListener, ProxyObs job[idx] = joblist.getJob(thisJobId.intValue());
itemNames[idx] = "Item Not Found";
try {
- itemNames[idx] = ((Property)Gateway.getStorage().get(job[count-startId].getItemSysKey(), ClusterStorage.PROPERTY+"/Name", null)).getValue();
+ itemNames[idx] = ((Property)Gateway.getStorage().get(job[count-startId].getItemPath(), ClusterStorage.PROPERTY+"/Name", null)).getValue();
} catch (Exception ex) {
Logger.error(ex);
}
diff --git a/src/main/java/com/c2kernel/gui/tabs/PropertiesPane.java b/src/main/java/com/c2kernel/gui/tabs/PropertiesPane.java index fd12ba4..e9b882d 100644 --- a/src/main/java/com/c2kernel/gui/tabs/PropertiesPane.java +++ b/src/main/java/com/c2kernel/gui/tabs/PropertiesPane.java @@ -93,7 +93,7 @@ public class PropertiesPane extends ItemTabPane implements ProxyObserver<Propert @Override
public void reload() {
- Gateway.getStorage().clearCache(sourceItem.getSysKey(), ClusterStorage.PROPERTY);
+ Gateway.getStorage().clearCache(sourceItem.getItemPath(), ClusterStorage.PROPERTY);
loadedProps = new HashMap<String, JLabel>();
initForItem(sourceItem);
}
diff --git a/src/main/java/com/c2kernel/gui/tabs/ViewpointPane.java b/src/main/java/com/c2kernel/gui/tabs/ViewpointPane.java index 234f1db..7dea317 100644 --- a/src/main/java/com/c2kernel/gui/tabs/ViewpointPane.java +++ b/src/main/java/com/c2kernel/gui/tabs/ViewpointPane.java @@ -505,7 +505,7 @@ public class ViewpointPane extends ItemTabPane implements ItemListener, ActionLi try {
Event myEvent = (Event)sourceItem.getItem().getObject(ClusterStorage.HISTORY+"/"+eventId);
return (Language.translate("Recorded on")+" "+myEvent.getTimeString()+" "+
- Language.translate("by")+" "+myEvent.getAgentName()+" "+
+ Language.translate("by")+" "+myEvent.getAgentPath().getAgentName()+" "+
Language.translate("using schema v")+schemaVersion);
} catch (Exception ex) {
Logger.error(ex);
diff --git a/src/main/java/com/c2kernel/gui/tabs/WorkflowPane.java b/src/main/java/com/c2kernel/gui/tabs/WorkflowPane.java index bc31ac2..1a38470 100644 --- a/src/main/java/com/c2kernel/gui/tabs/WorkflowPane.java +++ b/src/main/java/com/c2kernel/gui/tabs/WorkflowPane.java @@ -185,7 +185,7 @@ public class WorkflowPane extends ItemTabPane implements ProxyObserver<Workflow> @Override
public void reload()
{
- Gateway.getStorage().clearCache(sourceItem.getSysKey(), ClusterStorage.LIFECYCLE);
+ Gateway.getStorage().clearCache(sourceItem.getItemPath(), ClusterStorage.LIFECYCLE);
initForItem(sourceItem);
}
protected void createLayout()
diff --git a/src/main/java/com/c2kernel/gui/tabs/collection/CollectionHistoryWindow.java b/src/main/java/com/c2kernel/gui/tabs/collection/CollectionHistoryWindow.java index a2e43f0..bfb81e8 100644 --- a/src/main/java/com/c2kernel/gui/tabs/collection/CollectionHistoryWindow.java +++ b/src/main/java/com/c2kernel/gui/tabs/collection/CollectionHistoryWindow.java @@ -4,6 +4,7 @@ import java.awt.HeadlessException; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
+import java.util.UUID;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
@@ -19,7 +20,6 @@ import com.c2kernel.entity.proxy.ProxyObserver; import com.c2kernel.events.Event;
import com.c2kernel.gui.MainFrame;
import com.c2kernel.lifecycle.instance.predefined.PredefinedStep;
-import com.c2kernel.lookup.InvalidItemPathException;
import com.c2kernel.lookup.ItemPath;
import com.c2kernel.persistency.ClusterStorage;
import com.c2kernel.persistency.outcome.Outcome;
@@ -96,13 +96,11 @@ public class CollectionHistoryWindow extends JFrame { return "Click to view";
String name;
try {
- ItemProxy childItem = Gateway.getProxyManager().getProxy(new ItemPath(Integer.parseInt(((String[])collEventData.get(rowIndex))[2])));
+ ItemProxy childItem = Gateway.getProxyManager().getProxy(new ItemPath(UUID.fromString(((String[])collEventData.get(rowIndex))[2])));
name = childItem.getName();
- } catch (NumberFormatException e) {
- name = "Invalid Item key: "+((String[])collEventData.get(rowIndex))[2];
} catch (ObjectNotFoundException e) {
name = "Item deleted: "+((String[])collEventData.get(rowIndex))[2];
- } catch (InvalidItemPathException e) {
+ } catch (IllegalArgumentException e) {
name = "Invalid Item key: "+((String[])collEventData.get(rowIndex))[2];
}
return name;
@@ -169,7 +167,7 @@ public class CollectionHistoryWindow extends JFrame { else {
String[] params = (String[])data;
try {
- ItemProxy childItem = Gateway.getProxyManager().getProxy(new ItemPath(Integer.parseInt(params[2])));
+ ItemProxy childItem = Gateway.getProxyManager().getProxy(new ItemPath(UUID.fromString(params[2])));
MainFrame.itemFinder.pushNewKey(childItem.getName());
} catch (Exception ex) { }
}
diff --git a/src/main/java/com/c2kernel/gui/tabs/collection/CollectionMemberPropertyPanel.java b/src/main/java/com/c2kernel/gui/tabs/collection/CollectionMemberPropertyPanel.java index 248240e..bfbcdc5 100644 --- a/src/main/java/com/c2kernel/gui/tabs/collection/CollectionMemberPropertyPanel.java +++ b/src/main/java/com/c2kernel/gui/tabs/collection/CollectionMemberPropertyPanel.java @@ -57,12 +57,11 @@ public class CollectionMemberPropertyPanel extends JPanel implements ActionListe selectedCollMem = cm;
String newMemberName;
try {
- ItemPath path = new ItemPath(cm.getSystemKey());
- newMemberName = Gateway.getProxyManager().getProxy(path).getProperty("Name");
+ ItemPath path = cm.getItemPath();
+ if (path == null) newMemberName = "No member";
+ else newMemberName = Gateway.getProxyManager().getProxy(path).getProperty("Name");
} catch (ObjectNotFoundException e) {
newMemberName = "Item or Item name property not found";
- } catch (InvalidItemPathException e) {
- newMemberName = "No member";
}
selObjSlot.setText(newMemberName);
diff --git a/src/main/java/com/c2kernel/gui/tree/Node.java b/src/main/java/com/c2kernel/gui/tree/Node.java index 62e9d19..eb4ebb2 100644 --- a/src/main/java/com/c2kernel/gui/tree/Node.java +++ b/src/main/java/com/c2kernel/gui/tree/Node.java @@ -13,9 +13,10 @@ import javax.swing.tree.DefaultMutableTreeNode; import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.gui.DynamicTreeBuilder;
-import com.c2kernel.gui.ItemTabManager;
import com.c2kernel.gui.ImageLoader;
+import com.c2kernel.gui.ItemTabManager;
import com.c2kernel.lookup.AgentPath;
+import com.c2kernel.lookup.ItemPath;
import com.c2kernel.lookup.Path;
import com.c2kernel.process.Gateway;
import com.c2kernel.utils.Language;
@@ -26,7 +27,7 @@ public abstract class Node implements Runnable { protected Path binding;
protected DefaultMutableTreeNode treeNode;
protected String name; // domain key
- protected int sysKey; // target item
+ protected ItemPath itemPath; // target item
// attributes
protected String type = "";
protected String toolTip = null;
@@ -52,7 +53,9 @@ public abstract class Node implements Runnable { public Node(Path path, ItemTabManager desktop) {
this.binding = path;
this.desktop = desktop;
- this.sysKey = path.getSysKey();
+ try {
+ this.itemPath = path.getItemPath();
+ } catch (ObjectNotFoundException e) { }
// get the name of this node (last path element)
String[] pathComponents = path.getPath();
if (pathComponents.length > 0)
@@ -68,7 +71,7 @@ public abstract class Node implements Runnable { public Node newNode(Path path)
{
try {
- if (path.getEntity() instanceof AgentPath)
+ if (path.getItemPath() instanceof AgentPath)
return new NodeAgent(path, desktop);
else
return new NodeItem(path, desktop);
@@ -184,7 +187,7 @@ public abstract class Node implements Runnable { // Getters and Setters
- public int getSysKey() { return sysKey; }
+ public ItemPath getItemPath() { return itemPath; }
// public void setSysKey( int sysKey ) { this.sysKey = sysKey; }
public String getName() { return name; }
diff --git a/src/main/java/com/c2kernel/gui/tree/NodeCollection.java b/src/main/java/com/c2kernel/gui/tree/NodeCollection.java index 3d624ee..7cd66b5 100644 --- a/src/main/java/com/c2kernel/gui/tree/NodeCollection.java +++ b/src/main/java/com/c2kernel/gui/tree/NodeCollection.java @@ -13,7 +13,6 @@ import com.c2kernel.entity.proxy.MemberSubscription; import com.c2kernel.entity.proxy.ProxyObserver;
import com.c2kernel.gui.ItemTabManager;
import com.c2kernel.gui.MainFrame;
-import com.c2kernel.lookup.InvalidItemPathException;
import com.c2kernel.lookup.ItemPath;
import com.c2kernel.lookup.Path;
import com.c2kernel.persistency.ClusterStorage;
@@ -31,7 +30,7 @@ public class NodeCollection extends Node implements ProxyObserver<Collection<? e super(desktop);
this.parent = parent;
this.name = name;
- this.path = parent.getSystemKey()+"/Collection/"+name;
+ this.path = parent.getPath()+"/Collection/"+name;
createTreeNode();
this.makeExpandable();
}
@@ -40,7 +39,7 @@ public class NodeCollection extends Node implements ProxyObserver<Collection<? e super(desktop);
this.parent = parent;
this.name = coll.getName();
- this.path = parent.getSystemKey()+"/Collection/"+name;
+ this.path = parent.getPath()+"/Collection/"+name;
createTreeNode();
this.makeExpandable();
add(coll);
@@ -75,20 +74,14 @@ public class NodeCollection extends Node implements ProxyObserver<Collection<? e ArrayList<Path> currentPaths = new ArrayList<Path>();
// add any missing paths
for (CollectionMember newMember : newMembers) {
- if (!oldMembers.contains(newMember) && newMember.getSystemKey()>-1)
- try
- {
- ItemPath itemPath = new ItemPath(newMember.getSystemKey());
- currentPaths.add(itemPath);
- NodeItem newMemberNode = new NodeItem(itemPath, desktop);
- newMemberNode.setCollection(contents, newMember.getID(), parent);
- newMemberNode.setToolTip(getPropertyToolTip(newMember.getProperties()));
- add(newMemberNode);
- }
- catch (InvalidItemPathException ex)
- {
- Logger.error("NodeCollection::loadChildren() " + ex.toString());
- }
+ ItemPath itemPath = newMember.getItemPath();
+ if (!oldMembers.contains(newMember) && itemPath != null) {
+ currentPaths.add(itemPath);
+ NodeItem newMemberNode = new NodeItem(itemPath, desktop);
+ newMemberNode.setCollection(contents, newMember.getID(), parent);
+ newMemberNode.setToolTip(getPropertyToolTip(newMember.getProperties()));
+ add(newMemberNode);
+ }
}
// remove those no longer present
for (Path childPath : childNodes.keySet()) {
@@ -104,9 +97,9 @@ public class NodeCollection extends Node implements ProxyObserver<Collection<? e end(false);
}
- public boolean addMember(int syskey) {
+ public boolean addMember(ItemPath itemPath) {
if (!isDependency()) return false;
- String[] params = { thisCollection.getName(), String.valueOf(syskey) };
+ String[] params = { thisCollection.getName(), itemPath.getUUID().toString() };
try {
MainFrame.userAgent.execute(parent, "AddMemberToCollection", params);
return true;
diff --git a/src/main/java/com/c2kernel/gui/tree/NodeContext.java b/src/main/java/com/c2kernel/gui/tree/NodeContext.java index fcd1553..6d7c7bd 100644 --- a/src/main/java/com/c2kernel/gui/tree/NodeContext.java +++ b/src/main/java/com/c2kernel/gui/tree/NodeContext.java @@ -15,7 +15,7 @@ public class NodeContext extends Node implements DomainPathSubscriber { public NodeContext(Path path, ItemTabManager desktop) {
super(path, desktop);
- this.sysKey=Path.INVALID;
+ this.itemPath = null;
createTreeNode();
this.makeExpandable();
this.type = "Cristal Context";
diff --git a/src/main/java/com/c2kernel/gui/tree/NodeItem.java b/src/main/java/com/c2kernel/gui/tree/NodeItem.java index 9cdfc5a..3194bcd 100644 --- a/src/main/java/com/c2kernel/gui/tree/NodeItem.java +++ b/src/main/java/com/c2kernel/gui/tree/NodeItem.java @@ -44,8 +44,8 @@ public class NodeItem extends Node implements Transferable { // if an item - resolve the item and get its properties
try {
myItem = Gateway.getProxyManager().getProxy(path);
- this.sysKey = path.getSysKey();
- Logger.msg(2,"NodeEntity.<init> - System key is "+this.sysKey);
+ this.itemPath = path.getItemPath();
+ Logger.msg(2,"NodeEntity.<init> - System key is "+this.itemPath);
// Name should be the alias if present
String alias = myItem.getName();
@@ -66,7 +66,7 @@ public class NodeItem extends Node implements Transferable { iconString = iconString.toLowerCase();
this.setIcon(iconString);
} catch (ObjectNotFoundException e1) {
- this.sysKey = -1;
+ this.itemPath = null;
this.type="Error";
this.name="Entity not found";
this.setIcon("error");
diff --git a/src/main/java/com/c2kernel/gui/tree/NodeTransferHandler.java b/src/main/java/com/c2kernel/gui/tree/NodeTransferHandler.java index 3918b1c..56e61bd 100644 --- a/src/main/java/com/c2kernel/gui/tree/NodeTransferHandler.java +++ b/src/main/java/com/c2kernel/gui/tree/NodeTransferHandler.java @@ -44,7 +44,7 @@ public class NodeTransferHandler extends TransferHandler { NodeItem source;
try {
source = (NodeItem)support.getTransferable().getTransferData(NodeItem.dataFlavor);
- return collNode.addMember(source.getSysKey());
+ return collNode.addMember(source.getItemPath());
} catch (Exception e) {
Logger.error(e);
return false;
diff --git a/src/main/resources/images/spare/category-dictionaries.png b/src/main/resources/images/spare/category-dictionaries.png Binary files differnew file mode 100644 index 0000000..84b8016 --- /dev/null +++ b/src/main/resources/images/spare/category-dictionaries.png diff --git a/src/main/resources/images/spare/category-search.png b/src/main/resources/images/spare/category-search.png Binary files differnew file mode 100644 index 0000000..52e91a7 --- /dev/null +++ b/src/main/resources/images/spare/category-search.png diff --git a/src/main/resources/images/spare/category-service.png b/src/main/resources/images/spare/category-service.png Binary files differnew file mode 100644 index 0000000..997c854 --- /dev/null +++ b/src/main/resources/images/spare/category-service.png diff --git a/src/main/resources/images/spare/crayons.png b/src/main/resources/images/spare/crayons.png Binary files differnew file mode 100644 index 0000000..e8861e8 --- /dev/null +++ b/src/main/resources/images/spare/crayons.png diff --git a/src/main/resources/images/spare/pluginGeneric.png b/src/main/resources/images/spare/pluginGeneric.png Binary files differnew file mode 100644 index 0000000..3e6d43c --- /dev/null +++ b/src/main/resources/images/spare/pluginGeneric.png |
