Extension SDK

oracle.ide.panels
Class MDDPanel

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byoracle.ide.panels.DefaultTraversablePanel
                      extended byoracle.ide.panels.AbstractUIContainer
                          extended byoracle.ide.panels.MDDPanel
All Implemented Interfaces:
javax.accessibility.Accessible, ApplyListener, ApplyNotifier, java.util.EventListener, GridBagConstants, java.awt.image.ImageObserver, java.awt.MenuContainer, NavigableUIContainer, java.io.Serializable, Traversable

public class MDDPanel
extends AbstractUIContainer

This implementation of NavigableUIContainer is a "master-detail-detail" panel, hence the name MDDPanel. It subdivides its contents into three areas:

    ------------------------------------------------------
    |            |                                       |
    |            |                                       |
    |   master   |                                       |
    |    tree    |                                       |
    |            |                                       |
    |            |             detail-detail             |
    |            |                 panel                 |
    |            |                                       |
    |------------|                                       |
    |            |                                       |
    |   detail   |                                       |
    |    tree    |                                       |
    |            |                                       |
    |            |                                       |
    |            |                                       |
    ------------------------------------------------------

Each area is contained by a JSplitPane so they are all resizeable. There is a flag in one of the constructors that is used to disable the detail tree if it is not needed; when the detail tree is hidden, then any tree nodes that would normally be shown in the detail tree will be shown as child nodes in the master tree instead, with the detail nodes appearing before child nodes.

When a dialog is required, an instance of MDDPanel should be hosted by a TDialogLauncher. Certain MDDPanel methods cannot be be called until the MDDPanel's onEntry method has been called.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String CURRENT_TREE1
           
static java.lang.String CURRENT_TREE1_MODEL
           
static java.lang.String CURRENT_TREE1_NODE
           
 
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 oracle.ide.panels.NavigableUIContainer
NAVIGABLE_UI_CONTAINER
 
Fields inherited from interface oracle.ide.controls.GridBagConstants
ANCHOR_C, ANCHOR_E, ANCHOR_N, ANCHOR_NE, ANCHOR_NW, ANCHOR_S, ANCHOR_SE, ANCHOR_SW, ANCHOR_W, FILL_NONE, FILL_X, FILL_XY, FILL_Y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
protected MDDPanel()
          This constructor should only be used by subclasses that will build the Navigable list from within the onEntry method.
  MDDPanel(Navigable rootNavigable)
          Constructs a new MDDPanel with a single root node in the master tree.
  MDDPanel(Navigable[] rootNavigables)
          Constructs a new MDDPanel with the specified nodes as root nodes in the master tree.
  MDDPanel(Navigable[] rootNavigables, boolean useDetailTree)
          Constructs a new MDDPanel with the specified nodes as root nodes in the master tree.
 
Method Summary
 boolean displayDetailNodesAsChildren()
          Returns true if the UI container is displaying detail nodes with the children rather than in a separate tree.
 void expandTree1ToDepth(int depth)
          Expands the master tree up to and including the number of levels specified by the depth parameter.
 java.util.Comparator getChildComparator()
          Returns the Comparator to use for sorting the root Navigable children of this MDDPanel.
protected  Navigable getCurrentNavigable()
          Concrete subclasses must implement this method to return the Navigable that is currently selected in the UI.
protected  Traversable getCurrentTraversable()
          Concrete subclasses must implement this method to return the Traversable that is currently selected in the UI.
 java.util.Comparator getDefaultChildComparator()
          Returns the Comparator to use for sorting Navigable children for this MDDPanel.
 java.lang.String[] getTree1SelectionPath()
          Note: The onEntry must have already been called before this method will have an effect.
protected  TraversableContext newTraversableContext()
          Adds design-time objects to the TraversableContext.
 void onEntry(TraversableContext tc)
          This method is called when the Traversable is being entered.
 void onExit(TraversableContext tc)
          This method is called when the Traversable is being exited.
protected  void refreshUI(TraversableContext dataScope)
           
 void setChildComparator(java.util.Comparator childComparator)
          Sets the Comparator to use for sorting just the root Navigable children of this MDDPanel; if null is specified, then the root Navigable children will not be sorted.
 void setDefaultChildComparator(java.util.Comparator defaultChildComparator)
          Sets the Comparator to use for sorting Navigable children for this MDDPanel; if null is specified, then no Navigable children will be sorted.
 void setDetailDividerLocation(double proportionalLocation)
          Sets the position of the detail divider bar as a percentage of the detail split pane's size.
 void setDetailDividerSize(int dividerSize)
          Sets the size of the divider bar that separates the master tree from the detail tree.
 void setDetailResizeWeight(double weight)
          Sets the initial resize weight of the detail divider bar.
 void setMainDividerLocation(double proportionalLocation)
          Sets the position of the main divider bar as a percentage of the main split pane's size.
 void setMainDividerSize(int dividerSize)
          Sets the size of the divider bar that separates the master tree from the detail-detail content area.
 void setMainResizeWeight(double weight)
          Sets the initial resize weight of the main divider bar.
 void setTree1SelectionPath(java.lang.String[] selectionPath)
          Note: The onEntry must have already been called before this method will have an effect.
 void setTree1SelectionRow(int row)
          Changes the selection in the master tree to the specified row.
 
Methods inherited from class oracle.ide.panels.AbstractUIContainer
addApplyListener, apply, cancel, fireApply, fireCancel, getHelpID, getRootNavigables, maybeRefreshUI, onEntryImpl, onExitImpl, removeApplyListener, setRootNavigables, updateHelpID
 
Methods inherited from class oracle.ide.panels.DefaultTraversablePanel
gbc, gbc, getComponent, getDefaultTitle, getExitTransition, setDefaultTitle, setHelpID
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface oracle.ide.panels.Traversable
getComponent, getExitTransition
 

Field Detail

CURRENT_TREE1

public static final java.lang.String CURRENT_TREE1
See Also:
Constant Field Values

CURRENT_TREE1_MODEL

public static final java.lang.String CURRENT_TREE1_MODEL
See Also:
Constant Field Values

CURRENT_TREE1_NODE

public static final java.lang.String CURRENT_TREE1_NODE
See Also:
Constant Field Values
Constructor Detail

MDDPanel

protected MDDPanel()
This constructor should only be used by subclasses that will build the Navigable list from within the onEntry method.


MDDPanel

public MDDPanel(Navigable rootNavigable)
Constructs a new MDDPanel with a single root node in the master tree.


MDDPanel

public MDDPanel(Navigable[] rootNavigables)
Constructs a new MDDPanel with the specified nodes as root nodes in the master tree.


MDDPanel

public MDDPanel(Navigable[] rootNavigables,
                boolean useDetailTree)
Constructs a new MDDPanel with the specified nodes as root nodes in the master tree. Any Navigable's that have detail Navigables will have additional nodes shown in the detail tree.

Method Detail

displayDetailNodesAsChildren

public boolean displayDetailNodesAsChildren()
Description copied from interface: NavigableUIContainer
Returns true if the UI container is displaying detail nodes with the children rather than in a separate tree. That is:

Specified by:
displayDetailNodesAsChildren in interface NavigableUIContainer
Overrides:
displayDetailNodesAsChildren in class AbstractUIContainer

onEntry

public void onEntry(TraversableContext tc)
Description copied from interface: Traversable
This method is called when the Traversable is being entered. The data that the Traversable should use to populate its UI components comes from the specified TraversableContext.

When the same Traversable is entered more than once in the course of interacting with the user, the Traversable needs to reload the data directly from the TraversableContext rather than caching data objects. Some reasons for this include:

Loading data directly from the TraversableContext is the best way to ensure that the Traversable will not be editing the wrong data.

The Traversable should not even cache references to data objects between invocations of onEntry and Traversable.onExit(TraversableContext) because the UI container is not required to guarantee that the references will be identical.

Specified by:
onEntry in interface Traversable
Overrides:
onEntry in class AbstractUIContainer

onExit

public void onExit(TraversableContext tc)
            throws TraversalException
Description copied from interface: Traversable
This method is called when the Traversable is being exited. At this point, the Traversable should copy the data from its associated UI back into the data structures in the TraversableContext.

If the Traversable should not be exited because the user has entered either incomplete, invalid, or inconsistent data, then this method can throw a TraversalException to indicate to the property dialog or wizard that validation failed and that the user should not be allowed to exit the current Traversable. Refer to the TraversalException javadoc for details on passing the error message that should be shown to the user.

Specified by:
onExit in interface Traversable
Overrides:
onExit in class AbstractUIContainer
Throws:
TraversalException

expandTree1ToDepth

public void expandTree1ToDepth(int depth)
Expands the master tree up to and including the number of levels specified by the depth parameter.

Note: The onEntry must have already been called before this method will have an effect. The most common way that the onEntry method gets called is by passing the MDDPanel instance into the TDialogLauncher constructor. Once the MDDPanel has been associated with a TDialogLauncher, then this method may be called.


setTree1SelectionRow

public void setTree1SelectionRow(int row)
Changes the selection in the master tree to the specified row. Note: The onEntry must have already been called before this method will have an effect. The most common way that the onEntry method gets called is by passing the MDDPanel instance into the TDialogLauncher constructor. Once the MDDPanel has been associated with a TDialogLauncher, then this method may be called.


setTree1SelectionPath

public void setTree1SelectionPath(java.lang.String[] selectionPath)
Note: The onEntry must have already been called before this method will have an effect. The most common way that the onEntry method gets called is by passing the MDDPanel instance into the TDialogLauncher constructor. Once the MDDPanel has been associated with a TDialogLauncher, then this method may be called.


getTree1SelectionPath

public java.lang.String[] getTree1SelectionPath()
Note: The onEntry must have already been called before this method will have an effect. The most common way that the onEntry method gets called is by passing the MDDPanel instance into the TDialogLauncher constructor. Once the MDDPanel has been associated with a TDialogLauncher, then this method may be called.


setMainDividerLocation

public void setMainDividerLocation(double proportionalLocation)
Sets the position of the main divider bar as a percentage of the main split pane's size.


setMainDividerSize

public void setMainDividerSize(int dividerSize)
Sets the size of the divider bar that separates the master tree from the detail-detail content area.


setMainResizeWeight

public void setMainResizeWeight(double weight)
Sets the initial resize weight of the main divider bar.


setDetailDividerLocation

public void setDetailDividerLocation(double proportionalLocation)
Sets the position of the detail divider bar as a percentage of the detail split pane's size.


setDetailDividerSize

public void setDetailDividerSize(int dividerSize)
Sets the size of the divider bar that separates the master tree from the detail tree.


setDetailResizeWeight

public void setDetailResizeWeight(double weight)
Sets the initial resize weight of the detail divider bar.


setChildComparator

public void setChildComparator(java.util.Comparator childComparator)
Sets the Comparator to use for sorting just the root Navigable children of this MDDPanel; if null is specified, then the root Navigable children will not be sorted.

If no child Comparator is specified, then the root Navigable children will be sorted using the default child Comparator, if one has been specified via setDefaultChildComparator(Comparator).


getChildComparator

public java.util.Comparator getChildComparator()
Returns the Comparator to use for sorting the root Navigable children of this MDDPanel.


setDefaultChildComparator

public void setDefaultChildComparator(java.util.Comparator defaultChildComparator)
Sets the Comparator to use for sorting Navigable children for this MDDPanel; if null is specified, then no Navigable children will be sorted. If no default child Comparator is specified, then no Navigable children will be sorted; the root Navigable children will be sorted, however, if a Comparator has been specified via setChildComparator(Comparator). This method assumes that the Navigable.createTreeNode(NavigableContext) method for each Navigable in the panel uses this Comparator to order its Navigable children before creating its tree nodes. The default Navigable does this sorting.


getDefaultChildComparator

public java.util.Comparator getDefaultChildComparator()
Returns the Comparator to use for sorting Navigable children for this MDDPanel.


getCurrentNavigable

protected Navigable getCurrentNavigable()
Description copied from class: AbstractUIContainer
Concrete subclasses must implement this method to return the Navigable that is currently selected in the UI.

Specified by:
getCurrentNavigable in class AbstractUIContainer

getCurrentTraversable

protected Traversable getCurrentTraversable()
Description copied from class: AbstractUIContainer
Concrete subclasses must implement this method to return the Traversable that is currently selected in the UI.

Specified by:
getCurrentTraversable in class AbstractUIContainer

newTraversableContext

protected TraversableContext newTraversableContext()
Adds design-time objects to the TraversableContext.

Overrides:
newTraversableContext in class AbstractUIContainer

refreshUI

protected void refreshUI(TraversableContext dataScope)
Specified by:
refreshUI in class AbstractUIContainer

Extension SDK

 

Copyright ©1997, 2003, Oracle. All rights reserved.