From b086f57f56bf0eb9dab9cf321a0f69aaaae84347 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 30 May 2012 08:37:45 +0200 Subject: Initial Maven Conversion --- .../java/com/c2kernel/gui/EntityTabManager.java | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/main/java/com/c2kernel/gui/EntityTabManager.java (limited to 'src/main/java/com/c2kernel/gui/EntityTabManager.java') diff --git a/src/main/java/com/c2kernel/gui/EntityTabManager.java b/src/main/java/com/c2kernel/gui/EntityTabManager.java new file mode 100644 index 0000000..b465570 --- /dev/null +++ b/src/main/java/com/c2kernel/gui/EntityTabManager.java @@ -0,0 +1,86 @@ +package com.c2kernel.gui; +import java.awt.GridLayout; +import java.util.ArrayList; +import java.util.HashMap; + +import javax.swing.BorderFactory; +import javax.swing.JPanel; + +import com.c2kernel.gui.data.NodeEntity; +import com.c2kernel.gui.tabs.JTabbedPaneWithCloseIcons; +import com.c2kernel.utils.Logger; + +/** + * Keeps + * + * @version $Revision: 1.12 $ $Date: 2005/09/12 14:56:19 $ + * @author $Author: abranson $ + */ + +public class EntityTabManager extends JPanel +{ + private MainFrame mMainframe; + + protected HashMap openItems = new HashMap(); + protected JTabbedPaneWithCloseIcons tabbedPane = new JTabbedPaneWithCloseIcons(); + //JTabbedPane tabbedPane = new JTabbedPane(); + MenuBuilder myMenuBuilder; + + + public EntityTabManager() { + super(); + setLayout(new GridLayout(1,1)); + setBorder(BorderFactory.createLoweredBevelBorder()); + //UIDefaults ui = UIManager.getDefaults(); + //ui.put("TabbedPane.selected",Color.red); + add(tabbedPane); + } + + public EntityDetails add(NodeEntity thisEntity) { + + EntityDetails requestedDetails; + if (!openItems.containsKey(new Integer(thisEntity.getSysKey()))) { + Logger.msg(1, "ItemWindowManager.add() - Window for syskey "+thisEntity.getSysKey()+" not found. Opening new one."); + requestedDetails = new EntityDetails(thisEntity); + Thread itemLoader = new Thread(requestedDetails); + itemLoader.start(); + openItems.put(new Integer(thisEntity.getSysKey()), requestedDetails); + requestedDetails.setDesktopManager(this); + + // get currently selected item to set location + tabbedPane.addTab(thisEntity.getName(), thisEntity.getIcon(), requestedDetails, Integer.toString(thisEntity.getSysKey())); + + + } + else { //opened window but different nodeitem + requestedDetails = openItems.get(new Integer(thisEntity.getSysKey())); + } + tabbedPane.setSelectedComponent(requestedDetails); + return requestedDetails; + } + + public void setMenuBuilder(MenuBuilder myMenuBuilder) { + this.myMenuBuilder = myMenuBuilder; + } + + @Override + public void remove(int sysKey) { + Integer sysKeyObj = new Integer(sysKey); + if (!openItems.containsKey(sysKeyObj)) return; + EntityDetails tabToClose = openItems.get(sysKeyObj); + tabbedPane.remove(tabToClose); + tabToClose.discardTabs(); + openItems.remove(sysKeyObj); + } + + public void closeAll(boolean keepOpen) { + ArrayList toRemove = new ArrayList(); + for (Integer element : openItems.keySet()) { + if (keepOpen && openItems.get(element).equals(tabbedPane.getSelectedComponent())) continue; + toRemove.add(element); + } + for (Integer element : toRemove) { + remove(element.intValue()); + } + } +} -- cgit v1.2.3