in src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java [387:533]
private void createMenuBar() {
JMenuItem menuItemUseRightMouse =
new JMenuItem(
"Other options available via panel's right mouse button popup menu");
menuItemUseRightMouse.setEnabled(false);
viewMenu.setMnemonic('V');
AbstractConfiguration configuration = SettingsManager.getInstance().getGlobalConfiguration();
toggleShowToolbarCheck.setAction(toggleToolbarAction);
toggleShowToolbarCheck.setSelected(configuration.getBoolean("toolbar", true));
menuShowWelcome.setAction(toggleWelcomeVisibleAction);
JCheckBoxMenuItem pause = new JCheckBoxMenuItem(pauseAction);
JMenuItem menuPrefs = new JMenuItem(showPreferencesAction);
menuPrefs.setText(
showPreferencesAction.getValue(Action.SHORT_DESCRIPTION).toString());
JMenuItem menuCustomExpressionPanel =
new JMenuItem(customExpressionPanelAction);
menuCustomExpressionPanel.setText(
customExpressionPanelAction.getValue(Action.SHORT_DESCRIPTION).toString());
JMenuItem menuShowColor = new JMenuItem(showColorPanelAction);
menuShowColor.setText(
showColorPanelAction.getValue(Action.SHORT_DESCRIPTION).toString());
JMenuItem menuUndock = new JMenuItem(undockAction);
JMenuItem showAppPrefs =
new JMenuItem("Show Application-wide Preferences...");
showAppPrefs.addActionListener(
e -> logui.showApplicationPreferences());
toggleDetailMenuItem.setAction(toggleDetailPaneAction);
toggleDetailMenuItem.setSelected(true);
toggleCyclicMenuItem.setAction(changeModelAction);
toggleCyclicMenuItem.setSelected(true);
toggleLogTreeMenuItem.setAction(toggleLogTreeAction);
toggleLogTreeMenuItem.setSelected(true);
toggleScrollToBottomMenuItem.setAction(toggleScrollToBottomAction);
final Action toggleStatusBarAction =
new AbstractAction("Show Status bar") {
public void actionPerformed(ActionEvent arg0) {
boolean isSelected = toggleStatusBarCheck.isSelected();
SettingsManager.getInstance().getGlobalConfiguration()
.setProperty("statusBar", isSelected);
}
};
toggleStatusBarAction.putValue(
Action.MNEMONIC_KEY, KeyEvent.VK_B);
toggleStatusBarCheck.setAction(toggleStatusBarAction);
toggleStatusBarCheck.setSelected(
configuration.getBoolean("statusBar", true));
activeTabMenu.add(pause);
activeTabMenu.add(toggleCyclicMenuItem);
activeTabMenu.addSeparator();
activeTabMenu.add(toggleDetailMenuItem);
activeTabMenu.add(toggleLogTreeMenuItem);
activeTabMenu.addSeparator();
activeTabMenu.add(menuUndock);
activeTabMenu.add(menuShowColor);
activeTabMenu.add(menuPrefs);
activeTabMenu.addSeparator();
activeTabMenu.add(new CopyEventsToClipboardAction(logui));
activeTabMenu.add(new JMenuItem(clearAction));
activeTabMenu.addSeparator();
activeTabMenu.add(new JMenuItem(toggleMarkerAction));
activeTabMenu.add(new JMenuItem(findNextMarkerAction));
activeTabMenu.add(new JMenuItem(findPreviousMarkerAction));
activeTabMenu.add(new JMenuItem(clearAllMarkersAction));
activeTabMenu.add(new JMenuItem(findNextColorizedEventAction));
activeTabMenu.add(new JMenuItem(findPreviousColorizedEventAction));
activeTabMenu.addSeparator();
activeTabMenu.add(new JMenuItem(scrollToTopAction));
activeTabMenu.add(toggleScrollToBottomMenuItem);
activeTabMenu.add(menuItemUseRightMouse);
viewMenu.add(toggleShowToolbarCheck);
viewMenu.add(toggleStatusBarCheck);
viewMenu.add(toggleShowReceiversCheck);
viewMenu.add(menuShowWelcome);
viewMenu.addSeparator();
viewMenu.add(menuCustomExpressionPanel);
if (!OSXIntegration.IS_OSX) {
viewMenu.addSeparator();
viewMenu.add(showAppPrefs);
}
JMenu helpMenu = new JMenu("Help");
helpMenu.setMnemonic('H');
JMenuItem about = new JMenuItem("About Chainsaw v2...");
about.setMnemonic('A');
about.addActionListener(
e -> logui.showAboutBox());
Action startTutorial =
new AbstractAction("Tutorial...", new ImageIcon(ChainsawIcons.HELP)) {
public void actionPerformed(ActionEvent e) {
logui.setupTutorial();
}
};
startTutorial.putValue(
Action.SHORT_DESCRIPTION, "Starts the tutorial process");
helpMenu.add(startTutorial);
List knownReceivers = new ArrayList();
JMenu receiverHelp = new JMenu("Receiver JavaDoc");
for (Object knownReceiver : knownReceivers) {
final Class clazz = (Class) knownReceiver;
receiverHelp.add(
new AbstractAction(clazz.getName()) {
public void actionPerformed(ActionEvent arg0) {
HelpManager.getInstance().showHelpForClass(clazz);
}
});
}
helpMenu.add(receiverHelp);
helpMenu.addSeparator();
helpMenu.add(CommonActions.getInstance().getShowReleaseNotes());
helpMenu.add(about);
menuBar.add(fileMenu);
menuBar.add(viewMenu);
menuBar.add(activeTabMenu);
menuBar.add(helpMenu);
}