Class View

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, Dockable, DockingConstants, DockingListener, DockingMonitor

    public class View
    extends javax.swing.JComponent
    implements Dockable, DockingConstants
    The View class is slightly incompatible with JComponent. Similar to JFC/Swing top-level containers, a View contains only a content pane Container and a Titlebar. The content pane should contain all the components displayed by the View. As a convenience add and its variants, remove(Component) and setLayout have been overridden to forward to the contentPane as necessary. This means you can write:
     view.add(child);
     
    And the child will be added to the contentPane. The content pane will always be non-null. Attempting to set it to null will cause the View to throw an exception. The default content pane will not have a layout manager set.
    Author:
    Christopher Butler, Karl Schaefer
    See Also:
    JFrame, JRootPane, Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  View.ViewLayout  
      • 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
    • Constructor Summary

      Constructors 
      Constructor Description
      View​(java.lang.String persistentId)  
      View​(java.lang.String persistentId, java.lang.String title)  
      View​(java.lang.String persistentId, java.lang.String title, java.lang.String tabText)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addAction​(java.lang.String action)  
      void addAction​(javax.swing.Action action)  
      void addDockingListener​(DockingListener listener)  
      protected void addImpl​(java.awt.Component comp, java.lang.Object constraints, int index)
      protected java.awt.Container createContentPane()  
      protected java.awt.LayoutManager createLayout()  
      protected Titlebar createTitlebar()  
      boolean dock​(Dockable dockable)
      Implements the semantics for docking an external Dockable to this Dockable and returns a boolean indicating whether or not the docking operation was successful.
      boolean dock​(Dockable dockable, java.lang.String relativeRegion)
      Implements the semantics for docking an external Dockable to the specified region of this Dockable and returns a boolean indicating whether or not the docking operation was successful.
      boolean dock​(Dockable dockable, java.lang.String relativeRegion, float ratio)
      Implements the semantics for docking an external Dockable to the specified region of this Dockable with the specified layout ratio, returning a boolean indicating whether or not the docking operation was successful.
      void dockingCanceled​(DockingEvent evt)
      Fired when docking of a Dockable is canceled during the operation.
      void dockingComplete​(DockingEvent evt)
      Fired when docking of a Dockable has completed.
      void dragStarted​(DockingEvent evt)
      Fired when the dragging of a Dockable has begun.
      void dropStarted​(DockingEvent evt)
      Fired when the dropping of a Dockable has begun at the release of a drag-operation.
      javax.swing.AbstractButton getActionButton​(java.lang.String actionName)  
      java.awt.Component getComponent()
      Returns the Component that is to be dragged and docked.
      java.awt.Container getContentPane()  
      DockingListener[] getDockingListeners()  
      DockingPort getDockingPort()
      Returns the DockingPort within which this Dockable is currently docked.
      DockablePropertySet getDockingProperties()
      Returns a DockablePropertySet instance associated with this Dockable.
      java.util.List getDragSources()
      Returns a List of the Components that are event sources for drag operations.
      java.util.Set getFrameDragSources()
      Returns a Set of the Components that are used as frame drag sources.
      static View getInstance​(java.lang.String viewId)  
      int getMinimizedConstraint()  
      java.lang.String getPersistentId()
      Returns a String identifier that is unique within a JVM instance, but persistent across JVM instances.
      protected java.lang.String getPreferredTitlebarUIName()  
      Dockable getSibling​(java.lang.String region)  
      javax.swing.Icon getTabIcon()  
      java.lang.String getTabText()  
      java.lang.String getTitle()  
      Titlebar getTitlebar()  
      protected java.awt.Component getTitlePane()  
      java.lang.String getUIClassID()  
      Viewport getViewport()  
      ViewProps getViewProperties()  
      boolean isActionBlocked​(java.lang.String actionName)  
      boolean isActive()  
      boolean isActiveStateLocked()  
      protected boolean isContentPaneCheckingEnabled()  
      boolean isFloating()  
      boolean isMinimized()  
      boolean isTerritoryBlocked​(Dockable dockable, java.lang.String region)  
      protected java.lang.String paramString()  
      void remove​(java.awt.Component comp)  
      void removeActions()  
      void removeDockingListener​(DockingListener listener)  
      void setActionBlocked​(java.lang.String actionName, boolean blocked)  
      void setActive​(boolean b)  
      void setActiveStateLocked​(boolean b)  
      void setContentPane​(java.awt.Container c)
      Sets the content pane for this view.
      protected void setContentPaneCheckingEnabled​(boolean contentPaneCheckingEnabled)  
      void setIcon​(java.lang.String imgUri)  
      void setIcon​(javax.swing.Icon icon)  
      void setLayout​(java.awt.LayoutManager manager)
      Sets the LayoutManager.
      void setTabIcon​(javax.swing.Icon icon)  
      void setTabText​(java.lang.String tabText)  
      void setTerritoryBlocked​(java.lang.String region, boolean blocked)  
      void setTitle​(java.lang.String title)  
      void setTitle​(java.lang.String title, boolean alsoTabText)  
      void setTitlebar​(Titlebar titlebar)  
      void undockingComplete​(DockingEvent evt)  
      void undockingStarted​(DockingEvent evt)  
      void updateUI()  
      • 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, getUI, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, 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
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, 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, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, 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

      • ACTION_TOGGLE_NEXT

        public static final java.lang.String ACTION_TOGGLE_NEXT
        See Also:
        Constant Field Values
      • ACTION_TOGGLE_PREVIOUS

        public static final java.lang.String ACTION_TOGGLE_PREVIOUS
        See Also:
        Constant Field Values
      • titlepane

        protected Titlebar titlepane
      • contentPane

        protected java.awt.Container contentPane
      • contentPaneCheckingEnabled

        protected boolean contentPaneCheckingEnabled
      • dockingListeners

        protected java.util.ArrayList dockingListeners
      • dragSources

        protected java.util.ArrayList dragSources
      • frameDragSources

        protected java.util.HashSet frameDragSources
    • Constructor Detail

      • View

        public View​(java.lang.String persistentId)
      • View

        public View​(java.lang.String persistentId,
                    java.lang.String title)
      • View

        public View​(java.lang.String persistentId,
                    java.lang.String title,
                    java.lang.String tabText)
    • Method Detail

      • getInstance

        public static View getInstance​(java.lang.String viewId)
      • createContentPane

        protected java.awt.Container createContentPane()
      • createLayout

        protected java.awt.LayoutManager createLayout()
      • createTitlebar

        protected Titlebar createTitlebar()
      • getContentPane

        public java.awt.Container getContentPane()
      • getTitlebar

        public Titlebar getTitlebar()
      • getDockingProperties

        public DockablePropertySet getDockingProperties()
        Description copied from interface: Dockable
        Returns a DockablePropertySet instance associated with this Dockable. Developers implementing the Dockable interface may or may not choose to provide their own DockablePropertySet implementation for use with this method. A default implementation is supplied by the framework and most Dockable implementations, including all implementations provided by the framework, will return the default DockablePropertySet via a call to org.flexdock.docking.props.PropertyManager. Developers are encouraged to take advantage of this by calling PropertyManager.getDockablePropertySet(this).
        Specified by:
        getDockingProperties in interface Dockable
        Returns:
        the DockablePropertySet associated with this Dockable This method may not return a null reference.
        See Also:
        DockablePropertySet, PropertyManager.getDockablePropertySet(Dockable)
      • getViewProperties

        public ViewProps getViewProperties()
      • addAction

        public void addAction​(javax.swing.Action action)
      • addAction

        public void addAction​(java.lang.String action)
      • removeActions

        public void removeActions()
      • setIcon

        public void setIcon​(javax.swing.Icon icon)
      • setIcon

        public void setIcon​(java.lang.String imgUri)
      • setContentPane

        public void setContentPane​(java.awt.Container c)
                            throws java.lang.IllegalArgumentException
        Sets the content pane for this view.
        Parameters:
        c - the container to use as the content pane.
        Throws:
        java.lang.IllegalArgumentException - if c is null or if c is the titlepane.
        See Also:
        titlepane, getTitlePane()
      • getPreferredTitlebarUIName

        protected java.lang.String getPreferredTitlebarUIName()
      • setTitlebar

        public void setTitlebar​(Titlebar titlebar)
      • getTitlePane

        protected java.awt.Component getTitlePane()
      • setTitle

        public void setTitle​(java.lang.String title)
      • setTitle

        public void setTitle​(java.lang.String title,
                             boolean alsoTabText)
      • getTitle

        public java.lang.String getTitle()
      • updateUI

        public void updateUI()
        Overrides:
        updateUI in class javax.swing.JComponent
      • getUIClassID

        public java.lang.String getUIClassID()
        Overrides:
        getUIClassID in class javax.swing.JComponent
      • addImpl

        protected void addImpl​(java.awt.Component comp,
                               java.lang.Object constraints,
                               int index)
        Overrides:
        addImpl in class java.awt.Container
      • remove

        public void remove​(java.awt.Component comp)
        Overrides:
        remove in class java.awt.Container
      • getActionButton

        public javax.swing.AbstractButton getActionButton​(java.lang.String actionName)
      • getComponent

        public java.awt.Component getComponent()
        Description copied from interface: Dockable
        Returns the Component that is to be dragged and docked. This may or may not be included in the list returned by getDragSources().

        The framework performs indexing on the underlying Component. Consequently, this method may not return a null reference.

        Specified by:
        getComponent in interface Dockable
        Returns:
        the component wrapped by this dockable.
      • getDragSources

        public java.util.List getDragSources()
        Description copied from interface: Dockable
        Returns a List of the Components that are event sources for drag operations. The list may or may not include the Component returned by getComponent().
        Specified by:
        getDragSources in interface Dockable
        Returns:
        a list containing the components that may be used to drag this dockable.
      • getFrameDragSources

        public java.util.Set getFrameDragSources()
        Description copied from interface: Dockable
        Returns a Set of the Components that are used as frame drag sources. When a Dockable is floated into an external frame, that frame may or may not have a titlebar for repositioning. The Components returned by this method will be setup with appropriate event listeners such that dragging them will serve to reposition the containing frame as if they were the frame titlebar. If a Component exists in both the Set returned by this method and the List returned by getDragSources(), the "frame reposition" behavior will supercede any "drag-to-dock" behavior while the Dockable is in a floating state.
        Specified by:
        getFrameDragSources in interface Dockable
        Returns:
        a set containing the components that may be used to drag the frame this dockable resides in, if the dockable is floating.
      • getPersistentId

        public java.lang.String getPersistentId()
        Description copied from interface: Dockable
        Returns a String identifier that is unique within a JVM instance, but persistent across JVM instances. This is used for configuration mangement, allowing the JVM to recognize a Dockable instance within an application instance, persist the ID, and recall it in later application instances. The ID should be unique within an appliation instance so that there are no collisions with other Dockable instances, but it should also be consistent from JVM to JVM so that the association between a Dockable instance and its ID can be remembered from session to session.

        The framework performs indexing on the persistent ID. Consequently, this method may not return a null reference.

        Specified by:
        getPersistentId in interface Dockable
        Returns:
        the persistence id for this dockable. This id ensures that only one copy of a given dockable will exist.
      • isTerritoryBlocked

        public boolean isTerritoryBlocked​(Dockable dockable,
                                          java.lang.String region)
      • setTerritoryBlocked

        public void setTerritoryBlocked​(java.lang.String region,
                                        boolean blocked)
      • getTabText

        public java.lang.String getTabText()
      • setTabText

        public void setTabText​(java.lang.String tabText)
      • getTabIcon

        public javax.swing.Icon getTabIcon()
      • setTabIcon

        public void setTabIcon​(javax.swing.Icon icon)
      • dock

        public boolean dock​(Dockable dockable)
        Description copied from interface: Dockable
        Implements the semantics for docking an external Dockable to this Dockable and returns a boolean indicating whether or not the docking operation was successful.

        The framework already provides a default implementation for this method through DockingManager.dock(Dockable dockable, Dockable parent). While users are free to provide their own implementation for this method, the recommended approach is to use the default implementation with the following line:

        return DockingManager.dock(dockable, this);

        Specified by:
        dock in interface Dockable
        Parameters:
        dockable - the Dockable to dock relative to this Dockable
        Returns:
        true if the docking operation was successful; false otherwise.
        See Also:
        Dockable.dock(Dockable, String), Dockable.dock(Dockable, String, float), DockingManager.dock(Dockable, Dockable)
      • getDockingPort

        public DockingPort getDockingPort()
        Description copied from interface: Dockable
        Returns the DockingPort within which this Dockable is currently docked. If not currently docked, this method will return null.
        Specified by:
        getDockingPort in interface Dockable
        Returns:
        the docking port this dockable resides in, or null if the dockable is not currently docked (i.e. in the middle of a drag operation).
      • getSibling

        public Dockable getSibling​(java.lang.String region)
      • getViewport

        public Viewport getViewport()
      • dock

        public boolean dock​(Dockable dockable,
                            java.lang.String relativeRegion)
        Description copied from interface: Dockable
        Implements the semantics for docking an external Dockable to the specified region of this Dockable and returns a boolean indicating whether or not the docking operation was successful. If the docking operation results in a split layout, this method should determine an appropriate ratio of available space to allot to the new sibling Dockable.

        The framework already provides a default implementation for this method through DockingManager.dock(Dockable dockable, Dockable parent, String region). While users are free to provide their own implementation for this method, the recommended approach is to use the default implementation with the following line:

        return DockingManager.dock(dockable, this, relativeRegion);

        Specified by:
        dock in interface Dockable
        Parameters:
        dockable - the Dockable to dock relative to this Dockable
        relativeRegion - the docking region into which to dock the specified Dockable
        Returns:
        true if the docking operation was successful; false otherwise.
        See Also:
        Dockable.dock(Dockable, String, float), DockingManager.dock(Dockable, Dockable, String)
      • dock

        public boolean dock​(Dockable dockable,
                            java.lang.String relativeRegion,
                            float ratio)
        Description copied from interface: Dockable
        Implements the semantics for docking an external Dockable to the specified region of this Dockable with the specified layout ratio, returning a boolean indicating whether or not the docking operation was successful. If the docking operation results in a split layout, this method should use the specified ratio to determine the amount of available space to allot to the new sibling Dockable.

        The framework already provides a default implementation for this method through DockingManager.dock(Dockable dockable, Dockable parent, String region, float proportion). While users are free to provide their own implementation for this method, the recommended approach is to use the default implementation with the following line:

        return DockingManager.dock(dockable, this, relativeRegion, ratio);

        Specified by:
        dock in interface Dockable
        Parameters:
        dockable - the Dockable to dock relative to this Dockable
        relativeRegion - the docking region into which to dock the specified Dockable
        ratio - the proportion of available space in the resulting layout to allot to the new sibling Dockable.
        Returns:
        true if the docking operation was successful; false otherwise.
        See Also:
        DockingManager.dock(Dockable, Dockable, String, float)
      • setActive

        public void setActive​(boolean b)
      • isActive

        public boolean isActive()
      • setActiveStateLocked

        public void setActiveStateLocked​(boolean b)
      • isActiveStateLocked

        public boolean isActiveStateLocked()
      • isMinimized

        public boolean isMinimized()
      • getMinimizedConstraint

        public int getMinimizedConstraint()
      • dockingCanceled

        public void dockingCanceled​(DockingEvent evt)
        Description copied from interface: DockingListener
        Fired when docking of a Dockable is canceled during the operation.
        Specified by:
        dockingCanceled in interface DockingListener
        Parameters:
        evt - the DockingEvent event which provides the source Dockable, the old DockingPort and the new DockingPort
      • dockingComplete

        public void dockingComplete​(DockingEvent evt)
        Description copied from interface: DockingListener
        Fired when docking of a Dockable has completed.
        Specified by:
        dockingComplete in interface DockingListener
        Parameters:
        evt - the DockingEvent event which provides the source Dockable, the old DockingPort and the new DockingPort
      • dragStarted

        public void dragStarted​(DockingEvent evt)
        Description copied from interface: DockingListener
        Fired when the dragging of a Dockable has begun.
        Specified by:
        dragStarted in interface DockingListener
        Parameters:
        evt - the DockingEvent event which provides the source Dockable, the old DockingPort and the new DockingPort
      • dropStarted

        public void dropStarted​(DockingEvent evt)
        Description copied from interface: DockingListener
        Fired when the dropping of a Dockable has begun at the release of a drag-operation.
        Specified by:
        dropStarted in interface DockingListener
        Parameters:
        evt - the DockingEvent event which provides the source Dockable, the old DockingPort and the new DockingPort
      • setActionBlocked

        public void setActionBlocked​(java.lang.String actionName,
                                     boolean blocked)
      • isActionBlocked

        public boolean isActionBlocked​(java.lang.String actionName)
      • isFloating

        public boolean isFloating()
      • paramString

        protected java.lang.String paramString()
        Overrides:
        paramString in class javax.swing.JComponent
      • isContentPaneCheckingEnabled

        protected boolean isContentPaneCheckingEnabled()
        Returns:
        the contentPaneCheckingEnabled
      • setContentPaneCheckingEnabled

        protected void setContentPaneCheckingEnabled​(boolean contentPaneCheckingEnabled)
        Parameters:
        contentPaneCheckingEnabled - the contentPaneCheckingEnabled to set
      • setLayout

        public void setLayout​(java.awt.LayoutManager manager)
        Sets the LayoutManager. Overridden to conditionally forward the call to the contentPane.
        Overrides:
        setLayout in class java.awt.Container
        Parameters:
        manager - the LayoutManager
        See Also:
        setContentPaneCheckingEnabled(boolean)