%META:TOPICPARENT{name="OATDOCIndex"}% ---+ tree.js Converts Unordered List (<ul> element) into interactive tree. %TOC% ---++ Objects ---+++ OAT.Tree(options) Options may contain any of the following: * *imagePath* - path to all images used in tree * *imagePrefix* - prefix to all images * *ext* - image name extension * *onlyOneOpened* - boolean; can only one branch can be opened at a time? * *allowDrag* - boolean; can user re-drag Tree nodes? * *useDots* - boolean; draw dotted connectors? * *onClick* - "select|toggle|false"; what to do when user clicks label/icon * *onDblClick* - "select|toggle|false"; what to do when user double-clicks label/icon * *poorMode* - boolean; switch to "memory_saving_increased_performance / lower_visual_features" mode? * *checkboxMode* - boolean; use checkbox mode? * *allowDrag* - boolean; can user re-drag Tree nodes? * *defaultCheck* - boolean (only in checkbox mode) ; (ToBeDone: are checkboxes checked by default?) * *checkNOI* - boolean (only in checkbox mode); if true, then checked nodes are contained in OAT.Tree::checkedNOI. Otherwise, this array contains unchecked nodes. * *checkCallback* - function (only in checkbox mode); will be executed (with nodeSet argument) when user changes state of a checkbox. ---++ Methods ---+++ OAT.Tree.assign(listElement, collapse) This converts a list into an interactive tree.listElement specifies an <ul> element in which your list lives. Argument collapse toggles initial collapsing of whole tree. Tree data structure can be accessed and modified. See Example for usage. ---++ HTML Enhancement Add attributes branchImg, toggleOpenImg, and toggleClosedImg, which would be appended to the <li> tag. This way we can have any desired name AND file format for the tree decoration. ---++ Example var t1 = new OAT.Tree({imagePath:"images", // will take images from imagePrefix:"", ext:"gif"}); // images/Tree_*.gif var t2 = new OAT.Tree({imagePath:"images", // will take images from imagePrefix:"prefix", ext:"png"}); // images/Tree_prefix_*.png t1.assign("myUL1", true); // collapsed t2.assign("myUL2", false); // expanded var node1 = t1.tree.children[0]; var node2 = t2.tree.children[1]; node2.appendChild(node1); node1.setLabel("newLabel"); node2.expand(); node1.createChild("newLabel", true); // second argument means that new // child is a node rather than leaf node2.deleteChild(node1); CategoryDocumentation CategoryOAT CategoryOpenSource CategoryToBeDone