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/ItemTabManager.java | 31 +++++++++++----------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'src/main/java/com/c2kernel/gui/ItemTabManager.java') 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); } } } -- cgit v1.2.3