135 lines
4 KiB
JavaScript
135 lines
4 KiB
JavaScript
/*
|
|
Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
|
|
Available via Academic Free License >= 2.1 OR the modified BSD license.
|
|
see: http://dojotoolkit.org/license for details
|
|
*/
|
|
|
|
|
|
|
|
dojo.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(/*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)
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
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.
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
// =======================================================================
|
|
// Inspecting items
|
|
|
|
isItem: function(/* anything */ 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(/* object */ 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 */ item){
|
|
// summary:
|
|
// Returns identity for an item
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
getLabel: function(/*dojo.data.Item*/ item){
|
|
// summary:
|
|
// Get the label for an item
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
// =======================================================================
|
|
// Write interface
|
|
|
|
newItem: function(/* dojo.dnd.Item */ args, /*Item*/ parent, /*int?*/ insertIndex){
|
|
// summary:
|
|
// Creates a new item. See `dojo.data.api.Write` for details on args.
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
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.
|
|
// tags:
|
|
// extension
|
|
},
|
|
|
|
// =======================================================================
|
|
// 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.
|
|
// tags:
|
|
// callback
|
|
},
|
|
|
|
onChildrenChange: function(/*dojo.data.Item*/ parent, /*dojo.data.Item[]*/ newChildrenList){
|
|
// summary:
|
|
// Callback to do notifications about new, updated, or deleted items.
|
|
// tags:
|
|
// callback
|
|
}
|
|
});
|
|
|