public class Workspaces extends ObservableFolder implements SubDirtyable
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
WORKSPACES
Constant identifying this object.
|
_children
Constructor and Description |
---|
Workspaces()
Default constructor.
|
Workspaces(Workspaces workspaces)
Copy constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
canAdd(Element element)
Folder interface method. |
java.lang.Object |
copyTo(java.lang.Object object)
Copies the internal state of
this object to the specified copy . |
protected void |
copyToImpl(Workspaces copy)
Design pattern for supporting strongly typed copying.
|
Workspace |
currentActiveWorkspace()
Returns the currently active
Workspace associated with this Workspaces . |
static Folder |
findOwner(Element element, Context context)
This method will be called when the IDE needs to determine the container on whom to call the remove, canRemove, add, and canAdd methods.
|
java.util.Map |
getActiveProjectMap()
Gets a map containing information about what project for a given workspace.
|
java.net.URL |
getActiveWorkspaceURL() |
java.util.Iterator |
getChildren()
Part of the
Element interface. |
javax.swing.Icon |
getIcon()
Part of
Element interface. |
java.lang.String |
getShortLabel()
This implementation returns a place-holder
String . |
java.net.URL |
getWorkDirectory() |
boolean |
isDirty()
True if the data in the object has been modified.
|
void |
markDirty(boolean dirty)
Marks the data with the specified dirty state.
|
boolean |
remove(Element doc)
Part of the
Folder interface. |
void |
setActiveProjectMap(java.util.Map map)
Sets the active project map.
|
void |
setActiveWorkspace(Workspace workspace)
Sets the currently active
Workspace associated with this Workspaces . |
void |
setActiveWorkspaceURL(java.net.URL workspaceURL) |
void |
setListOfChildren(java.util.List list)
Fulfills the public accessor part of the
Folder contract. |
void |
setOwner(Dirtyable owner)
This method should be called to set the document in which a
SubDirtyable implementation will be persisted. |
void |
setWorkDirectory(java.net.URL workDirectory)
Sets the default root directory for all new
Workspace s. |
java.util.Collection<Workspace> |
workspaces()
Returns a collection of
Workspace instances which are children of this Workspaces . |
add, attach, detach, getListOfChildren, notifyObservers, removeAll
canRemove, containsChild, copyToImpl, equalsImpl, mayHaveChildren, size
getAttributes, getData
getLongLabel, getToolTipText, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getAttributes, getData
getLongLabel, getToolTipText, toString
public static final java.lang.String WORKSPACES
public Workspaces()
public Workspaces(Workspaces workspaces)
public java.lang.Object copyTo(java.lang.Object object)
Copyable
this
object to the specified copy
. If copy
is null
, then this method should create a new instance of this
class and proceed to copy the internal state to the newly created object. Generally, only the persistent state of the object should be copied, but whether or not it is appropriate to copy transient properties is at the discretion of the individual implementor.
Regardless of whether the copy occurs to an existing object or to a newly created object, the return value is object to which this
object's state was copied.
There is a standard implementation pattern for the copyTo
method that helps avoid problems that arise when a Copyable
object is subclassed. The pattern is:
The parameter passed into thepublic Object copyTo( Object target ) { final <this_class> copy = target != null ? (<this_class>) target : new <this_class>(); copyToImpl( copy ); return copy; } protected final void copyToImpl( <this_class> copy ) { super.copyToImpl( copy ); // if necessary // put code here for copying the properties of <this_class> }
copyToImpl
method is the same type of this
class. The responsibility of copyToImpl
is to copy the state of this
class through direct access of the fields. The copyToImpl
method should not use getters and setters since these may be overridden, causing the state of this
class to be incompletely copied.copyTo
in interface Copyable
copyTo
in class ObservableFolder
object
- The target object to which the state of this
object should be copied. If target
is null
, then the copyTo
method will return a new instance of this
class.this
object was copied. If the target
was non-null
, then the return value is the same as the target
object that was passed in; otherwise, the return value is a new instance of this
class.protected final void copyToImpl(Workspaces copy)
public java.net.URL getWorkDirectory()
Workspace
s.public void setWorkDirectory(java.net.URL workDirectory)
Workspace
s.public java.net.URL getActiveWorkspaceURL()
public void setActiveWorkspaceURL(java.net.URL workspaceURL)
@NotNull public java.util.Collection<Workspace> workspaces()
Workspace
instances which are children of this Workspaces
.
This method is equivalent to calling getChildren()
and building a collection of the children which are an instance of Workspace
.
Workspace
s. Never returns null.public java.lang.String getShortLabel()
DefaultDisplayable
String
.getShortLabel
in interface Displayable
getShortLabel
in class DefaultDisplayable
Displayable
that can be shown to the user.Displayable.getShortLabel()
public javax.swing.Icon getIcon()
DefaultFolder
Element
interface. The default implementation returns null
, which causes a default folder icon to be used.getIcon
in interface Displayable
getIcon
in class DefaultFolder
Icon
to be displayed for the Displayable
.Displayable.getIcon()
public boolean canAdd(Element element)
Folder
interface method. Returns true
if the type of the specified Element
exactly matches Workspace
. Returns false
otherwise.canAdd
in interface Folder
canAdd
in class DefaultFolder
element
- the Element
that is about to be added to this Folder
.true
if and only if the specified Element
is not null
.Folder.canAdd(Element)
, DefaultFolder.canAdd(Element)
, Workspace
public boolean remove(Element doc)
DefaultFolder
Folder
interface. The specified Element
is removed from the child list. However, if the Element
is null
, this method does nothing. If the Element
occurs more than once in the child list, then only the first instance is removed.
In order for the UI to get updated correctly, an appropriate UpdateMessage
will need to be sent to Observer
s of the DefaultFolder
. The policy in the IDE is that the class that changes the state of an object is responsible for firing the UpdateMessage
s for those changes. UpdateMessage
s are not fired by the changed object itself.
For a single UpdateMessage
corresponding to DefaultFolder.remove(Element)
, you can fire the UpdateMessage
using code like:
UpdateMessage.fireChildRemoved(folder, removedChild);
remove
in interface Folder
remove
in class ObservableFolder
doc
- The child object to remove.Folder.remove(Element)
public void setListOfChildren(java.util.List list)
ObservableFolder
Folder
contract. Sets the child list of the ObservableFolder
instance to match the specified List
. Only objects in the List
that can be cast to Element
are added. The implementation uses the DefaultFolder.add(Element)
method to add the child to the list, so that subclass implementations can override DefaultFolder.add(Element)
without having to also override this method.setListOfChildren
in class ObservableFolder
public boolean isDirty()
Dirtyable
isDirty
in interface Dirtyable
isDirty
in class ObservableFolder
true
if the data in the object has been modified.public void markDirty(boolean dirty)
Dirtyable
markDirty(...)
instead of setDirty(...)
so that the JavaBeans Introspector
will not mistakenly identify "dirty" as a JavaBean property.markDirty
in interface Dirtyable
markDirty
in class ObservableFolder
dirty
- If true
, sets the object as being dirty; if false
, sets the object as being up-to-date.public void setOwner(Dirtyable owner)
SubDirtyable
SubDirtyable
implementation will be persisted.setOwner
in interface SubDirtyable
owner
- The Dirtyable
object in which this SubDirtyable
will be saved.public Workspace currentActiveWorkspace()
Workspace
associated with this Workspaces
. If there is no currently active Workspace
, null is returned This method is called currentActiveWorkspace
instead of getActiveWorkspace
in order to avoid having the "_activeWorkspace" property get picked up by the Introspector
.public void setActiveWorkspace(Workspace workspace)
Workspace
associated with this Workspaces
.public java.util.Map getActiveProjectMap()
public void setActiveProjectMap(java.util.Map map)
public static final Folder findOwner(Element element, Context context)
element
- the Element being checked for removal from this foldercontext
- the Context in which to perform the searchpublic java.util.Iterator getChildren()
Element
interface. This implementation returns an Iterator
over the current list of children.getChildren
in interface Element
getChildren
in class DefaultFolder
Iterator
over any child Element
s contained by this Element
. If there are no children, null
is returned.Element.getChildren()