public final class Context
extends java.lang.Object
Project
and Workspace
as
well as the currently selected Element
.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
DATA_KEY
Deprecated.
since 11.1.1 use TraversableContext.find( Context.class ).
|
static java.lang.String |
INTENTIONAL_NULL
Context property that asserts that null workspace, project or
node values, if any, in the context are intentional. |
Constructor and Description |
---|
Context()
Default constructor.
|
Context(Context originalContext)
Copy constructor.
|
Context(Element element)
Constructor.
|
Context(Node node)
Constructor.
|
Context(View view,
Workspace workspace,
Project project,
Node node)
Constructor.
|
Context(Workspace workspace,
Project project)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
containsProperty(java.lang.String name)
Returns
true if the specified property is currently
contained in this Context; false otherwise. |
boolean |
equals(java.lang.Object o)
Compares the
Context to another object for equality. |
boolean |
getBoolean(java.lang.String name)
Convenience method for getting a boolean property from the Context.
|
Element |
getElement()
Convenience method for returning the first item from
getSelection() . |
java.util.EventObject |
getEvent()
Provides a reference to the EventObject associated with this Context.
|
int |
getInt(java.lang.String name)
Convenience method for getting an int property from the Context.
|
Node |
getNode()
Gets the
Node that owns the selection. |
Project |
getProject()
Provides a reference to the Project data associated with this
Context.
|
java.lang.Object |
getProperty(java.lang.String name)
Gets a property associated with this Context.
|
Element[] |
getSelection()
Gets the list of selected Elements.
|
View |
getView()
Provides a reference to the View associated with this Context.
|
Workspace |
getWorkspace()
Provides a reference to the Workspace associated with this
Context.
|
int |
hashCode()
This implementation exists solely to enforce the contract for
Object.hashCode() . |
static Context |
newIdeContext()
Returns a Context initialized with the active Workspace, its
active Project, the MainWindow's last active View, and the selection of
Element held by that View.
|
static Context |
newIdeContext(Element element)
Returns a Context initialized with the active Workspace, its active
Project, the main window's last active View, and the specified
Element as the selection.
|
static Context |
newIdeContext(Node node)
Returns a Context initialized with the active Workspace, its active
Project, the main window's last active View, and the specified
Node as the node, element, and selection.
|
static Context |
newIdeContext(View view)
Returns a Context initialized with the active Workspace, its active
Project, the specified View, and the selection of the specified View.
|
static Context |
newIdeContext(View view,
java.util.EventObject event)
Calls
#newIdeContext(oracle.ide.addin.View) , sets the
specified EventObject as the event, and returns the resulting
Context. |
void |
removeProperty(java.lang.String name)
Removes a property set on this Context.
|
void |
setBoolean(java.lang.String name,
boolean value)
Convenience method for setting a boolean property in the Context.
|
void |
setElement(Element element)
Convenience method for setting the selection to be the specified
Element . |
void |
setEvent(java.util.EventObject event)
Set the EventObject to be associated with this Context.
|
void |
setInt(java.lang.String name,
int value)
Convenience method for setting an int property in the Context.
|
void |
setNode(Node node)
Sets the Node that owns the selection.
|
void |
setProject(Project project)
Set a reference to the Project data associated with this
Context.
|
void |
setProperty(java.lang.String name,
java.lang.Object value)
Sets a property on this Context.
|
void |
setSelection(Element[] selection)
Sets the list of selected Elements.
|
void |
setView(View view)
Set a reference to the View to be associated with this Context.
|
void |
setWorkspace(Workspace workspace)
Sets a reference to the Workspace to be associated with this
Context.
|
java.lang.String |
toString() |
public static final java.lang.String DATA_KEY
TraversableContext
.public static final java.lang.String INTENTIONAL_NULL
Context
property that asserts that null workspace, project or
node values, if any, in the context are intentional.public Context()
public Context(Context originalContext)
public Context(Element element)
element
- the Element associated with this context.public Context(Node node)
node
- the Node associated with this context.public Context(Workspace workspace, Project project)
workspace
- the workspace associated with this context.project
- the project associated with this context.public Context(View view, Workspace workspace, Project project, Node node)
view
- the View associated with this context.workspace
- the Workspace associated with this context.project
- the Project associated with this context.node
- the Node associated with this context.public static Context newIdeContext()
public static Context newIdeContext(Element element)
public static Context newIdeContext(Node node)
public static Context newIdeContext(View view)
public static Context newIdeContext(View view, java.util.EventObject event)
#newIdeContext(oracle.ide.addin.View)
, sets the
specified EventObject as the event, and returns the resulting
Context.public final boolean equals(java.lang.Object o)
Context
to another object for equality.equals
in class java.lang.Object
public final int hashCode()
Object.hashCode()
. A Context
should never be used as a
hash key.hashCode
in class java.lang.Object
public final java.lang.Object getProperty(java.lang.String name)
All properties associated with a Context are transient, meaning they are only available during the lifecycle the particular Context object. Context objects tend to be short-lived, lasting only while an action is being performed or while menus and toolbars are being updated. The IDE will not preserve properties set on the current Context when creating a new Context.
Context properties are intended to be a simple mechanism for extensions to collaborate on a particular action or to optimize performance by allowing the storage of arbitrary temporary values in the Context.
A typical pattern is to encapsulate the lookup and typecast of a property in static utility methods, so that clients of a custom property have a typesafe way to get and set the property without having to know its String name in the Context. For example:
private static final String XYZ = "myExtension.xyz"; public static Xyz getXyz( Context context ) { return (Xyz) context.getProperty( XYZ ); } public static void setXyz( Context context, Xyz xyz ) { context.setProperty( XYZ, xyz ); }
name
- The name of the property to retrieve from the
Context.public final void setProperty(java.lang.String name, java.lang.Object value)
removeProperty(String)
.
All properties associated with a Context are transient, meaning they are only available during the lifecycle the particular Context object. Context objects tend to be short-lived, lasting only while an action is being performed or while menus and toolbars are being updated. The IDE will not preserve properties set on the current Context when creating a new Context.
Context properties are intended to be a simple mechanism for extensions to collaborate on a particular action or to optimize performance by allowing the storage of arbitrary temporary values in the Context.
A typical pattern is to encapsulate the lookup and typecast of a property in static utility methods, so that clients of a custom property have a typesafe way to get and set the property without having to know its String name in the Context. (It also improves the code fan-in metric.) For example:
private static final String XYZ = "myExtension.xyz"; public static Xyz getXyz( Context context ) { return (Xyz) context.getProperty( XYZ ); } public static void setXyz( Context context, Xyz xyz ) { context.setProperty( XYZ, xyz ); }
name
- The name of the property to set on the Context.value
- The value of the property to set on the Context.public final void removeProperty(java.lang.String name)
public final boolean containsProperty(java.lang.String name)
true
if the specified property is currently
contained in this Context; false otherwise.public final boolean getBoolean(java.lang.String name)
name
- The name of the property.public final void setBoolean(java.lang.String name, boolean value)
name
- The name of the property.value
- The value of the property.public final int getInt(java.lang.String name)
name
- The name of the property.public final void setInt(java.lang.String name, int value)
name
- The name of the property.value
- The value of the property.public final View getView()
public final void setView(View view)
public final Workspace getWorkspace()
public final void setWorkspace(Workspace workspace)
public final Project getProject()
public final void setProject(Project project)
public final java.util.EventObject getEvent()
setEvent(java.util.EventObject)
public final void setEvent(java.util.EventObject event)
event
- the EventObject to associate with this Context.getEvent()
public final Element[] getSelection()
The selection must either be all Subjecs, else all not Subjects. That is to say, all the Elements in the selection will also be Subjects, else none of them will.
In the case where none of the selected Elements are Subjects, the
getDefaultSubject method will return the Subject to which the selected
Elements apply.
The primary purpose of this restrciction is to allow the Inspector to
know what object(s) to use when sending update notification messages.
public final void setSelection(Element[] selection)
public final Node getNode()
Node
that owns the selection. If the selection
contains multiple Nodes, this methods returns the first Node.Node
that owns the selection.public final void setNode(Node node)
public final Element getElement()
getSelection()
.Element
in the selectiongetSelection()
public final void setElement(Element element)
Element
.element
- The new selection.public java.lang.String toString()
toString
in class java.lang.Object