Class AbstractTabbedUI

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

    public abstract class AbstractTabbedUI
    extends javax.swing.JComponent
    A tabbed GUI. All views on the data are contained in tabs.
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  AbstractTabbedUI.ExitAction
      An exit action.
      private class  AbstractTabbedUI.TabChangeHandler
      A tab change handler.
      private class  AbstractTabbedUI.TabEnableChangeListener
      A tab enable change listener.
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private javax.swing.Action closeAction
      The close action assigned to this UI.
      private javax.swing.JComponent currentToolbar
      The current toolbar.
      static java.lang.String GLOBAL_MENU_PROPERTY
      The global menu property.
      private boolean globalMenu
      Whether the UI should build a global menu from all root editors.
      private javax.swing.JMenuBar jMenuBar
      The current menu bar.
      static java.lang.String JMENUBAR_PROPERTY
      The menu bar property key.
      private java.util.ArrayList rootEditors
      The list of root editors.
      private int selectedRootEditor
      The index of the currently selected root editor.
      private javax.swing.JTabbedPane tabbedPane
      The tabbed pane filling the content area.
      private javax.swing.JPanel toolbarContainer
      The container component for the toolbar.
      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractTabbedUI()
      Default constructor.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      private void addMenus​(javax.swing.JMenuBar menuBar, javax.swing.JMenu[] customMenus)
      Adds menus.
      void addRootEditor​(RootEditor rootPanel)
      Adds a root editor.
      protected abstract void attempExit()
      Attempts to exit.
      private void closeToolbar()
      Closes the toolbar.
      protected javax.swing.Action createCloseAction()
      Creates a close action.
      private javax.swing.JMenuBar createEditorMenubar​(RootEditor root)
      Creates a menu bar.
      javax.swing.Action getCloseAction()
      Returns the close action.
      javax.swing.JMenuBar getJMenuBar()
      Returns the menu bar.
      protected abstract javax.swing.JMenu[] getPostfixMenus()
      The postfix menus.
      protected abstract javax.swing.JMenu[] getPrefixMenus()
      Returns the prefix menus.
      RootEditor getRootEditor​(int pos)
      Returns the specified editor.
      int getRootEditorCount()
      Returns the number of root editors.
      int getSelectedEditor()
      Returns the selected editor.
      protected javax.swing.JTabbedPane getTabbedPane()
      Returns the tabbed pane.
      boolean isGlobalMenu()
      Defines whether to use a global unified menu bar, which contains all menus from all tab-panes or whether to use local menubars.
      void setGlobalMenu​(boolean globalMenu)
      Sets the global menu flag.
      protected void setJMenuBar​(javax.swing.JMenuBar menuBar)
      Sets the menu bar.
      void setSelectedEditor​(int selectedEditor)
      Sets the selected editor.
      private javax.swing.JMenuBar updateGlobalMenubar()
      Updates the global menu bar.
      protected void updateRootEditorEnabled​(RootEditor editor)
      Update handler for the enable state of the root editor.
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • JMENUBAR_PROPERTY

        public static final java.lang.String JMENUBAR_PROPERTY
        The menu bar property key.
        See Also:
        Constant Field Values
      • GLOBAL_MENU_PROPERTY

        public static final java.lang.String GLOBAL_MENU_PROPERTY
        The global menu property.
        See Also:
        Constant Field Values
      • rootEditors

        private java.util.ArrayList rootEditors
        The list of root editors. One for each tab.
      • tabbedPane

        private javax.swing.JTabbedPane tabbedPane
        The tabbed pane filling the content area.
      • selectedRootEditor

        private int selectedRootEditor
        The index of the currently selected root editor.
      • currentToolbar

        private javax.swing.JComponent currentToolbar
        The current toolbar.
      • toolbarContainer

        private javax.swing.JPanel toolbarContainer
        The container component for the toolbar.
      • closeAction

        private javax.swing.Action closeAction
        The close action assigned to this UI.
      • jMenuBar

        private javax.swing.JMenuBar jMenuBar
        The current menu bar.
      • globalMenu

        private boolean globalMenu
        Whether the UI should build a global menu from all root editors.
    • Constructor Detail

      • AbstractTabbedUI

        public AbstractTabbedUI()
        Default constructor.
    • Method Detail

      • getTabbedPane

        protected javax.swing.JTabbedPane getTabbedPane()
        Returns the tabbed pane.
        Returns:
        The tabbed pane.
      • isGlobalMenu

        public boolean isGlobalMenu()
        Defines whether to use a global unified menu bar, which contains all menus from all tab-panes or whether to use local menubars.

        From an usability point of view, global menubars should be preferred, as this way users always see which menus are possibly available and do not wonder where the menus are disappearing.

        Returns:
        true, if global menus should be used, false otherwise.
      • setGlobalMenu

        public void setGlobalMenu​(boolean globalMenu)
        Sets the global menu flag.
        Parameters:
        globalMenu - the flag.
      • getJMenuBar

        public javax.swing.JMenuBar getJMenuBar()
        Returns the menu bar.
        Returns:
        The menu bar.
      • setJMenuBar

        protected void setJMenuBar​(javax.swing.JMenuBar menuBar)
        Sets the menu bar.
        Parameters:
        menuBar - the menu bar.
      • createCloseAction

        protected javax.swing.Action createCloseAction()
        Creates a close action.
        Returns:
        A close action.
      • getCloseAction

        public javax.swing.Action getCloseAction()
        Returns the close action.
        Returns:
        The close action.
      • getPrefixMenus

        protected abstract javax.swing.JMenu[] getPrefixMenus()
        Returns the prefix menus.
        Returns:
        The prefix menus.
      • getPostfixMenus

        protected abstract javax.swing.JMenu[] getPostfixMenus()
        The postfix menus.
        Returns:
        The postfix menus.
      • addMenus

        private void addMenus​(javax.swing.JMenuBar menuBar,
                              javax.swing.JMenu[] customMenus)
        Adds menus.
        Parameters:
        menuBar - the menu bar
        customMenus - the menus that should be added.
      • updateGlobalMenubar

        private javax.swing.JMenuBar updateGlobalMenubar()
        Updates the global menu bar.
        Returns:
        the fully initialized menu bar.
      • createEditorMenubar

        private javax.swing.JMenuBar createEditorMenubar​(RootEditor root)
        Creates a menu bar.
        Parameters:
        root -
        Returns:
        A menu bar.
      • addRootEditor

        public void addRootEditor​(RootEditor rootPanel)
        Adds a root editor.
        Parameters:
        rootPanel - the root panel.
      • getRootEditorCount

        public int getRootEditorCount()
        Returns the number of root editors.
        Returns:
        The count.
      • getRootEditor

        public RootEditor getRootEditor​(int pos)
        Returns the specified editor.
        Parameters:
        pos - the position index.
        Returns:
        The editor at the given position.
      • getSelectedEditor

        public int getSelectedEditor()
        Returns the selected editor.
        Returns:
        The selected editor.
      • setSelectedEditor

        public void setSelectedEditor​(int selectedEditor)
        Sets the selected editor.
        Parameters:
        selectedEditor - the selected editor.
      • closeToolbar

        private void closeToolbar()
        Closes the toolbar.
      • attempExit

        protected abstract void attempExit()
        Attempts to exit.
      • updateRootEditorEnabled

        protected void updateRootEditorEnabled​(RootEditor editor)
        Update handler for the enable state of the root editor.
        Parameters:
        editor - the editor.