Update of /cvsroot/jmol/Jmol/src/org/openscience/jmol/ui In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18476/src/org/openscience/jmol/ui Modified Files: JmolPopup.java JmolPopupAwt.java JmolPopupStructure.properties JmolPopupSwing.java JmolPopupWords.properties Log Message: popup now show model set information Index: JmolPopup.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/ui/JmolPopup.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- JmolPopup.java 3 Dec 2004 04:26:03 -0000 1.19 +++ JmolPopup.java 3 Dec 2004 20:33:24 -0000 1.20 @@ -43,6 +43,8 @@ Object aaresiduesComputedMenu; Object aboutMenu; Object consoleMenu; + Object modelSetInfoMenu; + String nullModelSetName; JmolPopup(JmolViewer viewer) { this.viewer = viewer; @@ -61,20 +63,18 @@ addMenuItems("popupMenu", popupMenu, new PopupResourceBundle()); addVersionAndDate(popupMenu); if (! viewer.isJvm12orGreater() && (consoleMenu != null)) - disableMenu(consoleMenu); + enableMenu(consoleMenu, false); } public void updateComputedMenus() { - if (elementsComputedMenu != null) { - BitSet elementsPresentBitSet = viewer.getElementsPresentBitSet(); - updateElementsComputedMenu(elementsPresentBitSet); - } - BitSet groupsPresentBitSet = viewer.getGroupsPresentBitSet(); - if (aaresiduesComputedMenu != null) - updateAaresiduesComputedMenu(groupsPresentBitSet); + updateElementsComputedMenu(viewer.getElementsPresentBitSet()); + updateAaresiduesComputedMenu(viewer.getGroupsPresentBitSet()); + updateModelSetInfoMenu(); } void updateElementsComputedMenu(BitSet elementsPresentBitSet) { + if (elementsComputedMenu == null || elementsPresentBitSet == null) + return; removeAll(elementsComputedMenu); for (int i = 0; i < JmolConstants.elementNames.length; ++i) { if (elementsPresentBitSet.get(i)) { @@ -88,6 +88,8 @@ } void updateAaresiduesComputedMenu(BitSet groupsPresentBitSet) { + if (aaresiduesComputedMenu == null || groupsPresentBitSet == null) + return; removeAll(aaresiduesComputedMenu); for (int i = 1; i < JmolConstants.GROUPID_AMINO_MAX; ++i) { if (groupsPresentBitSet.get(i)) { @@ -97,6 +99,32 @@ } } } + + void updateModelSetInfoMenu() { + if (modelSetInfoMenu == null) + return; + String modelSetName = viewer.getModelSetName(); + removeAll(modelSetInfoMenu); + if (modelSetName == null) { + renameMenu(modelSetInfoMenu, nullModelSetName); + enableMenu(modelSetInfoMenu, false); + return; + } + renameMenu(modelSetInfoMenu, modelSetName); + enableMenu(modelSetInfoMenu, true); + addMenuItem(modelSetInfoMenu, "atoms:" + viewer.getAtomCount()); + addMenuItem(modelSetInfoMenu, "bonds:" + viewer.getBondCount()); + addMenuSeparator(modelSetInfoMenu); + addMenuItem(modelSetInfoMenu, "groups:" + viewer.getGroupCount()); + addMenuItem(modelSetInfoMenu, "chains:" + viewer.getChainCount()); + addMenuItem(modelSetInfoMenu, "polymers:" + viewer.getPolymerCount()); + addMenuItem(modelSetInfoMenu, "models:" + viewer.getModelCount()); + if (viewer.showModelSetDownload()) { + addMenuSeparator(modelSetInfoMenu); + addMenuItem(modelSetInfoMenu, + viewer.getModelSetFileName(), viewer.getModelSetPathName()); + } + } private void addVersionAndDate(Object popupMenu) { if (aboutMenu != null) { @@ -110,7 +138,7 @@ PopupResourceBundle popupResourceBundle) { String value = popupResourceBundle.getStructure(key); if (value == null) { - addMenuItem(menu, "#" + key, null); + addMenuItem(menu, "#" + key); return; } StringTokenizer st = new StringTokenizer(value); @@ -129,16 +157,19 @@ aboutMenu = subMenu; else if ("consoleMenu".equals(item)) consoleMenu = subMenu; + else if ("modelSetInfoMenu".equals(item)) { + nullModelSetName = word; + modelSetInfoMenu = subMenu; + enableMenu(modelSetInfoMenu, false); + } addMenuSubMenu(menu, subMenu); } else if ("-".equals(item)) { addMenuSeparator(menu); + } else if (item.endsWith("Checkbox")) { + String basename = item.substring(0, item.length() - 8); + addCheckboxMenuItem(menu, word, basename); } else { - if (item.endsWith("Checkbox")) { - String basename = item.substring(0, item.length() - 8); - addCheckboxMenuItem(menu, word, basename); - } else { - addMenuItem(menu, word, popupResourceBundle.getStructure(item)); - } + addMenuItem(menu, word, popupResourceBundle.getStructure(item)); } } } @@ -152,27 +183,30 @@ class MenuItemListener implements ActionListener { public void actionPerformed(ActionEvent e) { String script = e.getActionCommand(); - if (script != null) { - if (script.startsWith("http://")) { - viewer.showUrl(script); - } else if (script.length() != 0) { - viewer.evalStringQuiet(script); - } + if (script == null || script.length() == 0) + return; + if (script.startsWith("http:") || script.startsWith("file:") || + script.startsWith("/")) { + viewer.showUrl(script); + return; } + viewer.evalStringQuiet(script); } } + Object addMenuItem(Object menuItem, String entry) { + return addMenuItem(menuItem, entry, null); + } + //////////////////////////////////////////////////////////////// abstract public void show(int x, int y); abstract void addMenuSeparator(Object menu); - abstract void disableMenu(Object menu); - - abstract void addMenuItem(Object menu, String entry); + abstract Object addMenuItem(Object menu, String entry, String script); - abstract void addMenuItem(Object menu, String entry, String script); + abstract void updateMenuItem(Object menuItem, String entry, String script); abstract void addCheckboxMenuItem(Object menu, String entry,String basename); @@ -180,6 +214,10 @@ abstract Object newMenu(String menuName); + abstract void enableMenu(Object menu, boolean enable); + + abstract void renameMenu(Object menu, String menuName); + abstract void removeAll(Object menu); } Index: JmolPopupAwt.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/ui/JmolPopupAwt.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- JmolPopupAwt.java 3 Dec 2004 04:26:03 -0000 1.17 +++ JmolPopupAwt.java 3 Dec 2004 20:33:25 -0000 1.18 @@ -128,21 +128,21 @@ ((Menu)menu).addSeparator(); } - void disableMenu(Object menu) { - ((Menu)menu).setEnabled(false); - } - - void addMenuItem(Object menu, String entry) { + Object addMenuItem(Object menu, String entry, String script) { MenuItem mi = new MenuItem(entry); - mi.setEnabled(false); - ((Menu)menu).add(mi); + updateMenuItem(mi, entry, script); + mi.addActionListener(mil); + addToMenu(menu, mi); + return mi; } - void addMenuItem(Object menu, String entry, String script) { - MenuItem mi = new MenuItem(entry); - mi.addActionListener(mil); + void updateMenuItem(Object menuItem, String entry, String script) { + MenuItem mi = (MenuItem)menuItem; + mi.setLabel(entry); mi.setActionCommand(script); - addToMenu(menu, mi); + // miguel 2004 12 03 + // greyed out menu entries are too hard to read + // mi.setEnabled(script != null); } void addCheckboxMenuItem(Object menu, String entry, String basename) { @@ -161,6 +161,10 @@ return new Menu(menuName); } + void renameMenu(Object menu, String newMenuName) { + ((Menu)menu).setLabel(newMenuName); + } + Object newComputedMenu(String key, String word) { if ("elementComputedMenu".equals(key)) { elementComputedMenu = new Menu(word); @@ -172,4 +176,8 @@ void removeAll(Object menu) { ((Menu)menu).removeAll(); } + + void enableMenu(Object menu, boolean enable) { + ((Menu)menu).setEnabled(enable); + } } Index: JmolPopupStructure.properties =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/ui/JmolPopupStructure.properties,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- JmolPopupStructure.properties 3 Dec 2004 04:26:03 -0000 1.39 +++ JmolPopupStructure.properties 3 Dec 2004 20:33:25 -0000 1.40 @@ -3,9 +3,10 @@ # the actual popup menu along side, then things become # clear. -popupMenu=selectMenu renderMenu labelMenu colorMenu - \ +popupMenu=modelSetInfoMenu - selectMenu renderMenu labelMenu colorMenu - \ zoomMenu spinMenu animateMenu - \ -measurementsMenu crystalMenu optionsMenu - consoleMenu - aboutMenu +measurementsMenu crystalMenu optionsMenu - consoleMenu - \ +aboutMenu selectMenu= selectAll selectNone - \ proteinMenu nucleicMenu heteroMenu otherMenu - \ Index: JmolPopupSwing.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/ui/JmolPopupSwing.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- JmolPopupSwing.java 3 Dec 2004 04:26:03 -0000 1.19 +++ JmolPopupSwing.java 3 Dec 2004 20:33:25 -0000 1.20 @@ -85,24 +85,21 @@ ((JMenu)menu).addSeparator(); } - void disableMenu(Object menu) { - ((JMenu)menu).setEnabled(false); - } - - void addMenuItem(Object menu, String entry) { + Object addMenuItem(Object menu, String entry, String script) { JMenuItem jmi = new JMenuItem(entry); - jmi.setEnabled(false); - if (menu instanceof JPopupMenu) - ((JPopupMenu)menu).add(jmi); - else - ((JMenu)menu).add(jmi); + updateMenuItem(jmi, entry, script); + jmi.addActionListener(mil); + addToMenu(menu, jmi); + return jmi; } - void addMenuItem(Object menu, String entry, String script) { - JMenuItem jmi = new JMenuItem(entry); - jmi.addActionListener(mil); + void updateMenuItem(Object menuItem, String entry, String script) { + JMenuItem jmi = (JMenuItem)menuItem; + jmi.setLabel(entry); jmi.setActionCommand(script); - addToMenu(menu, jmi); + // miguel 2004 12 03 + // greyed out menu entries are too hard to read + // jmi.setEnabled(script != null); } void addCheckboxMenuItem(Object menu, String entry, String basename) { @@ -121,6 +118,10 @@ return new JMenu(menuName); } + void renameMenu(Object menu, String newMenuName) { + ((JMenu)menu).setLabel(newMenuName); + } + Object newComputedMenu(String key, String word) { if ("elementComputedMenu".equals(key)) { elementComputedMenu = new JMenu(word); @@ -133,4 +134,9 @@ ((JMenu)menu).removeAll(); } + void enableMenu(Object menu, boolean enable) { + ((JMenu)menu).setEnabled(enable); + } + + } Index: JmolPopupWords.properties =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/ui/JmolPopupWords.properties,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- JmolPopupWords.properties 3 Dec 2004 04:26:03 -0000 1.30 +++ JmolPopupWords.properties 3 Dec 2004 20:33:25 -0000 1.31 @@ -6,6 +6,8 @@ # The howto can be found in ../Properties/Jmol.properties # File How to (end) ----------------------------------------------------------- +modelSetInfoMenu=<Nada> + selectMenu=Select setSelectModeMenu=Set Select Mode |