public void putHsLayout(int id) { Hashtable hs = sshare.userInfo(); if (hs == null) return; String key, name; JComponent obj; PushpinIF pobj; for (int i = 0; i < keys.size(); i++) { key = (String) keys.get(i); obj = (JComponent) panes.get(key); if (obj != null && (obj instanceof PushpinIF)) { pobj = (PushpinIF) obj; name = "tabTool." + id + "." + pobj.getName() + "."; hs.put(name + "refY", new Float(pobj.getRefY())); hs.put(name + "refX", new Float(pobj.getRefX())); hs.put(name + "refH", new Float(pobj.getRefH())); key = "open"; if (pobj.isHide()) key = "hide"; else if (pobj.isClose()) key = "close"; hs.put(name + "status", key); } } /* name = "tabTool."+id+".TabPanel."; key = pinPanel.getLastName(); if (key != null) hs.put(name+"lastName", key); key = "open"; if (pinPanel.isHide()) key = "hide"; else if (pinPanel.isClose()) key = "close"; hs.put(name+"status", key); */ }
/** When a new set of saved statements come in, refresh the menu of saved statements. */ private void refreshSaveMenu() { ArrayList list; // first, delete what's already there for (; ; ) { Component comp = popup.getComponent(1); if (!(comp instanceof JMenuItem)) break; JMenuItem item = (JMenuItem) comp; if (item.getActionCommand().startsWith("save:")) popup.remove(1); else break; } StatementHistory history; history = sshare.statementHistory(); // now insert the new list of saved statements list = history.getNamedStatementList(); Color bgColor = Util.getBgColor(); for (int i = 0; i < list.size(); i++) { ArrayList nameNlabel = (ArrayList) list.get(i); JMenuItem item = new JMenuItem(" " + (String) nameNlabel.get(1)); item.setActionCommand("save:" + (String) nameNlabel.get(0)); popup.add(item, 1); // item.setBackground(bgColor); item.addActionListener(popActionListener); } } // refreshSaveMenu()
public VTabbedToolPanel(SessionShare sshare, AppIF appIF) { // super( new BorderLayout() ); this.sshare = sshare; this.appIF = appIF; this.tabbedToolPanel = new JPanel(); this.pinPanel = this; this.selectedTabName = null; setPinObj(this.tabbedToolPanel); this.tabbedToolPanel.setLayout(new BorderLayout()); this.tabbedPane = new JTabbedPane(); panelName = "Tab Panel"; setTitle(panelName); setName(panelName); tabbedPane.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { tabChanged(); /** * ** the following was moved to tabChanged() if(tabbedPane.getTabCount() > 1 && * Util.getRQPanel() != null) { int ind = tabbedPane.getSelectedIndex(); if(ind >= 0 && * ind < tabbedPane.getTabCount()) * Util.getRQPanel().updatePopup(tabbedPane.getTitleAt(ind)); } ********* */ } }); // Add Mouse Listener for CSH MouseAdapter ml = new CSHMouseAdapter(); tabbedPane.addMouseListener(ml); Object obj = sshare.userInfo().get("canvasnum"); if (obj != null) { Dimension dim = (Dimension) obj; nviews = (dim.height) * (dim.width); } else nviews = 1; for (int i = 0; i < nviews; i++) tp_paneInfo[i] = new Hashtable(); /* obj = sshare.userInfo().get("activeWin"); if(obj != null) { vpId = ((Integer)obj).intValue(); } else vpId = 0; */ // System.out.println("VToolPanel nviews vpId "+nviews+" "+vpId); fillHashtable(); Util.setVTabbedToolPanel(this); ParamInfo.addEditListener(this); }
public void saveUiLayout() { for (int i = 0; i < toolList.size(); i++) ((VToolPanel) toolList.get(i)).saveUiLayout(); Hashtable hs = sshare.userInfo(); /* if (hs == null || tabbedPane == null || tabbedPane.getTabCount() <= 0) return; */ if (hs == null || tabbedPane == null) return; if (tabbedPane.getTabCount() > 0) { Integer hashValue = new Integer(tabbedPane.getSelectedIndex()); hs.put("tabbedToolPanel", hashValue); } putHsLayout(vpId); }
public void initUiLayout() { getHsLayout(vpId); for (int i = 0; i < toolList.size(); i++) ((VToolPanel) toolList.get(i)).initUiLayout(); initPanel(); updatePinTabs(); Hashtable hs = sshare.userInfo(); if (hs == null || tabbedPane == null || tabbedPane.getTabCount() <= 0) return; Object obj = hs.get("tabbedToolPanel"); if (obj == null) return; int indx = ((Integer) obj).intValue(); if (indx < 0) return; // if(indx >= 0 && indx < tabbedPane.getTabCount()) // tabbedPane.setSelectedIndex(indx); setSelectedTab(tp_selectedTab, null); }
public void getHsLayout(int id) { Hashtable hs = sshare.userInfo(); if (hs == null) return; String key, name, status; Float fstr; float fv; for (int j = 0; j < keys.size(); j++) { key = (String) keys.get(j); JComponent obj = (JComponent) panes.get(key); if (obj instanceof PushpinIF) { PushpinIF pobj = (PushpinIF) obj; name = "tabTool." + id + "." + pobj.getName() + "."; fstr = (Float) hs.get(name + "refY"); if (fstr != null) pobj.setRefY(fstr.floatValue()); fstr = (Float) hs.get(name + "refX"); if (fstr != null) pobj.setRefX(fstr.floatValue()); fstr = (Float) hs.get(name + "refH"); if (fstr != null) pobj.setRefH(fstr.floatValue()); status = (String) hs.get(name + "status"); if (status != null) pobj.setStatus(status); } } }
public void fillPopupMenu() { JMenuItem item; TextImageIcon textIcon; StatementHistory history; int rowCount = 0; int numRows = 0; Insets margin = new Insets(0, 0, 0, 0); // Get the font defined in the displayOptions panel for menus Font ft = DisplayOptions.getFont("Menu1"); // We need a fairly small font, so make it 2 smaller. int size = ft.getSize(); // If larger than 12, subtract 2 if (size > 12) size -= 2; Font font = DisplayOptions.getFont(ft.getName(), ft.getStyle(), size); // This flag is used so that we only fill the menu when needed if (menuAlreadyFilled) return; menuAlreadyFilled = true; history = sshare.statementHistory(); ArrayList list = history.getNamedStatementList(); Color bgColor = Util.getBgColor(); // Only show the Saved Statements section if there are some. if (list != null && list.size() != 0) { item = popup.add("Saved Statements"); rowCount++; // item.setForeground(Color.blue); // item.setBackground(bgColor); item.setFont(font); item.setMargin(margin); popup.add(item); for (int i = 0; i < list.size(); i++) { ArrayList nameNlabel = (ArrayList) list.get(i); // first item in nameNlabel is name and second is label item = popup.add(" " + (String) nameNlabel.get(1)); rowCount++; item.setActionCommand("save:" + (String) nameNlabel.get(0)); // item.setBackground(bgColor); item.addActionListener(popActionListener); item.setFont(font); item.setMargin(margin); } } // the rest of menu (return object types, statement types, etc.) ShufflerService shufflerService = sshare.shufflerService(); ArrayList objTypes = shufflerService.getAllMenuObjectTypes(); for (int i = 0; i < objTypes.size(); i++) { String objType = (String) objTypes.get(i); // Do not display menu for DB_AVAIL_SUB_TYPES if (objType.equals(Shuf.DB_AVAIL_SUB_TYPES)) continue; // addSeparator looks bad using GridLayout because it creates rows // and columns which are all equal in size. It cannot have a row // with a separator which is a different height than the other // rectangles it creates. So just use dashes. item = popup.add(separator); item.setFont(font); item.setMargin(margin); rowCount++; item = popup.add(shufflerService.getCategoryLabel(objType)); rowCount++; // item.setForeground(Color.blue); item.setActionCommand("title:" + objType); // item.setBackground(bgColor); item.addActionListener(popActionListener); item.setFont(font); item.setMargin(margin); ArrayList menuStrings = shufflerService.getmenuStringsThisObj(objType); // If current rowCount plus the next section size is too big, // specify the numRows to the current value of rowCount -1. // That is, put this next section in a new column. // 47 is emperical number of rows to fit 90% full screen. if (numRows == 0 && rowCount - 1 + menuStrings.size() > 44) { numRows = rowCount - 2; } for (int j = 0; j < menuStrings.size(); j++) { String menuString = (String) menuStrings.get(j); item = popup.add(" " + menuString); rowCount++; item.setActionCommand("command:" + objType + "/" + menuString); // item.setBackground(bgColor); item.addActionListener(popActionListener); item.setFont(font); item.setMargin(margin); } // The spotter menu changes dynamically when // the list of saved statements changes. history.addStatementListener( new StatementAdapter() { public void saveListChanged() { refreshSaveMenu(); } }); } if (numRows == 0) numRows = rowCount; GridLayoutCol lm = new GridLayoutCol(numRows, 0); popup.setLayout(lm); }