Search in sources :

Example 1 with JLayer

use of javax.swing.JLayer 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);
}
Also used : JPanel(javax.swing.JPanel) SubstanceFontSlider(jgnash.ui.components.SubstanceFontSlider) JLayer(javax.swing.JLayer) ActionEvent(java.awt.event.ActionEvent) JTextField(javax.swing.JTextField) ActionParser(jgnash.ui.util.builder.ActionParser) BorderLayout(java.awt.BorderLayout) DefaultEditorKit(javax.swing.text.DefaultEditorKit) AbstractAction(javax.swing.AbstractAction) JXBusyLabel(org.jdesktop.swingx.JXBusyLabel) WaitMessagePanel(jgnash.ui.components.WaitMessagePanel) AbstractEnabledAction(jgnash.ui.actions.AbstractEnabledAction) InputStream(java.io.InputStream) IOException(java.io.IOException) JToolBar(javax.swing.JToolBar) Dimension(java.awt.Dimension) MemoryMonitor(jgnash.ui.components.MemoryMonitor) JXStatusBar(org.jdesktop.swingx.JXStatusBar)

Example 2 with JLayer

use of javax.swing.JLayer in project jgnash by ccavanaugh.

the class AbstractLayerUI method paint.

/**
     * {@inheritDoc}
     * <p>
     * <b>Note:</b> It is rarely necessary to override this method, for custom
     * painting override {@link #paintLayer(Graphics2D, JLayer)} instead
     * <p>
     * This method calls {@code paintLayer(Graphics2D, JXLayer)} and resets the "dirty bit" at the end.
     *
     * @see #paintLayer(Graphics2D, JLayer)
     * @see #setDirty(boolean)
     */
@Override
@SuppressWarnings("unchecked")
public void paint(Graphics g, JComponent c) {
    if (g instanceof Graphics2D) {
        Graphics2D g2 = (Graphics2D) g.create();
        JLayer<V> l = (JLayer<V>) c;
        paintLayer(g2, l);
        g2.dispose();
        setDirty(false);
    }
}
Also used : JLayer(javax.swing.JLayer) Graphics2D(java.awt.Graphics2D)

Example 3 with JLayer

use of javax.swing.JLayer in project jgnash by ccavanaugh.

the class ValidationFactory method showValidationError.

public static void showValidationError(final String error, final JComponent component) {
    Container parent = component.getParent();
    if (parent instanceof JLayer) {
        component.putClientProperty(ValidationFactory.VALIDATION_PROPERTY, error);
        component.repaint();
    }
}
Also used : Container(java.awt.Container) JLayer(javax.swing.JLayer)

Aggregations

JLayer (javax.swing.JLayer)3 BorderLayout (java.awt.BorderLayout)1 Container (java.awt.Container)1 Dimension (java.awt.Dimension)1 Graphics2D (java.awt.Graphics2D)1 ActionEvent (java.awt.event.ActionEvent)1 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 AbstractAction (javax.swing.AbstractAction)1 JPanel (javax.swing.JPanel)1 JTextField (javax.swing.JTextField)1 JToolBar (javax.swing.JToolBar)1 DefaultEditorKit (javax.swing.text.DefaultEditorKit)1 AbstractEnabledAction (jgnash.ui.actions.AbstractEnabledAction)1 MemoryMonitor (jgnash.ui.components.MemoryMonitor)1 SubstanceFontSlider (jgnash.ui.components.SubstanceFontSlider)1 WaitMessagePanel (jgnash.ui.components.WaitMessagePanel)1 ActionParser (jgnash.ui.util.builder.ActionParser)1 JXBusyLabel (org.jdesktop.swingx.JXBusyLabel)1 JXStatusBar (org.jdesktop.swingx.JXStatusBar)1