summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2014-09-09 12:14:01 +0200
committerAndrew Branson <andrew.branson@cern.ch>2014-09-09 12:14:01 +0200
commit8e5d28aec9368c29acec858e9d748ed2ed5eb397 (patch)
treef80282cb0c9ab47159816ca3c3a8f7c193103e65
parent7690395f52e3d0853695cea77f0103fb56c81838 (diff)
Support move to using UUIDs and ItemPaths as Item identifiers instead of
ints.
-rw-r--r--bin/eclipse/Cristal Kernel GUI.launch4
-rw-r--r--src/main/java/com/c2kernel/gui/ItemDetails.java13
-rw-r--r--src/main/java/com/c2kernel/gui/ItemTabManager.java31
-rw-r--r--src/main/java/com/c2kernel/gui/MenuBuilder.java7
-rw-r--r--src/main/java/com/c2kernel/gui/collection/SelectedMemberPanel.java24
-rw-r--r--src/main/java/com/c2kernel/gui/lifecycle/instance/TransitionPanel.java2
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/CollectionPane.java2
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/DomainPathAdmin.java6
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/HistoryPane.java2
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/JobListPane.java2
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/PropertiesPane.java2
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/ViewpointPane.java2
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/WorkflowPane.java2
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/collection/CollectionHistoryWindow.java10
-rw-r--r--src/main/java/com/c2kernel/gui/tabs/collection/CollectionMemberPropertyPanel.java7
-rw-r--r--src/main/java/com/c2kernel/gui/tree/Node.java13
-rw-r--r--src/main/java/com/c2kernel/gui/tree/NodeCollection.java31
-rw-r--r--src/main/java/com/c2kernel/gui/tree/NodeContext.java2
-rw-r--r--src/main/java/com/c2kernel/gui/tree/NodeItem.java6
-rw-r--r--src/main/java/com/c2kernel/gui/tree/NodeTransferHandler.java2
-rw-r--r--src/main/resources/images/spare/category-dictionaries.pngbin0 -> 1798 bytes
-rw-r--r--src/main/resources/images/spare/category-search.pngbin0 -> 2600 bytes
-rw-r--r--src/main/resources/images/spare/category-service.pngbin0 -> 2063 bytes
-rw-r--r--src/main/resources/images/spare/crayons.pngbin0 -> 1805 bytes
-rw-r--r--src/main/resources/images/spare/pluginGeneric.pngbin0 -> 895 bytes
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
new file mode 100644
index 0000000..84b8016
--- /dev/null
+++ b/src/main/resources/images/spare/category-dictionaries.png
Binary files differ
diff --git a/src/main/resources/images/spare/category-search.png b/src/main/resources/images/spare/category-search.png
new file mode 100644
index 0000000..52e91a7
--- /dev/null
+++ b/src/main/resources/images/spare/category-search.png
Binary files differ
diff --git a/src/main/resources/images/spare/category-service.png b/src/main/resources/images/spare/category-service.png
new file mode 100644
index 0000000..997c854
--- /dev/null
+++ b/src/main/resources/images/spare/category-service.png
Binary files differ
diff --git a/src/main/resources/images/spare/crayons.png b/src/main/resources/images/spare/crayons.png
new file mode 100644
index 0000000..e8861e8
--- /dev/null
+++ b/src/main/resources/images/spare/crayons.png
Binary files differ
diff --git a/src/main/resources/images/spare/pluginGeneric.png b/src/main/resources/images/spare/pluginGeneric.png
new file mode 100644
index 0000000..3e6d43c
--- /dev/null
+++ b/src/main/resources/images/spare/pluginGeneric.png
Binary files differ