org.robokind.api.animation.editor
Class AbstractEditor<ChildBase,ChildController>

java.lang.Object
  extended by org.robokind.api.common.property.PropertyChangeNotifier
      extended by org.robokind.api.animation.editor.AbstractEditor<ChildBase,ChildController>
Type Parameters:
ChildBase -
ChildController -
All Implemented Interfaces:
org.robokind.api.common.property.PropertyChangeSource
Direct Known Subclasses:
AnimationEditor, ChannelEditor, ControlPointEditor, MotionPathEditor

public abstract class AbstractEditor<ChildBase,ChildController>
extends org.robokind.api.common.property.PropertyChangeNotifier

Author:
Matthew Stevenson

Field Summary
protected  List<ChildController> myChildren
           
protected  List<EditorListener> myConsumers
           
protected  AbstractEditor myParent
           
protected  List<EditorListener> myRecursiveConsumers
           
protected  int mySelectedIndex
           
protected  HistoryStack mySharedHistory
           
protected  int myStates
           
static String PROP_NAME
          Property String for a AbstractEditor's name.
 
Constructor Summary
AbstractEditor(HistoryStack hist)
           
 
Method Summary
 int addChild(Object invoker, ChildBase childBase)
           
protected abstract  int addChildBase(Object invoker, org.robokind.api.common.utils.Source<ChildBase> childBase, int i)
          Called when a child is requested to be added.
 void addConsumer(EditorListener c)
           
protected  void addRecursiveToChild(AbstractEditor child)
           
 void clearConsumers()
           
protected abstract  ChildController createChildController(ChildBase childBase)
          Called when a new Controller needs to be created
 void deselect(Object invoker)
           
protected  void fireItemAddedEvent(Object invoker, int index)
           
protected  void fireItemAddedEvent(Object invoker, int index, List<EditorListener> cs)
           
protected  void fireItemMovedEvent(Object invoker, int oldIndex, int newIndex)
           
protected  void fireItemMovedEvent(Object invoker, int oldIndex, int newIndex, List<EditorListener> cs)
           
protected  void fireItemRemovedEvent(Object invoker, int oldIndex)
           
protected  void fireItemRemovedEvent(Object invoker, int oldIndex, List<EditorListener> cs)
           
protected  void fireSelectionChangeEvent(Object invoker, int oldIndex, int newIndex)
           
protected  void fireSelectionChangeEvent(Object invoker, int oldIndex, int newIndex, List<EditorListener> cs)
           
protected  void fireStateChangedEvent(Object invoker, EditState state, boolean value)
           
protected  void fireStateChangedEvent(Object invoker, EditState state, boolean value, List<EditorListener> cs)
           
protected  void fireStructureChangedEvent(Object invoker)
           
protected  void fireStructureChangedEvent(Object invoker, List<EditorListener> cs)
           
 ChildController getChild(int i)
           
 List<ChildController> getChildren()
           
 int getInheritedFlags()
           
abstract  String getName()
           
 AbstractEditor getParent()
           
 int getRestrictiveFlags()
           
 ChildController getSelected()
           
 int getSelectedIndex()
           
 HistoryStack getSharedHistory()
           
 int getStateFlags()
           
 List<EditState> getStates()
           
 boolean hasFlag(EditState state)
           
 int insertChild(Object invoker, ChildBase childBase, int i)
           
 int insertChildController(Object invoker, ChildController controller, int i)
           
protected abstract  int insertChildControllerBase(ChildController controller, int i)
          Called when inserting an existing ChildController.
abstract  boolean isChildUIController()
          This should return true if ChildController extends AbstractEditor.
 boolean isLocked()
           
 void recursiveAdd(EditorListener c)
           
 void recursiveRemove(EditorListener c)
           
 int removeChild(Object invoker, ChildController child)
           
protected abstract  ChildBase removeChild(Object invoker, int i)
          Called when the child with the given index is requested to be removed.
 int removeChildByIndex(Object invoker, int i)
           
 void removeConsumer(EditorListener c)
           
protected  void removeFromConsumerList(EditorListener c)
           
protected  void removeFromRecursiveList(EditorListener c)
           
 void select(Object invoker, int i)
           
protected  void setChildren(List<ChildBase> children)
           
abstract  void setName(String name)
           
 void setParent(AbstractEditor parent)
           
protected  void setSelected(int i, boolean sel)
           
 void setState(Object invoker, EditState state, boolean value)
           
 
Methods inherited from class org.robokind.api.common.property.PropertyChangeNotifier
addPropertyChangeListener, addPropertyChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, removePropertyChangeListener, removePropertyChangeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROP_NAME

public static final String PROP_NAME
Property String for a AbstractEditor's name.

See Also:
Constant Field Values

myParent

protected AbstractEditor myParent

myChildren

protected List<ChildController> myChildren

myConsumers

protected List<EditorListener> myConsumers

myRecursiveConsumers

protected List<EditorListener> myRecursiveConsumers

mySelectedIndex

protected int mySelectedIndex

myStates

protected int myStates

mySharedHistory

protected HistoryStack mySharedHistory
Constructor Detail

AbstractEditor

public AbstractEditor(HistoryStack hist)
Parameters:
hist -
Method Detail

setName

public abstract void setName(String name)

getName

public abstract String getName()
Returns:

removeChild

protected abstract ChildBase removeChild(Object invoker,
                                         int i)
Called when the child with the given index is requested to be removed.

Parameters:
invoker -
i - the index of the child to remove
Returns:

createChildController

protected abstract ChildController createChildController(ChildBase childBase)
Called when a new Controller needs to be created

Parameters:
childBase - the ChildBase for the requested ChildController
Returns:
return a new ChildController created from the ChildBase

isChildUIController

public abstract boolean isChildUIController()
This should return true if ChildController extends AbstractEditor. Additional functionality can be provided for Children UIControllers. This abstract method was introduced to avoid use of instanceof.

Returns:
true if ChildController extends AbstractEditor

addChildBase

protected abstract int addChildBase(Object invoker,
                                    org.robokind.api.common.utils.Source<ChildBase> childBase,
                                    int i)
Called when a child is requested to be added. This method should do everything necessary to add a ChildBase. Shortly after this is called, a call will be made to createChildController(...), the resulting controller will be added to myChildren at the index returned from this method. To cancel adding the ChildBase, return -1

Parameters:
invoker -
childBase - the ChildBase to be added
i -
Returns:
the index where the ChildBase, return -1 to cancel adding the ChildBase.

insertChildControllerBase

protected abstract int insertChildControllerBase(ChildController controller,
                                                 int i)
Called when inserting an existing ChildController. This method is expected to add the ChildBase from the ChildController to this Controller's underlying type.

Parameters:
controller - ChildController that is being added
i - the index the child should be added at
Returns:
the index the child is added at

setParent

public void setParent(AbstractEditor parent)
Parameters:
parent -

getParent

public AbstractEditor getParent()
Returns:

getSharedHistory

public HistoryStack getSharedHistory()
Returns:

addConsumer

public void addConsumer(EditorListener c)
Parameters:
c -

recursiveAdd

public void recursiveAdd(EditorListener c)
Parameters:
c -

addRecursiveToChild

protected void addRecursiveToChild(AbstractEditor child)
Parameters:
child -

removeConsumer

public void removeConsumer(EditorListener c)
Parameters:
c -

recursiveRemove

public void recursiveRemove(EditorListener c)
Parameters:
c -

removeFromConsumerList

protected void removeFromConsumerList(EditorListener c)
Parameters:
c -

removeFromRecursiveList

protected void removeFromRecursiveList(EditorListener c)
Parameters:
c -

clearConsumers

public void clearConsumers()

getChildren

public List<ChildController> getChildren()
Returns:

getChild

public ChildController getChild(int i)
Parameters:
i -
Returns:

getSelected

public ChildController getSelected()
Returns:

getSelectedIndex

public int getSelectedIndex()
Returns:

select

public void select(Object invoker,
                   int i)
Parameters:
invoker -
i -

setSelected

protected void setSelected(int i,
                           boolean sel)
Parameters:
i -
sel -

deselect

public void deselect(Object invoker)
Parameters:
invoker -

addChild

public int addChild(Object invoker,
                    ChildBase childBase)
Parameters:
invoker -
childBase -
Returns:

insertChild

public int insertChild(Object invoker,
                       ChildBase childBase,
                       int i)
Parameters:
invoker -
childBase -
i -
Returns:

insertChildController

public int insertChildController(Object invoker,
                                 ChildController controller,
                                 int i)
Parameters:
invoker -
controller -
i -
Returns:

setChildren

protected void setChildren(List<ChildBase> children)
Parameters:
children -

removeChild

public int removeChild(Object invoker,
                       ChildController child)
Parameters:
invoker -
child -
Returns:

removeChildByIndex

public int removeChildByIndex(Object invoker,
                              int i)
Parameters:
invoker -
i -
Returns:

setState

public void setState(Object invoker,
                     EditState state,
                     boolean value)
Parameters:
invoker -
state -
value -

getInheritedFlags

public int getInheritedFlags()
Returns:

getRestrictiveFlags

public int getRestrictiveFlags()
Returns:

getStateFlags

public int getStateFlags()
Returns:

getStates

public List<EditState> getStates()
Returns:

hasFlag

public boolean hasFlag(EditState state)
Parameters:
state -
Returns:

isLocked

public boolean isLocked()
Returns:

fireSelectionChangeEvent

protected final void fireSelectionChangeEvent(Object invoker,
                                              int oldIndex,
                                              int newIndex)
Parameters:
invoker -
oldIndex -
newIndex -

fireSelectionChangeEvent

protected final void fireSelectionChangeEvent(Object invoker,
                                              int oldIndex,
                                              int newIndex,
                                              List<EditorListener> cs)
Parameters:
invoker -
oldIndex -
newIndex -
cs -

fireItemAddedEvent

protected final void fireItemAddedEvent(Object invoker,
                                        int index)
Parameters:
invoker -
index -

fireItemAddedEvent

protected final void fireItemAddedEvent(Object invoker,
                                        int index,
                                        List<EditorListener> cs)
Parameters:
invoker -
index -
cs -

fireItemRemovedEvent

protected final void fireItemRemovedEvent(Object invoker,
                                          int oldIndex)
Parameters:
invoker -
oldIndex -

fireItemRemovedEvent

protected final void fireItemRemovedEvent(Object invoker,
                                          int oldIndex,
                                          List<EditorListener> cs)
Parameters:
invoker -
oldIndex -
cs -

fireItemMovedEvent

protected final void fireItemMovedEvent(Object invoker,
                                        int oldIndex,
                                        int newIndex)
Parameters:
invoker -
oldIndex -
newIndex -

fireItemMovedEvent

protected final void fireItemMovedEvent(Object invoker,
                                        int oldIndex,
                                        int newIndex,
                                        List<EditorListener> cs)
Parameters:
invoker -
oldIndex -
newIndex -
cs -

fireStateChangedEvent

protected final void fireStateChangedEvent(Object invoker,
                                           EditState state,
                                           boolean value)
Parameters:
invoker -
state -
value -

fireStateChangedEvent

protected final void fireStateChangedEvent(Object invoker,
                                           EditState state,
                                           boolean value,
                                           List<EditorListener> cs)
Parameters:
invoker -
state -
value -
cs -

fireStructureChangedEvent

protected final void fireStructureChangedEvent(Object invoker)
Parameters:
invoker -

fireStructureChangedEvent

protected final void fireStructureChangedEvent(Object invoker,
                                               List<EditorListener> cs)
Parameters:
invoker -
cs -


Copyright © 2011. All Rights Reserved.