下面列出了javax.swing.JPopupMenu#addSeparator ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/** Get a custom, context-sensitive popup menu for the selected node. */
private JPopupMenu getPopupMenu(DefaultMutableTreeNode node) {
Object ob = node.getUserObject();
LayerThing thing = null;
if (ob instanceof LayerThing) {
thing = (LayerThing)ob;
} else {
return null;
}
// context-sensitive popup
JMenuItem[] item = thing.getPopupItems(this);
if (0 == item.length) return null;
JPopupMenu popup = new JPopupMenu();
for (int i=0; i<item.length; i++) {
if (null == item[i] || "" == item[i].getText()) popup.addSeparator();
else popup.add(item[i]);
}
return popup;
}
public void populatePopupMenu(final JPopupMenu menu) {
menu.add(ROW_ACTION);
menu.add(COLUMN_ACTION);
if (getTableHeader() != null) {
menu.addSeparator();
menu.add(FIT_COLUMN_ACTION);
menu.add(FIT_ALL_COLUMNS_ACTION);
menu.add(EQUAL_WIDTHS_ACTION);
}
if (isSortable()) {
menu.addSeparator();
menu.add(SORTING_ASCENDING_ACTION);
menu.add(SORTING_DESCENDING_ACTION);
}
if (getTableHeader() != null) {
if (getTableHeader().getReorderingAllowed()) {
menu.addSeparator();
menu.add(SORT_COLUMNS_BY_NAME_ACTION);
menu.add(RESTORE_COLUMN_ORDER_ACTION);
}
}
}
/**
*
* @Title : initPopupMenu
* @Description: PopupMenu Initialization
* @Param :
* @Return : void
* @Throws :
*/
public void initPopupMenu()
{
pm = new JPopupMenu();
miRmSelHdr = new JMenuItem(RESTConst.RM_SEL);
miRmSelHdr.setName(RESTConst.RM_SEL);
miRmSelHdr.addActionListener(this);
miNewHdr = new JMenuItem(RESTConst.NEW_HDR);
miNewHdr.setName(RESTConst.NEW_HDR);
miNewHdr.addActionListener(this);
pm.add(miNewHdr);
pm.addSeparator();
pm.add(miRmSelHdr);
}
private void rearrangeMenuItems(JPopupMenu popupMenu) {
Component[] components = popupMenu.getComponents();
Arrays.sort(components, (o1, o2) -> getGroupName(o1).compareToIgnoreCase(getGroupName(o2)));
popupMenu.removeAll();
Component lastComponent = null;
String lastGroupName = null;
for (Component component : components) {
String groupName = getGroupName(component);
if (lastGroupName != null
&& !lastGroupName.equals(groupName)
&& !(lastComponent instanceof JSeparator)) {
popupMenu.addSeparator();
}
lastGroupName = groupName;
lastComponent = component;
if (component instanceof JMenuItem) {
popupMenu.add((JMenuItem) component);
} else if (component instanceof Action) {
popupMenu.add((Action) component);
} else {
popupMenu.add(component);
}
}
}
private void addFoldingActionsToPopUpMenu(JPopupMenu menu,
List<TabAction> activeActions) {
JMenu submenu = new JMenu(NbBundle.getMessage(
OutputTab.class, "LBL_OutputFolds")); //NOI18N
for (ACTION a : popUpFoldItems) {
if (a == null) {
submenu.addSeparator();
} else {
TabAction ta = action(a);
activeActions.add(ta);
submenu.add(new JMenuItem(ta));
}
}
menu.addSeparator();
menu.add(submenu);
}
public Component getToolbarPresenter() {
if (toolbarPresenter == null) {
// gets the real action registered in the menu from layer
Action a = Actions.forID("Profile", "org.netbeans.modules.profiler.actions.AttachMainProject"); // NOI18N
final Action attachProjectAction = a != null ? a : /* XXX should be impossible */AttachAction.getInstance();
// gets the real action registered in the menu from layer
a = Actions.forID("Profile", "org.netbeans.modules.profiler.actions.AttachAction"); // NOI18N
final Action attachProcessAction = a != null ? a : /* XXX should be impossible */AttachAction.getInstance();
JPopupMenu dropdownPopup = new JPopupMenu();
dropdownPopup.add(createDropdownItem(defaultAction));
dropdownPopup.add(createDropdownItem(attachProjectAction));
dropdownPopup.addSeparator();
dropdownPopup.add(createDropdownItem(attachProcessAction));
JButton button = DropDownButtonFactory.createDropDownButton(new ImageIcon(
new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB)), dropdownPopup);
Actions.connect(button, defaultAction);
toolbarPresenter = button;
}
return toolbarPresenter;
}
JPopupMenu createPopupMenu() {
// Get actions for the node
List<Action>[] actionsArray = getActions();
List<Action> defaultActions = actionsArray[0];
List<Action> actions = actionsArray[1];
// Return if there are no actions to display
if (defaultActions.size() == 0 && actions.size() == 0) return null;
// Create a popup menu
JPopupMenu popupMenu = new JPopupMenu();
// Insert default actions
boolean realDefaultAction = true;
if (!defaultActions.isEmpty()) {
for (Action defaultAction : defaultActions) {
JMenuItem defaultItem = new DataSourceItem(defaultAction);
if (realDefaultAction) {
defaultItem.setFont(defaultItem.getFont().deriveFont(Font.BOLD));
realDefaultAction = false;
}
popupMenu.add(defaultItem);
}
}
// Insert separator between default action and other actions
if (!defaultActions.isEmpty() && !actions.isEmpty()) popupMenu.addSeparator();
// Insert other actions
if (!actions.isEmpty()) {
for (Action action : actions) {
if (action == null) popupMenu.addSeparator();
else popupMenu.add(createItem(action));
}
}
return popupMenu;
}
/**
* Adds menus related to node selection to a given node context menu.
*
* @param menu The node context menu to extend.
* @param graph The graph the clicked node belongs to.
* @param node The clicked node.
*/
public static void addSelectionMenus(
final JPopupMenu menu, final ZyGraph graph, final NaviNode node) {
Preconditions.checkNotNull(menu, "IE02144: Menu argument can not be null");
Preconditions.checkNotNull(graph, "IE02145: Graph argument can not be null");
Preconditions.checkNotNull(node, "IE02146: Node argument can not be null");
final JMenu selectionMenu = new JMenu("Selection");
selectionMenu.add(CActionProxy.proxy(new CActionSelectNodePredecessors(graph, node)));
selectionMenu.add(CActionProxy.proxy(new CActionSelectNodeSuccessors(graph, node)));
if (graph.getSelectedNodes().size() > 0) {
selectionMenu.add(CActionProxy.proxy(new CGroupAction(graph)));
}
if (node.getRawNode() instanceof INaviCodeNode) {
try {
final INaviFunction parentFunction =
((INaviCodeNode) node.getRawNode()).getParentFunction();
selectionMenu.add(CActionProxy.proxy(
new CActionSelectSameParentFunction(graph, parentFunction)));
} catch (final MaybeNullException exception) {
// Obviously we can not select nodes of the same parent function if there
// is no parent function.
}
} else if (node.getRawNode() instanceof INaviFunctionNode) {
final INaviFunction function = ((INaviFunctionNode) node.getRawNode()).getFunction();
selectionMenu.add(CActionProxy.proxy(
new CActionSelectSameFunctionType(graph, function.getType())));
}
menu.add(selectionMenu);
menu.addSeparator();
}
private static JPopupMenu createPopupMenu(MergePanel panel) {
JPopupMenu popup = new JPopupMenuPlus();
SystemAction[] actions = panel.getSystemActions();
for (int i = 0; i < actions.length; i++) {
if (actions[i] == null) {
popup.addSeparator();
} else if (actions[i] instanceof CallableSystemAction) {
popup.add(((CallableSystemAction)actions[i]).getPopupPresenter());
//add FileSystemAction to pop-up menu
} else if (actions[i] instanceof FileSystemAction) {
popup.add(((FileSystemAction)actions[i]).getPopupPresenter());
}
}
return popup;
}
/** Creates a new popup menu for the selected operator. */
private JPopupMenu createOperatorPopupMenu() {
JPopupMenu menu = new JPopupMenu();
menu.add(EXPAND_ALL_ACTION);
menu.add(COLLAPSE_ALL_ACTION);
menu.addSeparator();
String name = "Tree";
if (mainFrame.getProcess().getProcessLocation() != null) {
name = mainFrame.getProcess().getProcessLocation().getShortName();
}
menu.add(PrintingTools.makeExportPrintMenu(this, name));
return menu;
}
@Override
protected JPopupMenu createPopupMenu(final MouseEvent event) {
final Component comp = event.getComponent();
final Point p = comp.getLocationOnScreen();
final JPopupMenu menu = new JPopupMenu();
addItem(menu, "show.information", p);
menu.addSeparator();
addItem(menu, "shutdown.restart.driver", p);
addItem(menu, "load.balancing.settings", p);
addItem(menu, "driver.reset.statistics", p);
menu.addSeparator();
addItem(menu, "update.configuration", p);
addItem(menu, "update.threads", p);
addItem(menu, "reset.counter", p);
menu.addSeparator();
addItem(menu, "restart.node", p);
addItem(menu, "restart.node.deferred", p);
addItem(menu, "shutdown.node", p);
addItem(menu, "shutdown.node.deferred", p);
addItem(menu, "reconnect.node", p);
addItem(menu, "reconnect.node.deferred", p);
addItem(menu, "cancel.deferred.action", p);
menu.addSeparator();
addItem(menu, "toggle.active", p);
addItem(menu, "node.provisioning", p);
return menu;
}
private JPopupMenu createContainerPopupMenu() {
JPopupMenu pop = new JPopupMenu("Container");
pop.add(setAccessibleContext(new JMenuItem(containerRefreshAction)));
pop.add(setAccessibleContext(new JMenuItem(containerViewMetaData)));
pop.addSeparator();
pop.add(setAccessibleContext(new JMenuItem(containerCreateAction)));
pop.add(setAccessibleContext(new JMenuItem(containerDeleteAction)));
pop.addSeparator();
pop.add(setAccessibleContext(new JMenuItem(containerEmptyAction)));
pop.addSeparator();
pop.add(setAccessibleContext(new JMenuItem(containerPurgeAction)));
return pop;
}
/**
* Displays the popup menu at the location specified by the click event.
*
* @param event The click event.
*/
private void showPopupMenu(final MouseEvent event) {
final int row = rowAtPoint(event.getPoint());
final int column = columnAtPoint(event.getPoint());
int[] rows = getSelectedRows();
if ((rows.length == 0) || (rows.length == 1)) {
changeSelection(row, column, false, false);
rows = getSelectedRows();
}
final JPopupMenu menu = new JPopupMenu();
menu.add(new JMenuItem(CActionProxy.proxy(new CDeleteAction(m_debuggerProvider, rows))));
if (CBreakpointFunctions.allDisabled(m_debuggerProvider, rows)) {
menu.add(new JMenuItem(CActionProxy.proxy(new CEnableAction(m_debuggerProvider, rows))));
} else if (CBreakpointFunctions.allNotDisabled(m_debuggerProvider, rows)) {
menu.add(new JMenuItem(CActionProxy.proxy(new CDisableAction(m_debuggerProvider, rows))));
}
if (rows.length == 1) {
menu.addSeparator();
final Pair<IDebugger, Integer> breakpoint =
CBreakpointTableHelpers.findBreakpoint(m_debuggerProvider, rows[0]);
final BreakpointManager manager = breakpoint.first().getBreakpointManager();
final int breakpointIndex = breakpoint.second();
final BreakpointAddress address =
manager.getBreakpoint(BreakpointType.REGULAR, breakpointIndex).getAddress();
menu.add(new JMenuItem(CActionProxy.proxy(new CZoomBreakpointAction(SwingUtilities
.windowForComponent(this), m_graph, m_viewContainer, address))));
}
menu.show(event.getComponent(), event.getX(), event.getY());
}
public JPQLEditorPopupMouseAdapter() {
super();
popupMenu = new JPopupMenu();
ActionListener actionListener = new PopupActionListener();
runJPQLMenuItem = popupMenu.add(RUN_JPQL_COMMAND);
runJPQLMenuItem.setMnemonic('Q');
runJPQLMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, InputEvent.ALT_MASK | InputEvent.SHIFT_MASK, false));
runJPQLMenuItem.addActionListener(actionListener);
popupMenu.addSeparator();
cutMenuItem = popupMenu.add(CUT_COMMAND);
cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK, true));
cutMenuItem.setMnemonic('t');
cutMenuItem.addActionListener(actionListener);
copyMenuItem = popupMenu.add(COPY_COMMAND);
copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK, true));
copyMenuItem.setMnemonic('y');
copyMenuItem.addActionListener(actionListener);
pasteMenuItem = popupMenu.add(PASTE_COMMAND);
pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK, true));
pasteMenuItem.setMnemonic('P');
pasteMenuItem.addActionListener(actionListener);
popupMenu.addSeparator();
selectAllMenuItem = popupMenu.add(SELECT_ALL_COMMAND);
selectAllMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK, true));
selectAllMenuItem.setMnemonic('A');
selectAllMenuItem.addActionListener(actionListener);
}
public JPQLEditorPopupMouseAdapter() {
super();
popupMenu = new JPopupMenu();
ActionListener actionListener = new PopupActionListener();
runJPQLMenuItem = popupMenu.add(RUN_JPQL_COMMAND);
runJPQLMenuItem.setMnemonic('Q');
runJPQLMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, InputEvent.ALT_MASK | InputEvent.SHIFT_MASK, false));
runJPQLMenuItem.addActionListener(actionListener);
popupMenu.addSeparator();
cutMenuItem = popupMenu.add(CUT_COMMAND);
cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK, true));
cutMenuItem.setMnemonic('t');
cutMenuItem.addActionListener(actionListener);
copyMenuItem = popupMenu.add(COPY_COMMAND);
copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK, true));
copyMenuItem.setMnemonic('y');
copyMenuItem.addActionListener(actionListener);
pasteMenuItem = popupMenu.add(PASTE_COMMAND);
pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK, true));
pasteMenuItem.setMnemonic('P');
pasteMenuItem.addActionListener(actionListener);
popupMenu.addSeparator();
selectAllMenuItem = popupMenu.add(SELECT_ALL_COMMAND);
selectAllMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK, true));
selectAllMenuItem.setMnemonic('A');
selectAllMenuItem.addActionListener(actionListener);
}
private JPopupMenu generatePopupMenu(RobotComponent component) {
JPopupMenu menu = new JPopupMenu();
List<JMenu> submenus = new LinkedList<>();
TreeModel model = Palette.getInstance().getPaletteModel();
Enumeration children = ((DefaultMutableTreeNode) model.getRoot()).children();
while (children.hasMoreElements()) {
DefaultMutableTreeNode child = (DefaultMutableTreeNode) children.nextElement();
JMenu submenu = generateMenu(new JMenu("Add " + child.getUserObject()), child, component);
if (submenu.getSubElements().length > 0) {
submenus.add(submenu);
}
}
if (submenus.size() > 1) {
submenus.forEach(menu::add);
} else if (submenus.size() == 1) {
for (Component element : submenus.get(0).getMenuComponents()) {
menu.add(element);
}
}
if (isDeletable(component)) {
if (menu.getSubElements().length > 0) {
menu.addSeparator();
}
menu.add(new DeleteItemAction("Delete", component));
}
return menu;
}
/**
* Creates the context menu of a memory viewer component.
*
* @param offset The memory offset where the context menu will be shown.
*
* @return The context menu for the specified address.
*/
@Override
public JPopupMenu createMenu(final long offset) {
final JPopupMenu menu = new JPopupMenu();
final IDebugger debugger = m_debugger.getCurrentSelectedDebugger();
if (debugger == null) {
return null;
}
menu.add(CActionProxy.proxy(new CSearchAction(m_parent, m_debugger, m_memoryView)));
menu.add(CActionProxy.proxy(new CGotoAction(m_parent, m_memoryView, m_debugger)));
if (canReadDword(debugger.getProcessManager().getMemoryMap(), offset)) {
final byte[] data = debugger.getProcessManager().getMemory().getData(offset, 4);
final IAddress dword = new CAddress(ByteHelpers.readDwordLittleEndian(data, 0));
if (canReadDword(debugger.getProcessManager().getMemoryMap(), dword.toLong())) {
menu.add(CActionProxy.proxy(new CFollowDumpAction(m_debugger, dword)));
}
}
menu.addSeparator();
final long firstOffset = m_memoryView.getHexView().getBaseAddress();
final int size = m_memoryView.getHexView().getData().getDataLength();
menu.add(new CLoadAllAction(m_parent, debugger, new CAddress(firstOffset), size));
// Offer the option to dump memory
final JMenu dumpMenu = new JMenu("Dump to file");
dumpMenu.add(CActionProxy.proxy(new CDumpMemoryRangeAction(m_parent, debugger, m_memoryView
.getHexView().getData(), new CAddress(firstOffset), size)));
menu.add(dumpMenu);
menu.addSeparator();
final BookmarkManager manager = debugger.getBookmarkManager();
// At first offer the option to add or remove a bookmark
// at the specified position.
final CBookmark bookmark = manager.getBookmark(new CAddress(offset));
if (bookmark == null) {
menu.add(new JMenuItem(CActionProxy.proxy(new CCreateBookmarkAction(manager, new CAddress(
offset)))));
} else {
menu.add(new JMenuItem(CActionProxy.proxy(new CDeleteBookmarkAction(manager, bookmark))));
}
if (manager.getNumberOfBookmarks() != 0) {
// Afterwards list all currently active bookmarks.
menu.addSeparator();
final JMenu bookmarksItem = new JMenu("Bookmarks");
for (int i = 0; i < manager.getNumberOfBookmarks(); i++) {
bookmarksItem.add(CActionProxy.proxy(new CGotoBookmarkAction(m_debugger, manager
.getBookmark(i))));
}
menu.add(bookmarksItem);
}
menu.addSeparator();
menu.add(HexViewOptionsMenu.createHexViewOptionsMenu(m_memoryView.getHexView()));
return menu;
}
private void initKeyStoreTabPopupMenu() {
jpmKeyStoreTab = new JPopupMenu();
jmiKeyStoreTabSave = new JMenuItem(saveAction);
jmiKeyStoreTabSave.setToolTipText(null);
new StatusBarChangeHandler(jmiKeyStoreTabSave, (String) saveAction.getValue(Action.LONG_DESCRIPTION), this);
jpmKeyStoreTab.add(jmiKeyStoreTabSave);
jmiKeyStoreTabSaveAll = new JMenuItem(saveAllAction);
jmiKeyStoreTabSaveAll.setToolTipText(null);
new StatusBarChangeHandler(jmiKeyStoreTabSaveAll, (String) saveAllAction.getValue(Action.LONG_DESCRIPTION),
this);
jpmKeyStoreTab.add(jmiKeyStoreTabSaveAll);
jpmKeyStoreTab.addSeparator();
jmiKeyStoreTabPaste = new JMenuItem(pasteAction);
jmiKeyStoreTabPaste.setToolTipText(null);
new StatusBarChangeHandler(jmiKeyStoreTabPaste, (String) pasteAction.getValue(Action.LONG_DESCRIPTION), this);
jpmKeyStoreTab.add(jmiKeyStoreTabPaste);
jpmKeyStoreTab.addSeparator();
jmiKeyStoreTabClose = new JMenuItem(closeAction);
jmiKeyStoreTabClose.setToolTipText(null);
new StatusBarChangeHandler(jmiKeyStoreTabClose, (String) closeAction.getValue(Action.LONG_DESCRIPTION), this);
jpmKeyStoreTab.add(jmiKeyStoreTabClose);
jmiKeyStoreTabCloseOthers = new JMenuItem(closeOthersAction);
jmiKeyStoreTabCloseOthers.setToolTipText(null);
new StatusBarChangeHandler(jmiKeyStoreTabCloseOthers,
(String) closeOthersAction.getValue(Action.LONG_DESCRIPTION), this);
jpmKeyStoreTab.add(jmiKeyStoreTabCloseOthers);
jmiKeyStoreTabCloseAll = new JMenuItem(closeAllAction);
jmiKeyStoreTabCloseAll.setToolTipText(null);
new StatusBarChangeHandler(jmiKeyStoreTabCloseAll, (String) closeAllAction.getValue(Action.LONG_DESCRIPTION),
this);
jpmKeyStoreTab.add(jmiKeyStoreTabCloseAll);
jpmKeyStoreTab.addSeparator();
jmiKeyStoreTabProperties = new JMenuItem(propertiesAction);
jmiKeyStoreTabProperties.setToolTipText(null);
new StatusBarChangeHandler(jmiKeyStoreTabProperties,
(String) propertiesAction.getValue(Action.LONG_DESCRIPTION), this);
jpmKeyStoreTab.add(jmiKeyStoreTabProperties);
}
TwoDPlot(RawDataFile rawDataFile, TwoDVisualizerWindow visualizer, TwoDDataSet dataset,
Range<Double> rtRange, Range<Double> mzRange, String whichPlotTypeStr) {
super(null, true);
this.rawDataFile = rawDataFile;
this.rtRange = rtRange;
this.mzRange = mzRange;
setBackground(Color.white);
setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
// set the X axis (retention time) properties
xAxis = new NumberAxis("Retention time");
xAxis.setAutoRangeIncludesZero(false);
xAxis.setNumberFormatOverride(rtFormat);
xAxis.setUpperMargin(0);
xAxis.setLowerMargin(0);
// set the Y axis (intensity) properties
yAxis = new NumberAxis("m/z");
yAxis.setAutoRangeIncludesZero(false);
yAxis.setNumberFormatOverride(mzFormat);
yAxis.setUpperMargin(0);
yAxis.setLowerMargin(0);
// set the plot properties
if (whichPlotTypeStr == "default") {
plot = new TwoDXYPlot(dataset, rtRange, mzRange, xAxis, yAxis);
} else if (whichPlotTypeStr == "point2D") {
plot = new PointTwoDXYPlot(dataset, rtRange, mzRange, xAxis, yAxis);
}
plot.setBackgroundPaint(Color.white);
plot.setDomainGridlinesVisible(false);
plot.setRangeGridlinesVisible(false);
// chart properties
chart = new JFreeChart("", titleFont, plot, false);
chart.setBackgroundPaint(Color.white);
setChart(chart);
// title
chartTitle = chart.getTitle();
chartTitle.setMargin(5, 0, 0, 0);
chartTitle.setFont(titleFont);
chartSubTitle = new TextTitle();
chartSubTitle.setFont(subTitleFont);
chartSubTitle.setMargin(5, 0, 0, 0);
chart.addSubtitle(chartSubTitle);
// disable maximum size (we don't want scaling)
setMaximumDrawWidth(Integer.MAX_VALUE);
setMaximumDrawHeight(Integer.MAX_VALUE);
// set crosshair (selection) properties
plot.setRangeCrosshairVisible(false);
plot.setDomainCrosshairVisible(true);
plot.setDomainCrosshairPaint(crossHairColor);
plot.setDomainCrosshairStroke(crossHairStroke);
// set rendering order
plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
peakDataRenderer = new PeakDataRenderer();
JMenuItem plotTypeMenuItem = new JMenuItem("Toggle centroid/continuous mode");
plotTypeMenuItem.addActionListener(visualizer);
plotTypeMenuItem.setActionCommand("SWITCH_PLOTMODE");
add(plotTypeMenuItem);
JPopupMenu popupMenu = getPopupMenu();
popupMenu.addSeparator();
popupMenu.add(plotTypeMenuItem);
// Add EMF and EPS options to the save as menu
JMenuItem saveAsMenu = (JMenuItem) popupMenu.getComponent(3);
GUIUtils.addMenuItem(saveAsMenu, "EMF...", this, "SAVE_EMF");
GUIUtils.addMenuItem(saveAsMenu, "EPS...", this, "SAVE_EPS");
// reset zoom history
ZoomHistory history = getZoomHistory();
if (history != null)
history.clear();
}
protected void addAction(JTextComponent component, JPopupMenu popupMenu, Action action) {
Lookup contextLookup = getContextLookup(component);
// issue #69688
EditorKit kit = component.getUI().getEditorKit(component);
if (contextLookup == null && (kit instanceof NbEditorKit) &&
((NbEditorKit)kit).systemAction2editorAction.containsKey(action.getClass().getName())){
addAction(component, popupMenu, (String) ((NbEditorKit)kit).systemAction2editorAction.get(action.getClass().getName()));
return;
}
action = translateContextLookupAction(contextLookup, action);
if (action != null) {
JMenuItem item = createLocalizedMenuItem(action);
if (item instanceof DynamicMenuContent) {
Component[] cmps = ((DynamicMenuContent)item).getMenuPresenters();
for (int i = 0; i < cmps.length; i++) {
if(cmps[i] != null) {
popupMenu.add(cmps[i]);
} else {
popupMenu.addSeparator();
}
}
} else {
if (Boolean.TRUE.equals(action.getValue(DynamicMenuContent.HIDE_WHEN_DISABLED)) && !action.isEnabled()) {
return;
}
if (item == null) {
LOG.log(Level.WARNING, "Null menu item produced by action {0}.", action);
} else {
item.setEnabled(action.isEnabled());
Object helpID = action.getValue ("helpID"); // NOI18N
if (helpID != null && (helpID instanceof String)) {
item.putClientProperty ("HelpID", helpID); // NOI18N
}
assignAccelerator(component.getKeymap(), action, item);
debugPopupMenuItem(item, action);
popupMenu.add(item);
}
}
}
}