... <- FixedList <- ObjectList <- DenseObjectList <- StackOfCards <- DrawerStack |
|
|
AddFolder AddFolderAt CreateNewFolder DestroySystemStorageContents EachStorageObject FileInContainer InstallInto StorageInstallIndexical |
|
Dense Image Name StackScene |
| Field | Type | |
|---|---|---|
| StackOfCards: | protoCard: | Card |
| canWrap: | Boolean | |
| canDelete: | Boolean | |
| containsNewItems: | Boolean | |
| disableCardTracking: | Boolean | |
| stackScene: | StackScene | |
| DrawerStack: | folderTray: | FolderTray |
instance DrawerStack tag; protoCard: nilObject; canWrap: false; canDelete: false; containsNewItems: false; disableCardTracking: false; stackScene: nilObject; folderTray: nilObject; end instance;
Define Class DrawerStack; inherits from StackOfCards; field folderTray: FolderTray, weak; attribute Image: Image, readOnly; operation AddFolder(): Folder; // calls AddFolderAt with index of first empty slot; operation AddFolderAt(index: Unsigned): Folder; // creates new folder at specified index from proto card; // new folder will be unnamed; caller should provide a name // or ask user to do so operation CreateNewFolder(): Folder; // makes a copy of the protofolder near the stack and makes it deletable overrides Dense; // returns false so cleaning won't collapse holes before "Other" folder operation FileInContainer(objectToBeFiled: Object; moveFlag: Boolean; subContainer: Object): Object; overrides DestroySystemStorageContents, InstallInto; overrides StackScene, EachStorageObject, StorageInstallIndexical; overrides SetName; end class;