1
0
mirror of https://tt-rss.org/git/tt-rss.git synced 2024-07-07 13:40:53 +02:00
ttrss/lib/dijit/tree/model.js.uncompressed.js
2013-03-18 10:26:26 +04:00

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
}
});
});