ilog.views.appframe.swing.docking
Class IlvDockingArea

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by ilog.views.appframe.swing.docking.IlvDockingArea
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, RootPaneContainer

public class IlvDockingArea
extends JComponent
implements RootPaneContainer

Root container that handles a hierarchy of dockables.
Dockables are containers that can be docked (put in the main area of the application) or undocked (put outside of the application in an outer top-level window). These components can be docked as children of a split pane or as tabs of a tabbed pane. The docking hierarchy can be set by configuration and modified dynamically by user interaction.
These dockables can contain any user component, so that they become a dockable component for the application.
The IlvDockingArea provides API to set and retrieve these user components and associate them with the dockables defined by configuration.
The IlvDockingArea also provides a listener interface for notification of docking events when a docking state is changed by user interaction.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static String CLOSABLE_PROPERTY
          Bound property name for the closable property of a dockable.
static String CONTENT_PANE_PROPERTY
          Bound property name.
static String DOCKABLE_PROPERTY
          Bound property name that determines whether the dockable can be docked and undocked.
static String FIXED_HEIGHT_PROPERTY
          Bound property name that determines whether the dockable has a fixed height.
static String FIXED_WIDTH_PROPERTY
          Bound property name that determines whether the dockable has a fixed width.
static String GLASS_PANE_PROPERTY
          Bound property name.
static String ICON_PROPERTY
          Bound property name for the icon of a dockable.
static String LAYERED_PANE_PROPERTY
          Bound property name.
static String MINIMUM_SIZE_PROPERTY
          Bound property name that stores the minimum size of the dockable.
static String PIN_STATE_PROPERTY
          Bound property name that stores the pin state of the dockable.
static String PINABLE_PROPERTY
          Bound property name for the pinable property of a dockable.
static String ROOT_PANE_PROPERTY
          Bound property name.
static String SCROLLABLE_PROPERTY
          Bound property name that determines whether the dockable is scrollable.
static String TAB_ICON_PROPERTY
          Bound property name for the tab icon of a dockable.
static String TITLE_PROPERTY
          Bound property name for the title of a dockable.
static String TITLE_VISIBLE_PROPERTY
          Bound property name that determines whether the dockable has a title visible.
static String TOOLTIP_PROPERTY
          Bound property name for the tooltip of a dockable.
static String WORKSPACE_ACTION_COMMAND_PROPERTY
          Bound property name that stores the action command of the action which triggers the activation of a workspace configuration.
static String WORKSPACE_DESCRIPTION_PROPERTY
          Bound property name that stores the description of a workspace configuration.
static String WORKSPACE_DISPLAYED_NAME_PROPERTY
          Bound property name that stores the name to be displayed for a workspace configuration.
static String WORKSPACE_ICON_PROPERTY
          Bound property name that stores the icon associated with a workspace configuration.
static String WORKSPACE_TOOLTIP_PROPERTY
          Bound property name that stores the tooltip to be displayed for a workspace configuration.
static String WORKSPACE_WRITABLE_PROPERTY
          Bound property name that determines whether a workspace can be saved in the user settings.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
IlvDockingArea()
          Constructs a new IlvDockingArea.
 
Method Summary
 void addDockingListener(DockingListener listener)
          Adds a docking listener to the list of listeners managed by this docking area.
protected  void addImpl(Component comp, Object constraints, int index)
          Ensures that, by default, children cannot be added directly to this component.
 boolean addTab(String tabOnPane, String newPaneName, boolean after)
          Adds a tab pane containing the new dockable pane with the specified newPaneName before or after the dockable pane with the tabOnPane name, depending on the value of the after parameter.
 boolean addTab(String tabOnPane, String newPaneName, boolean after, boolean select)
          Adds a tab pane containing the new dockable pane with the specified newPaneName before or after the dockable pane with the tabOnPane name, depending on the value of the after parameter.
 void addWorkspacePropertyChangeListener(String name, PropertyChangeListener listener)
          Adds a PropertyChangeListener to the list of listeners associated with the specified workspace.
protected  JRootPane createRootPane()
          Called by the constructor to set up the JRootPane.
 boolean dock(String name)
          Docks the dockable with the specified name at the position defined in the settings of the docking area.
 void dock(String name, int side, double proportionalSize)
          Docks the dockable with the specified name at the specified side of the docking area.
 boolean duplicateWorkspaceConfiguration(String name, String newName)
          Duplicates the workspace configuration with the specified name into the configuration with the new name newName.
 ilog.views.appframe.swing.docking.dockable.IlvDockable getActiveDockable()
          Returns the dockable currently active in this docking area.
 String getActiveDockableName()
          Returns the name of the dockable currently active in this docking area.
 IlvApplication getApplication()
          Returns the application associated with this docking area.
 Container getContentPane()
          Returns the content pane for this internal frame.
 ActionListener getDefaultCloseActionListener()
          Returns the default close action listener for the dockable panes.
 Dimension getDefaultFloatingMaximumSize(Dimension d)
          Retrieves the maximum size of the floatable window.
 Dimension getDefaultFloatingMinimumSize(Dimension d)
          Retrieves the minimum size of the floatable window.
 ActionListener getDefaultPinActionListener()
          Returns the default pin action listener for the dockable panes.
 ilog.views.appframe.swing.docking.dockable.IlvDockable getDockable(String name)
          Returns the dockable pane with the specified name.
 Component getDockableComponent(String name)
          Returns the component associated with the dockable pane with the specified name.
 Object getDockableProperty(String name, String propertyName)
          Returns the propertyName property of the dockable with the specified name.
 int getDockableThreshold()
          Returns the number of pixel needed to be traversed by the mouse before a drag operation begins.
 IlvDocumentView getDockableView(String name)
          Returns the document view contained by the dockable with the specified name.
 Point getFloatingLocation(String name)
          Returns the location of the floating window containing the dockable with the specified name.
 Component getGlassPane()
          Returns the glass pane for this internal frame.
 int getInnerSensibilityMargin()
          Retrieves the size of the inner sensitive area of the IlvDockables on which you can drop an IlvDockable in order to dock it.
 JLayeredPane getLayeredPane()
          Returns the layered pane for this internal frame.
 String getMDIPane()
          Returns the name of the MDI pane.
 int getOuterSensibilityMargin()
          Retrieves the size of the outer sensitive area of the IlvDockingArea on which you can drop an IlvDockable in order to dock it.
 JRootPane getRootPane()
          Returns the rootPane object for this internal frame.
 String getWorkspaceConfiguration()
          Returns the name of the current workspace configuration.
 String[] getWorkspaceConfigurations()
          Returns the list of workspaces defined for this docking area.
 Object getWorkspaceProperty(String name, String propertyName)
          Returns the value of the propertyName property of the specified workspace configuration.
 boolean isAllowingDocking()
          Tells if docking and undocking windows is allowed.
 boolean isConstraintFloatable()
          Tells if the docking area constraints the floatable windows into the visible screen area.
 boolean isDockableDocked(String name)
          Determines whether the dockable with the specified name is docked.
 boolean isDockableUndocked(String name)
          Determines whether the dockable with the specified name is undocked.
 boolean isDockableVisible(String name)
          Determines whether the dockable with the specified name is visible.
 boolean isReadUserSettings()
          Determines whether this docking area is initialized according to the user settings that were saved during the last application session.
protected  boolean isRootPaneCheckingEnabled()
          Returns whether calls to add and setLayout cause an exception to be thrown.
 boolean isUsingPreferredSize()
          Tells if the default floating window size is determined with the preferred size of the contained component or if it should take the undocked component size.
 boolean isWriteUserSettings()
          Determines whether this docking area saves the current layout of its dockable panes in the user settings when the application is closing.
 void lockUpdate()
          Freezes the layout of the docking area until the method unlockUpdate() is called.
 void readWorkspaceConfiguration(String name, IlvSettingsElement element)
          Reads the workspace configuration with the specified name from the settings.
 boolean removeDockable(String name)
          Removes the dockable with the specified name from the docking area.
 boolean removeDockingListener(DockingListener listener)
          Removes the specified docking listener from the list of docking listeners managed by this docking area.
 boolean removeWorkspaceConfiguration(String name)
          Removes the workspace configuration with the specified name into the configuration with the new name newName.
 void removeWorkspacePropertyChangeListener(String name, PropertyChangeListener listener)
          Removes a PropertyChangeListener to the list of listeners associated with the specified workspace.
 void setActiveDockable(ilog.views.appframe.swing.docking.dockable.IlvDockable dockable)
          Sets the new active dockable of this docking area to the specified dockable.
 void setActiveDockable(String name)
          Sets the new active dockable of this docking area to the dockable with the specified name.
 void setAllowingDocking(boolean allow)
          Specifies if docking and undocking windows is allowed.
 void setApplication(IlvApplication application)
          Sets the application of the docking area.
 void setCloseActionListener(ActionListener action)
          Sets a global action listener for all the dockable panes of the application.
 void setCloseActionListener(String dockablePane, ActionListener action)
          Sets the close action listener for the dockable whose name is dockablePane This action listener will be invoked when the user hits the close icon of the dockable pane.
 void setComponentOrientation(ComponentOrientation o)
          Sets the language-sensitive orientation that is to be used to order the elements or text within this component.
 void setConstraintFloatable(boolean c)
          Tells the docking area if it should constraint the floatable windows into the visible screen area.
 void setContentPane(Container c)
          Sets the contentPane property of this IlvDockingArea.
 void setCursor(Cursor cursor)
          Sets the cursor image to the specified cursor.
 void setDefaultFloatingMaximumSize(Dimension d)
          Sets the maximum size of the floatable window.
 void setDefaultFloatingMinimumSize(Dimension d)
          Sets the minimum size of the floatable window.
 boolean setDockableComponent(String name, Component component)
          Attaches the specified component to the dockable pane with the specified name.
 void setDockableProperties(String name, String title, String tooltip, ImageIcon windowIcon, ImageIcon tabIcon)
          Sets display properties to the dockable pane with the specified name.
 Object setDockableProperty(String name, String propertyName, Object value)
          Changes the propertyName property of the dockable with the specified name.
 void setDockableThreshold(int pixels)
          Set the number of pixel that must be traversed by the mouse before a drag operation begins.
 void setDockableVisibilityAction(String dockableName, String command)
          Specifies a checkable action to associate with the visibility of a specified dockable.
 void setDockableVisible(String name, boolean visible)
          Shows or hides the dockable with the specified name, depending on the value of the parameter show.
 void setGlassPane(Component glass)
          Sets the glassPane property of this IlvDockingArea.
 void setInnerSensibilityMargin(int margin)
          Sets the size of the inner sensitive area of the IlvDockables on which you can drop an IlvDockable in order to dock it.
 void setLayeredPane(JLayeredPane layered)
          Sets the layeredPane property of this IlvDockingArea.
 void setLayout(LayoutManager manager)
          Ensures that, by default, the layout of this component cannot be set.
 void setMDIPane(String name)
          Specifies the MDI pane of the docking area were nondockable panes have to be added.
 void setOuterSensibilityMargin(int margin)
          Sets the size of the outer sensitive area of the IlvDockingArea on which you can drop an IlvDockable in order to dock it.
 void setPinActionListener(ActionListener action)
          Sets a global action listener for all the dockable panes of the application.
 void setPinActionListener(String dockablePane, ActionListener action)
          Sets the pin action listener for the dockable whose name is dockablePane This action listener will be invoked when the user hits the pin icon of the dockable pane.
 void setReadUserSettings(boolean readUserSettings)
          Specifies if the docking area is initialized according to the user settings.
protected  void setRootPane(JRootPane root)
          Sets the rootPane property for this IlvDockingArea.
protected  void setRootPaneCheckingEnabled(boolean enabled)
          Determines whether calls to add and setLayout cause an exception to be thrown.
 void setUsingPreferredSize(boolean b)
          Specifies if the default floating window size is to be determined accordingly to the preferred size of the contained component.
 void setWorkspaceActivationAction(String workspaceName, String command)
          Specifies a checkable action to associate with the activation of a specified workspace configuration.
 void setWorkspaceConfiguration(String name)
          Sets the current workspace configuration to the configuration defined in the settings with the specified name.
 void setWorkspaceProperty(String name, String propertyName, Object value)
          Sets the value of the propertyName property of the specified workspace configuration to the specified value.
 void setWriteUserSettings(boolean writeUserSettings)
          Specifies if the docking area should write the current layout of its dockable panes in the user settings when the application is closing.
 boolean split(String paneToSplit, String newPaneName, int orientation, double proportionalLocation)
          Replaces the dockable pane with the paneToSplit name with a new split pane containing this dockable pane and the new dockable pane with the newPaneName.
 void undock(String name)
          Undocks the dockable with the specified name.
 void undock(String name, Point location)
          Undocks the dockable with the specified name at the specified screen location.
 void unlockUpdate()
          Unfreezes the layout of the docking area.
 void updateComponentTreeUI()
          A simple minded look and feel change: ask each node in the main window's tree and in the list of floatable windows to call updateUI() to initialize its UI property with the current look and feel.
 void writeWorkspaceConfiguration(String name, IlvSettingsElement element)
          Writes the workspace configuration with the specified name into the settings.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, 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, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, 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, 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, transferFocusBackward, 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, 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, hide<