Extension SDK

oracle.ide.addin
Class AbstractPinnable

java.lang.Object
  extended byoracle.ide.addin.AbstractView
      extended byoracle.ide.docking.DockableWindow
          extended byoracle.ide.addin.AbstractPinnable
All Implemented Interfaces:
Dockable, Helpable, Observer, Pinnable, Subview, View, ViewSelectionListener

public abstract class AbstractPinnable
extends DockableWindow
implements ViewSelectionListener, Pinnable, Observer

AbstractPinnable implements the Pinnable interface as it applies to a DockableWindow which is capable of responding to changes in selection in the active View as well as changes of the active View from one View to another.


Field Summary
protected  Document document
           
 
Fields inherited from class oracle.ide.docking.DockableWindow
CLOSED, HIDDEN, SHOWN
 
Fields inherited from class oracle.ide.addin.AbstractView
owner, SEPARATOR, viewListeners, viewSelectionListeners
 
Fields inherited from interface oracle.ide.addin.Pinnable
PIN_NONE, PIN_OBJECT, PIN_VIEW
 
Fields inherited from interface oracle.ide.docking.Dockable
TYPE_DISCARDABLE, TYPE_NO_BUTTONS, TYPE_NORMAL, TYPE_NOT_TABBED, TYPE_RECYCLABLE, TYPE_TRUNCATE_TITLE
 
Fields inherited from interface oracle.ide.addin.View
PROJECT_PROP, VISIBLE_PROP, WORKSPACE_PROP
 
Constructor Summary
protected AbstractPinnable(View owner, java.lang.String viewId)
          Constructor.
 
Method Summary
protected  void activeViewChanged(ActiveViewEvent e)
          Respond to a change of active View filtered by the current pin state.
protected  void clear()
          Internal method allowing subclasses to perform cleaning duties when no View is available from which to fetch a selection for display.
protected  View getPinnedView()
          Get the View whose selection is currently the source displayed within this DockableWindow.
 int getPinState()
          Get the current pin state as one of PIN_NONE, PIN_VIEW, or PIN_OBJECT.
protected  boolean isSingleton()
          Determine whether or not this AbstractPinnable represents a singleton View.
protected abstract  boolean isViewSupported(View view)
          Determine whether or not the given View is one that is considered interesting by this Pinnable.
 void setContext(Context context)
          Initialize the DockableView based upon the selection of the View contained in the incoming Context.
protected  void setPinnedView(View view)
          Set the View whose selection should be displayed within this DockableWindow.
 void setPinState(int newState)
          Set the current pin state as one of PIN_NONE, PIN_VIEW, or PIN_OBJECT.
 void stateChange(int newState)
          Responds to changes in state.
 void update(java.lang.Object document, UpdateMessage msg)
          Respond to close of Document from which the current Explorer is rooted.
protected  void viewSelectionChanged(Context context)
          Internal method allowing subclasses to perform additional processing after the standard call to viewSelectionChanged(ViewSelectionEvent) has filtered out cases where the selection changes should be ignored.
 void viewSelectionChanged(ViewSelectionEvent e)
          Respond to a change in selection in the pinned View based on the pin state.
 
Methods inherited from class oracle.ide.docking.DockableWindow
addTitleChangeListener, close, dockableHidden, dockableShown, fireTitleChangeListener, getCachedDockable, getHostedComponent, getMenuPreferredMnemonic, getMenuTitle, getSite, getTabDropListener, getTabIcon, getType, getUniqueName, isVisible, loadLayout, removeTitleChangeListener, saveLayout, setDockableVisible, setSite, setType, show, updateTitle
 
Methods inherited from class oracle.ide.addin.AbstractView
activate, addViewListener, addViewSelectionListener, deactivate, fireViewActivated, fireViewClosed, fireViewDeactivated, fireViewSelectionChanged, getContext, getContextMenu, getController, getHelpInfo, getId, getSelection, getToolbar, loadToolbar, loadToolbar, newId, owner, removeViewListener, removeViewSelectionListener, setId, setOwner
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface oracle.ide.docking.Dockable
getTabName, getTitleName
 
Methods inherited from interface oracle.ide.addin.View
getContext
 
Methods inherited from interface oracle.ide.addin.Subview
getGUI
 

Field Detail

document

protected Document document
Constructor Detail

AbstractPinnable

protected AbstractPinnable(View owner,
                           java.lang.String viewId)
Constructor.

See Also:
DockableWindow
Method Detail

setContext

public void setContext(Context context)
Initialize the DockableView based upon the selection of the View contained in the incoming Context. Constructs an ActiveViewEvent instance from the context's View and internally calls activeViewChanged.

Parameters:
context - the Context from which to initialize.
See Also:
ActiveViewEvent, activeViewChanged(oracle.ide.addin.ActiveViewEvent)

isSingleton

protected boolean isSingleton()
Determine whether or not this AbstractPinnable represents a singleton View. The internal state of singleton Views must be preserved even after a stateChange of DockabelWindow.CLOSED, whereas a non singleton implementation does not.

See Also:
stateChange(int)

stateChange

public void stateChange(int newState)
Responds to changes in state.

Overrides:
stateChange in class DockableWindow
Parameters:
newState - the new visibility state of this DockableWindow
See Also:
DockableWindow.stateChange

activeViewChanged

protected void activeViewChanged(ActiveViewEvent e)
Respond to a change of active View filtered by the current pin state. If this Pinnable supports the newly activated View type and if this Pinnable is in a pin state of PIN_NONE, then the pinned View will be set to the newly activated View and an internal viewSelectionChanged call will be fired using this updated pinned View as the View of interest.

Parameters:
e - the ActiveViewEvent describing the newly activated View
See Also:
ActiveViewEvent, isViewSupported(oracle.ide.addin.View), getPinState(), setPinnedView(oracle.ide.addin.View), getPinnedView(), viewSelectionChanged(ViewSelectionEvent)

viewSelectionChanged

public void viewSelectionChanged(ViewSelectionEvent e)
Respond to a change in selection in the pinned View based on the pin state. If the pin state is PIN_OBJECT the event is ignored. Otherwise the context is fetched from the View from which the event originated and is passed as argument to an internal call of viewSelectionChanged(Context)

Specified by:
viewSelectionChanged in interface ViewSelectionListener
Parameters:
e - ViewSelecitonEvent describing the change of selection in the View
See Also:
ViewSelectionEvent, getPinState(), viewSelectionChanged(Context)

getPinState

public int getPinState()
Get the current pin state as one of PIN_NONE, PIN_VIEW, or PIN_OBJECT.

Specified by:
getPinState in interface Pinnable
Returns:
the current pin state.
See Also:
Pinnable.PIN_NONE, Pinnable.PIN_VIEW, Pinnable.PIN_OBJECT

setPinState

public void setPinState(int newState)
Set the current pin state as one of PIN_NONE, PIN_VIEW, or PIN_OBJECT. Setting the state to PIN_NONE will force an internal call to activeViewChanged using the last suitable active View as the newly activated View in order to allow this Pinnable to catch up to the current selection of that View. Setting the state to PIN_VIEW will force an internal call to viewSelectionChanged(ViewSelectionEvent) using the currently pinned View in order to allow this Pinnable to catch up to the current selection of the current View. Setting the state to PIN_OBJECT will simply update the state without additional processing.

Specified by:
setPinState in interface Pinnable
Parameters:
newState - the new pin state to set.
See Also:
Pinnable.PIN_NONE, Pinnable.PIN_VIEW, Pinnable.PIN_OBJECT, getPinnedView(), activeViewChanged(oracle.ide.addin.ActiveViewEvent), viewSelectionChanged(ViewSelectionEvent)

isViewSupported

protected abstract boolean isViewSupported(View view)
Determine whether or not the given View is one that is considered interesting by this Pinnable. For example; a Property Inspector might not be interested in displaying properties of individual controls in a Control Palette and thus would return false from this method for views of that type.

Parameters:
view - the View under consideration

viewSelectionChanged

protected void viewSelectionChanged(Context context)
Internal method allowing subclasses to perform additional processing after the standard call to viewSelectionChanged(ViewSelectionEvent) has filtered out cases where the selection changes should be ignored. This implementation does nothing.

Parameters:
context - the Context of the View from which a selection has changed.
See Also:
viewSelectionChanged(ViewSelectionEvent)

update

public void update(java.lang.Object document,
                   UpdateMessage msg)
Respond to close of Document from which the current Explorer is rooted.

Specified by:
update in interface Observer
Parameters:
document - the subject whose state has changed.
msg - what has changed.

clear

protected void clear()
Internal method allowing subclasses to perform cleaning duties when no View is available from which to fetch a selection for display. This implementation does nothing.

See Also:
viewSelectionChanged(ViewSelectionEvent)

getPinnedView

protected View getPinnedView()
Get the View whose selection is currently the source displayed within this DockableWindow.

See Also:
activeViewChanged(oracle.ide.addin.ActiveViewEvent)

setPinnedView

protected void setPinnedView(View view)
Set the View whose selection should be displayed within this DockableWindow. The implementation removes this as listener from the previous pinned View and will add this as both a ViewListener and ViewSelectionListener to the new value such that those events may be responded to.

Parameters:
view - the new View to take interest in
See Also:
#viewActivated, #viewDeactivated, #viewClosed, viewSelectionChanged(ViewSelectionEvent)

Extension SDK

 

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