|
Extension SDK 10.1.2 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
oracle.ide.model.DefaultDisplayable
oracle.ide.model.DefaultElement
oracle.ide.model.DefaultFolder
oracle.ide.model.DataFolder
DataFolder
is a complete, default implementation of the ChildrenList
interface. This is a convenient starting point for the implementation of data classes which can be integrated with the IDE framework.
DataFolder
can also be wrapped by XMLDataContainer
for persisting its children list to XML.
If a subclass of DataFolder
adheres to the JavaBeans API, it can also interoperate with the IDE's marshalling framework, which is used for persistence. Such a subclass can be persisted automatically (i.e. no additional persistence code needs to be written), so long as the subclass implementation follows the guidelines of the marshalling framework. For details, see the documentation for the oracle.ide.marshal
package and its subpackages.
A JavaBean also has the advantage of interoperating with the property inspector. Newer IDE APIs are also being considered which leverage off the JavaBeans API, so implementing a DataFolder
subclass to follow the JavaBeans API will also result in compatibility with future features.
DefaultFolder
, ChildrenList
, oracle.ide.marshal
, oracle.ide.marshal.xml
Field Summary |
Fields inherited from class oracle.ide.model.DefaultFolder |
_children |
Constructor Summary | |
DataFolder() Default constructor needed for JavaBean status. |
|
DataFolder(DataFolder dataFolder) Copy constructor. |
Method Summary | |
boolean |
add(Element element) Part of the Folder interface. |
java.lang.Object |
copyTo(java.lang.Object object) Copies the internal state of this object to the specified copy . |
java.util.List |
getListOfChildren() Fulfills the public accessor part of the Folder contract. |
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 element) Part of the Folder interface. |
void |
removeAll() Removes all children from the folder. |
void |
setListOfChildren(java.util.List list) Fulfills the public accessor part of the Folder contract. |
Methods inherited from class oracle.ide.model.DefaultFolder |
canAdd, canRemove, containsChild, copyToImpl, equalsImpl, getChildren, getIcon, mayHaveChildren, size |
Methods inherited from class oracle.ide.model.DefaultElement |
getAttributes, getData |
Methods inherited from class oracle.ide.model.DefaultDisplayable |
getLongLabel, getShortLabel, getToolTipText, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface oracle.ide.model.Element |
getAttributes |
Methods inherited from interface oracle.ide.model.Data |
getData |
Methods inherited from interface oracle.ide.model.Displayable |
getLongLabel, getShortLabel, getToolTipText, toString |
Constructor Detail |
public DataFolder()
public DataFolder(DataFolder dataFolder)
Method Detail |
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:
public 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> }
The parameter passed into the 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
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.public boolean isDirty()
Dirtyable
isDirty
in interface Dirtyable
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
dirty
- If true
, sets the object as being dirty; if false
, sets the object as being up-to-date.public java.util.List getListOfChildren()
Folder
contract.List
view of the child @{link Element}s contained by this DataFolder
.public void setListOfChildren(java.util.List list)
Folder
contract. Sets the child list of the DataFolder
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.public boolean add(Element element)
DefaultFolder
Folder
interface. The specified Element
is added to the end of the child list. However, if the Element
is null
, this method does nothing.
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. UpdageMessage
s are not fired by the changed object itself.
For a single UpdateMessage
corresponding to DefaultFolder.add(Element)
, you can fire the UpdateMessage
using code like:
UpdateMessage.fireChildAdded(folder, newlyAddedChild);
add
in interface Folder
add
in class DefaultFolder
Folder.add(oracle.ide.model.Element)
public boolean remove(Element element)
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 DefaultFolder
Folder.remove(Element)
public void removeAll()
Folder
removeAll
in interface Folder
removeAll
in class DefaultFolder
|
Extension SDK | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 1997, 2004, Oracle. All rights reserved.