use of jgnash.ui.util.builder.ActionParser in project jgnash by ccavanaugh.
the class MainFrame method buildUI.
private void buildUI() {
ActionParser actionParser = new ActionParser(this);
actionParser.preLoadActions("jgnash.ui.actions");
actionParser.preLoadAction("copy-command", new DefaultEditorKit.CopyAction());
actionParser.preLoadAction("cut-command", new DefaultEditorKit.CutAction());
actionParser.preLoadAction("paste-command", new DefaultEditorKit.PasteAction());
actionParser.preLoadAction("exit-command", new AbstractAction() {
@Override
public void actionPerformed(final ActionEvent e) {
shutDown();
}
});
actionParser.preLoadAction("open-command", new OpenFileAction());
actionParser.preLoadAction("open-command-tb", new OpenFileAction());
actionParser.preLoadAction("account-filter-command", new AbstractEnabledAction() {
@Override
public void actionPerformed(final ActionEvent e) {
expandingAccountPanel.showAccountFilterDialog();
}
});
actionParser.preLoadAction("register-filter-command", new AbstractEnabledAction() {
@Override
public void actionPerformed(final ActionEvent e) {
registerTreePanel.showAccountFilterDialog();
}
});
actionParser.preLoadAction("currency-background-update-command", new UpdateExchangeRateAction());
actionParser.preLoadAction("security-background-update-command", new UpdateSecuritiesAction());
try (final InputStream stream = MainFrame.class.getResourceAsStream("/jgnash/resource/main-frame-actions.xml")) {
actionParser.loadFile(stream);
} catch (final IOException exception) {
logger.log(Level.SEVERE, exception.getMessage(), exception);
}
menuBar = actionParser.createMenuBar("main-menu");
JToolBar toolBar = actionParser.createToolBar("main-toolbar");
toolBar.setFloatable(false);
toolBar.setRollover(true);
viewMenu = (JMenu) actionParser.getJMenuItem("view-menu-command");
reportMenu = (JMenu) actionParser.getJMenuItem("report-menu-command");
windowMenu = (JMenu) actionParser.getJMenuItem("window-menu-command");
Objects.requireNonNull(windowMenu);
windowMenu.setEnabled(false);
editAction = actionParser.getAction("edit-menu-command");
if (EngineFactory.getEngine(EngineFactory.DEFAULT) == null) {
setOpenState(false);
}
setTitle(Main.VERSION);
mainView = buildMainView();
backgroundOperationLabel = new JXBusyLabel(new Dimension(18, 18));
statusField = new JTextField();
statusField.setEditable(false);
statusField.setFont(statusField.getFont().deriveFont(statusField.getFont().getSize2D() - 1f));
infoColor = statusField.getForeground();
JXStatusBar statusBar = new JXStatusBar();
statusBar.setResizeHandleEnabled(true);
statusBar.add(statusField, new JXStatusBar.Constraint(JXStatusBar.Constraint.ResizeBehavior.FILL));
if (ThemeManager.isLookAndFeelSubstance()) {
statusBar.add(new SubstanceFontSlider());
}
statusBar.add(backgroundOperationLabel);
statusBar.add(new MemoryMonitor(), new JXStatusBar.Constraint(120));
JPanel contentPanel = new JPanel(new BorderLayout());
contentPanel.add(toolBar, BorderLayout.NORTH);
contentPanel.add(mainView, BorderLayout.CENTER);
contentPanel.add(statusBar, BorderLayout.SOUTH);
JPanel rootPanel = new JPanel(new BorderLayout());
rootPanel.add(menuBar, BorderLayout.NORTH);
rootPanel.add(contentPanel, BorderLayout.CENTER);
waitPanel = new WaitMessagePanel();
busyLayerUI = new BusyLayerUI();
JLayer<JPanel> rootLayer = new JLayer<>(rootPanel, busyLayerUI);
getContentPane().add(rootLayer, BorderLayout.CENTER);
setGlassPane(waitPanel);
}
Aggregations