|
Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference 11g Release 1 (11.1.1.7.0) E13403-08 |
|||||||||
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.ObservableFolder
public class ObservableFolder
ObservableFolder
is a complete, default implementation
of the Folder
and Subject
interfaces. This is a
convenient starting point for the implementation of data classes
which can be integrated with the IDE framework.
Subject
Field Summary |
---|
Fields inherited from class oracle.ide.model.DefaultFolder |
---|
_children |
Constructor Summary | |
---|---|
ObservableFolder()
|
Method Summary | |
---|---|
boolean |
add(Element element)
Part of the Folder interface. |
void |
attach(Observer observer)
Registers an observer interested in being notified when the internal state of the class implementing the Subject interface
changes. |
java.lang.Object |
copyTo(java.lang.Object object)
Copies the internal state of this object to the
specified copy . |
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. |
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. |
void |
notifyObservers(java.lang.Object observed,
UpdateMessage change)
Notifies all observers that the state of the subject has changed. |
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, getData |
Methods inherited from interface oracle.ide.model.Displayable |
---|
getLongLabel, getShortLabel, getToolTipText, toString |
Constructor Detail |
---|
public ObservableFolder()
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:
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
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 void attach(Observer observer)
Subject
Subject
interface
changes.
Implementors should do nothing when the same observer is added more
than once.
attach
in interface Subject
observer
- the Observer
interested in change notification
messages.public void detach(Observer observer)
Subject
Subject
interface changes.
Implementors should do nothing when the same observer is removed more
than once.
detach
in interface Subject
observer
- the Observer
disinterested in change
notification messages.public void notifyObservers(java.lang.Object observed, UpdateMessage change)
Subject
notifyObservers
in interface Subject
observed
- the subject whose state has changed.change
- what changed.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
element
- The child object to remove.Folder.remove(Element)
public void removeAll()
Folder
removeAll
in interface Folder
removeAll
in class DefaultFolder
public java.util.List getListOfChildren()
Folder
contract.
List
view of the child @{link Element}s contained
by this ObservableFolder
.public void setListOfChildren(java.util.List list)
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.
|
Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference 11g Release 1 (11.1.1.7.0) E13403-08 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |