From 8e5d28aec9368c29acec858e9d748ed2ed5eb397 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 9 Sep 2014 12:14:01 +0200 Subject: Support move to using UUIDs and ItemPaths as Item identifiers instead of ints. --- src/main/java/com/c2kernel/gui/ItemDetails.java | 13 +++++---- src/main/java/com/c2kernel/gui/ItemTabManager.java | 31 ++++++++++----------- src/main/java/com/c2kernel/gui/MenuBuilder.java | 7 +++-- .../gui/collection/SelectedMemberPanel.java | 24 +++++++++------- .../gui/lifecycle/instance/TransitionPanel.java | 2 +- .../java/com/c2kernel/gui/tabs/CollectionPane.java | 2 +- .../com/c2kernel/gui/tabs/DomainPathAdmin.java | 6 ++-- .../java/com/c2kernel/gui/tabs/HistoryPane.java | 2 +- .../java/com/c2kernel/gui/tabs/JobListPane.java | 2 +- .../java/com/c2kernel/gui/tabs/PropertiesPane.java | 2 +- .../java/com/c2kernel/gui/tabs/ViewpointPane.java | 2 +- .../java/com/c2kernel/gui/tabs/WorkflowPane.java | 2 +- .../tabs/collection/CollectionHistoryWindow.java | 10 +++---- .../collection/CollectionMemberPropertyPanel.java | 7 ++--- src/main/java/com/c2kernel/gui/tree/Node.java | 13 +++++---- .../java/com/c2kernel/gui/tree/NodeCollection.java | 31 ++++++++------------- .../java/com/c2kernel/gui/tree/NodeContext.java | 2 +- src/main/java/com/c2kernel/gui/tree/NodeItem.java | 6 ++-- .../com/c2kernel/gui/tree/NodeTransferHandler.java | 2 +- .../images/spare/category-dictionaries.png | Bin 0 -> 1798 bytes .../resources/images/spare/category-search.png | Bin 0 -> 2600 bytes .../resources/images/spare/category-service.png | Bin 0 -> 2063 bytes src/main/resources/images/spare/crayons.png | Bin 0 -> 1805 bytes src/main/resources/images/spare/pluginGeneric.png | Bin 0 -> 895 bytes 24 files changed, 83 insertions(+), 83 deletions(-) create mode 100644 src/main/resources/images/spare/category-dictionaries.png create mode 100644 src/main/resources/images/spare/category-search.png create mode 100644 src/main/resources/images/spare/category-service.png create mode 100644 src/main/resources/images/spare/crayons.png create mode 100644 src/main/resources/images/spare/pluginGeneric.png (limited to 'src') 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 openItems = new HashMap(); + protected HashMap openItems = new HashMap(); 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 toRemove = new ArrayList(); - for (Integer element : openItems.keySet()) { + ArrayList toRemove = new ArrayList(); + 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 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(); 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 @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 currentPaths = new ArrayList(); // 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 - System key is "+this.sysKey); + this.itemPath = path.getItemPath(); + Logger.msg(2,"NodeEntity. - 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 Binary files /dev/null and b/src/main/resources/images/spare/category-dictionaries.png 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 Binary files /dev/null and b/src/main/resources/images/spare/category-search.png 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 Binary files /dev/null and b/src/main/resources/images/spare/category-service.png 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 Binary files /dev/null and b/src/main/resources/images/spare/crayons.png 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 Binary files /dev/null and b/src/main/resources/images/spare/pluginGeneric.png differ -- cgit v1.2.3