diff options
Diffstat (limited to 'includes/js/dijit/_tree/model.js')
-rw-r--r-- | includes/js/dijit/_tree/model.js | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/includes/js/dijit/_tree/model.js b/includes/js/dijit/_tree/model.js new file mode 100644 index 0000000..5ef4ac1 --- /dev/null +++ b/includes/js/dijit/_tree/model.js @@ -0,0 +1,84 @@ + +dojo.declare( + "dijit.tree.model", + null, +{ + // summary + // Contract for any data provider object for the tree. Tree + // passes in values to the constructor to specify the callbacks. + // "item" is typically a dojo.data.Item but it's just a black box so + // it could be anything. + // + // This (like dojo.data.api.Read) is just documentation, and not meant to be used. + + destroy: function(){ + // summary: destroys this object, releasing connections to the store + }, + + // ======================================================================= + // Methods for traversing hierarchy + + getRoot: function(onItem){ + // summary: + // Calls onItem with the root item for the tree, possibly a fabricated item. + // Throws exception on error. + }, + + mayHaveChildren: function(/*dojo.data.Item*/ item){ + // summary + // Tells if an item has or may have children. Implementing logic here + // avoids showing +/- expando icon for nodes that we know don't have children. + // (For efficiency reasons we may not want to check if an element actually + // has children until user clicks the expando node) + }, + + getChildren: function(/*dojo.data.Item*/ parentItem, /*function(items)*/ onComplete){ + // summary + // Calls onComplete() with array of child items of given parent item, all loaded. + // Throws exception on error. + }, + + // ======================================================================= + // Inspecting items + + getIdentity: function(/* item */ item){ + // summary: returns identity for an item + }, + + getLabel: function(/*dojo.data.Item*/ item){ + // summary: get the label for an item + }, + + // ======================================================================= + // Write interface + + newItem: function(/* Object? */ args, /*Item?*/ parent){ + // summary + // Creates a new item. See dojo.data.api.Write for details on args. + }, + + pasteItem: function(/*Item*/ childItem, /*Item*/ oldParentItem, /*Item*/ newParentItem, /*Boolean*/ bCopy){ + // summary + // Move or copy an item from one parent item to another. + // Used in drag & drop. + // If oldParentItem is specified and bCopy is false, childItem is removed from oldParentItem. + // If newParentItem is specified, childItem is attached to newParentItem. + }, + + // ======================================================================= + // Callbacks + + onChange: function(/*dojo.data.Item*/ item){ + // summary + // Callback whenever an item has changed, so that Tree + // can update the label, icon, etc. Note that changes + // to an item's children or parent(s) will trigger an + // onChildrenChange() so you can ignore those changes here. + }, + + onChildrenChange: function(/*dojo.data.Item*/ parent, /*dojo.data.Item[]*/ newChildrenList){ + // summary + // Callback to do notifications about new, updated, or deleted items. + } +}); + |