Object <- AttributeStepListChain |
|
|
AddDestroyableTarget ClearLists SetUpNewChain SwitchToNextList SwitchToPreviousList |
|
CurrentEditTarget CurrentStepList NextList NextTarget PreviousList PreviousTarget |
| Field | Type | |
|---|---|---|
| AttributeStepListChain: | stepListChain: | ObjectList |
| targetList: | ObjectList | |
| destroyableTargets: | ObjectList | |
| currentListIndex: | Unsigned |
instance AttributeStepListChain tag; stepListChain: nilObject; targetList: nilObject; destroyableTargets: nilObject; currentListIndex: 0; end instance;
Define Class AttributeStepListChain; inherits from Object; field stepListChain: ObjectList; field targetList: ObjectList; field destroyableTargets: ObjectList; field currentListIndex: Unsigned; operation SetUpNewChain(newListChain: Object; newTargetList: Object); // call to clear out any saved chain of step lists and // set up your chain; newListChain and newTargetList can be single // objects or object lists operation AddDestroyableTarget(targetToDestroy: Object); // call to add <targetToDestroy> to destroyableTargets list, which gets cleared by ClearLists // called by AttributeStepList_EditAttribute operation ClearLists(); // call to clear out the step list chain and the target list, and destroy objects in destroyableTargets // called by AttributeWindow when finished editing operation SwitchToNextList(): AttributeWindow; operation SwitchToPreviousList(): AttributeWindow; // attribute editing machinery calls these to move // from one list in the chain to the next attribute CurrentStepList: AttributeStepList; // call to get the current step list attribute CurrentEditTarget: Object; // call to get the target object for the current step list attribute NextList: AttributeStepList; // call to get the next step list in the chain // returns nilObject if there is no next list // inheritors of EditAttributeClient call setter from their // overrides of NextStepList attribute PreviousList: AttributeStepList; // call to get the previous step list in the chain // returns nilObject if there is no previous list // inheritors of EditAttributeClient call setter from their // overrides of PreviousStepList attribute NextTarget: Object; // the target object for the next step list in the chain attribute PreviousTarget: Object; // the target object for the previous step list in the chain end class;