150 lines
4.4 KiB
JavaScript
150 lines
4.4 KiB
JavaScript
define("dijit/tree/model", ["dojo/_base/declare"], function(declare){
|
|
|
|
return declare(
|
|
"dijit.tree.model",
|
|
null,
|
|
{
|
|
// summary:
|
|
// Contract for any data provider object for the tree.
|
|
// description:
|
|
// 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
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
// =======================================================================
|
|
// 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.
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
mayHaveChildren: function(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)
|
|
// item: dojo/data/Item
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
getChildren: function(parentItem, onComplete){
|
|
// summary:
|
|
// Calls onComplete() with array of child items of given parent item, all loaded.
|
|
// Throws exception on error.
|
|
// parentItem: dojo/data/Item
|
|
// onComplete: function(items)
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
// =======================================================================
|
|
// Inspecting items
|
|
|
|
isItem: function(something){
|
|
// summary:
|
|
// Returns true if *something* is an item and came from this model instance.
|
|
// Returns false if *something* is a literal, an item from another model instance,
|
|
// or is any object other than an item.
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
fetchItemByIdentity: function(keywordArgs){
|
|
// summary:
|
|
// Given the identity of an item, this method returns the item that has
|
|
// that identity through the onItem callback. Conforming implementations
|
|
// should return null if there is no item with the given identity.
|
|
// Implementations of fetchItemByIdentity() may sometimes return an item
|
|
// from a local cache and may sometimes fetch an item from a remote server.
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
getIdentity: function(item){
|
|
// summary:
|
|
// Returns identity for an item
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
getLabel: function(item){
|
|
// summary:
|
|
// Get the label for an item
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
// =======================================================================
|
|
// Write interface
|
|
|
|
newItem: function(args, parent, insertIndex, before){
|
|
// summary:
|
|
// Creates a new item. See `dojo/data/api/Write` for details on args.
|
|
// args: dijit/tree/dndSource.__Item
|
|
// parent: Item
|
|
// insertIndex: int?
|
|
// Allows to insert the new item as the n'th child of `parent`.
|
|
// before: Item?
|
|
// Insert the new item as the previous sibling of this item. `before` must be a child of `parent`.
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
pasteItem: function(childItem, oldParentItem, newParentItem, bCopy, insertIndex, before){
|
|
// 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.
|
|
// childItem: Item
|
|
// oldParentItem: Item
|
|
// newParentItem: Item
|
|
// bCopy: Boolean
|
|
// insertIndex: int?
|
|
// Allows to insert the new item as the n'th child of `parent`.
|
|
// before: Item?
|
|
// Insert the new item as the previous sibling of this item. `before` must be a child of `parent`.
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
// =======================================================================
|
|
// Callbacks
|
|
|
|
onChange: function(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.
|
|
// item: dojo/data/Item
|
|
// tags:
|
|
// callback
|
|
},
|
|
|
|
onChildrenChange: function(parent, newChildrenList){
|
|
// summary:
|
|
// Callback to do notifications about new, updated, or deleted items.
|
|
// parent: dojo/data/Item
|
|
// newChildrenList: dojo/data/Item[]
|
|
// tags:
|
|
// callback
|
|
}
|
|
});
|
|
|
|
}); |