/** * This is the hook through which all menu items are created. It registers the result with the * menuitem hashtable so that it can be fetched with getMenuItem(). * * @see #getMenuItem */ protected JMenuItem createMenuItem(String cmd) { JMenuItem mi = new JMenuItem(getResourceString(cmd + labelSuffix)); URL url = getResource(cmd + imageSuffix); if (url != null) { mi.setHorizontalTextPosition(JButton.RIGHT); mi.setIcon(new ImageIcon(url)); } String astr = getResourceString(cmd + actionSuffix); if (astr == null) { astr = cmd; } mi.setActionCommand(astr); Action myaction = getAction(astr); // if this is a known action if (myaction != null) { mi.addActionListener(myaction); myaction.addPropertyChangeListener(createActionChangeListener(mi)); // System.out.println("myaction not null: astr:"+astr+" enabled:"+myaction.isEnabled()); mi.setEnabled(myaction.isEnabled()); } else { System.err.println("Error:TextViewer: createMenuItem: myaction is null: astr:" + astr); // causes the item to be greyed out mi.setEnabled(false); } menuItems.put(cmd, mi); return mi; }
/** Display the forwards window history in a menu. */ private void onShowForwardHistory() { UIScrollableMenu hist = new UIScrollableMenu( LanguageProperties.getString( LanguageProperties.TOOLBARS_BUNDLE, "UIToolBarMain.forwardHistory"), 0); //$NON-NLS-1$ Vector views = history.getForwardHistory(); int currentIndex = history.getCurrentPosition(); int count = views.size(); if (count == 0) return; JMenuItem item = null; for (int i = 0; i < count; i++) { View view = (View) views.elementAt(i); item = new JMenuItem(view.getLabel()); final View fview = view; final int fi = (currentIndex + 1) + i; item.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { if (history.goToHistoryItem(fi)) oParent.addViewToDesktop(fview, fview.getLabel()); } }); hist.add(item); } JPopupMenu pop = hist.getPopupMenu(); pop.pack(); Point loc = pbShowForwardHistory.getLocation(); Dimension size = pbShowForwardHistory.getSize(); Dimension popsize = hist.getPreferredSize(); Point finalP = SwingUtilities.convertPoint(tbrToolBar.getParent(), loc, oParent.getDesktop()); int x = 0; int y = 0; if (oManager.getLeftToolBarController().containsBar(tbrToolBar)) { x = finalP.x + size.width; y = finalP.y; } else if (oManager.getRightToolBarController().containsBar(tbrToolBar)) { x = finalP.x - popsize.width; y = finalP.y; } else if (oManager.getTopToolBarController().containsBar(tbrToolBar)) { x = finalP.x; y = finalP.y + size.width; } else if (oManager.getBottomToolBarController().containsBar(tbrToolBar)) { x = finalP.x; y = finalP.y - popsize.height; } hist.setPopupMenuVisible(true); pop.show(oParent.getDesktop(), x, y); }
/** This is the hook through which all menu items are created. */ protected JMenuItem createMenuItem(String cmd) { JMenuItem mi = new JMenuItem(getResourceString(cmd + labelSuffix)); URL url = getResource(cmd + imageSuffix); if (url != null) { mi.setHorizontalTextPosition(JButton.RIGHT); mi.setIcon(new ImageIcon(url)); } String astr = getProperty(cmd + actionSuffix); if (astr == null) { astr = cmd; } mi.setActionCommand(astr); Action a = getAction(astr); if (a != null) { mi.addActionListener(a); a.addPropertyChangeListener(createActionChangeListener(mi)); mi.setEnabled(a.isEnabled()); } else { mi.setEnabled(false); } return mi; }