Extension SDK 10.1.2

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:
ControllerProvider, Dockable, DockableView, java.util.EventListener, Helpable, Observer, Pinnable, 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
           
protected  boolean forceUpdate
           
protected  boolean isToolbarVisible
           
protected  Toolbar toolbar
           
static java.lang.String TOOLBAR_ITEM
           
static java.lang.String TOOLBAR_ITEM_COUNT
           
 
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.DockableView
CLOSED, HIDDEN, SHOWN
 
Fields inherited from interface oracle.ide.docking.Dockable
DEFAULT_VISIBILITY_MINIMIZED, DEFAULT_VISIBILITY_RAISED, DEFAULT_VISIBILITY_VISIBLE, TYPE_DISCARDABLE, TYPE_GLOBAL_VISIBLE, 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.
 Toolbar getToolbar()
          Get the Toolbar associated with this View.
 int getType()
          Override superclass implementation to include Dockable.TYPE_TRUNCATE_TITLE
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.
protected  void objectClosed(Subject subject, UpdateMessage msg)
          Perform any cleanup required in response to an UpdateMessage.OBJECT_CLOSED message received by update.
protected  void objectRenamed(Subject subject, UpdateMessage msg)
          Perform any cleanup required in response to an UpdateMessage.OBJECT_RENAMED message received by update.
protected  void persistPinTarget()
          Persist the identity of any pinned object such that its representation may be restored at a later time.
protected  void restorePinTarget()
          Restore the representation of a previously persisted object reference.
 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 setToolbarVisible(boolean visible)
          Set the visibility of the Toolbar, if any.
 void stateChange(int newState)
          Responds to changes in state.
 void update(java.lang.Object subject, UpdateMessage msg)
          Respond to Document events 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, getDefaultVisibility, getHostedComponent, getMenuPreferredMnemonic, getMenuTitle, getSite, getTabDropListener, getTabIcon, 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, loadToolbar, loadToolbar, newId, owner, removeViewListener, removeViewSelectionListener, setId, setOwner, updateToolbarActions, updateVisibleActions, updateVisibleActions
 
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
activate, addViewListener, addViewSelectionListener, deactivate, getContext, getContext, getContextMenu, getGUI, getId, getSelection, owner, removeViewListener, removeViewSelectionListener, updateVisibleActions
 
Methods inherited from interface oracle.ide.addin.ControllerProvider
getController
 
Methods inherited from interface oracle.ide.help.Helpable
getHelpInfo
 

Field Detail

TOOLBAR_ITEM

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

TOOLBAR_ITEM_COUNT

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

toolbar

protected Toolbar toolbar

isToolbarVisible

protected boolean isToolbarVisible

document

protected Document document

forceUpdate

protected boolean forceUpdate
Constructor Detail

AbstractPinnable

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

See Also:
DockableWindow
Method Detail

getToolbar

public Toolbar getToolbar()
Get the Toolbar associated with this View.

Specified by:
getToolbar in interface View
Overrides:
getToolbar in class AbstractView

setToolbarVisible

public void setToolbarVisible(boolean visible)
Set the visibility of the Toolbar, if any.

Specified by:
setToolbarVisible in interface View
Overrides:
setToolbarVisible in class AbstractView
Parameters:
visible - true to display the Toolbar, false to hide the Toolbar

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)

getType

public int getType()
Override superclass implementation to include Dockable.TYPE_TRUNCATE_TITLE

Specified by:
getType in interface Dockable
Overrides:
getType in class DockableWindow
Returns:
the type accepted by this dockable implementation.

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

persistPinTarget

protected void persistPinTarget()
Persist the identity of any pinned object such that its representation may be restored at a later time. This would typically involve persisting the URL of a oracle.ide.model.Locatable object which is currently on display in the GUI.

See Also:
restorePinTarget()

restorePinTarget

protected void restorePinTarget()
Restore the representation of a previously persisted object reference. This would typically involve fetching a oracle.ide.model.Locatable object for display in the GUI.

See Also:
persistPinTarget

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 simply detaches from the previous Context's Document and attaches to that of the new one.

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

update

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

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

objectClosed

protected void objectClosed(Subject subject,
                            UpdateMessage msg)
Perform any cleanup required in response to an UpdateMessage.OBJECT_CLOSED message received by update.

See Also:
update(java.lang.Object, oracle.ide.addin.UpdateMessage)

objectRenamed

protected void objectRenamed(Subject subject,
                             UpdateMessage msg)
Perform any cleanup required in response to an UpdateMessage.OBJECT_RENAMED message received by update.

See Also:
update(java.lang.Object, oracle.ide.addin.UpdateMessage)

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.

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, 2004, Oracle. All rights reserved.