A ContentSetFolder represents the root of a content set, such as
"Application Sources" or "Web Sources", in the navigator.

Implementation note: this class doesn't actually implement the
Folder interface, because there is no API means to
add/remove children to/from ContentLevelFolder once its been
created. If you have code that expects "instanceof Folder" to
work, what you need to do instead is call "mayHaveChildren()"
and if that returns true, then the Element serves as a "folder".

Method Summary

void

attach(Observer observer)
Registers an observer interested in being notified when the internal
state of the class implementing the Subject interface
changes.

void

detach(Observer observer)
Unregisters an observer that is not interested anymore in being notified
when the internal state of the class implementing the Subject
interface changes.

getChildren()
This method is part of the Element interface to
provide a convenient way of getting an Iterator over any
contained child Elements without having to test the
object's type with the instanceof operator or having
to downcast to a more specific type.

getShortLabel()
Returns a short label that can be displayed to the user.

java.lang.String

getToolTipText()
Returns the tool tip text to show when the mouse pointer pauses
over a UI component that represents this Displayable.

boolean

mayHaveChildren()
This method is part of the Element interface to
provide a convenient way of determining whether an object may
have children without having to test the object's type with the
instanceof operator or having to downcast to a
more specific type.

shouldAutoExpand

The implementation of this method should return true
if this Element is allowed to be auto-expanded. If false
is returned, it means that auto-expansion will occur up to this
Element but not drill in any further.

expansionContext - The auto-expansion Context. This Context
is not necessarily the context of this Element, but it is the
Context where auto-expansion was initiated. It is also possible
that the expansionContext will be null if there is
a reason that a Context could not be provided. Implementations
need to check for null before dereferencing expansionContext.

getContentSet

attach

Registers an observer interested in being notified when the internal
state of the class implementing the Subject interface
changes.
Implementors should do nothing when the same observer is added more
than once.

detach

Unregisters an observer that is not interested anymore in being notified
when the internal state of the class implementing the Subject
interface changes.
Implementors should do nothing when the same observer is removed more
than once.

getData

Returns the data object associated with this Element.
Implementations will often simply return this, since
the Element is often its own data object.
If the implementation returns an object other than this,
be sure to set ElementAttributes.DECORATES_DATA_ELEMENT.

getShortLabel

Returns a short label that can be displayed to the user.
Generally, the value of the returned String is considered
translatable and should therefore be placed in an appropriate
resource file. When possible, the returned label should be
reasonably short enough to show in the navigator or explorer
windows but long enough to clearly identify and distinguish the
Displayable.

getLongLabel

Returns a long label that can be displayed to the user. Generally,
the value of the returned String is considered translatable
and should therefore be placed in an appropriate resource file.
The long label differs from the short label essentially on length.
Usually the long label will only be shown on-demand and in places
where horizontal space is more available. Examples are the status
bar and tooltips.

getIcon

Returns an Icon that can be shown in association with this
Displayable. Typically the icon will be used in a
tree control or list control. Therefore the icon must fit
naturally within the space normally given to items within those
controls. Such icons are usually 16x16 in size or, if there is a
one-pixel transparent padding around the edge, 18x18 in size. It
is strongly recommended that icons returned by this method be
either 16x16 or 18x18 in size. If null is returned,
the control may show a default icon, or it may show no icon,
whichever is appropriate.

getToolTipText

Returns the tool tip text to show when the mouse pointer pauses
over a UI component that represents this Displayable.
In many cases it may be appropriate for this method to return the
same value as Displayable.getLongLabel().

mayHaveChildren

This method is part of the Element interface to
provide a convenient way of determining whether an object may
have children without having to test the object's type with the
instanceof operator or having to downcast to a
more specific type.

An implementation of Element that represents a leaf
in a tree structure should return false from this
method. An implementation of Element that could
represent a non-leaf in a tree structure should return
true from this method, even if it does not currently
contain any children.

getAttributes

This method returns an Attributes object that encodes the
attributes of the Element. Changing the attribute
settings on the return object changes the element attributes.
Subclasses should use their super class attributes object to
define their own attributes. This allows subclasses to
inherit their super class attributes. If a subclass does not
wish to inherit attributes, they should first call
getAttributes().clear() and define new attributes.

getChildren

This method is part of the Element interface to
provide a convenient way of getting an Iterator over any
contained child Elements without having to test the
object's type with the instanceof operator or having
to downcast to a more specific type.

An implementation of Element that represents a leaf
in a tree structure should return null from this
method. An implementation of Element that could
represent a non-leaf in a tree structure should return either an
Iterator over the child Elements or
null if there are no children.