<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>jsTree v.1.0 - UI documentation</title>
	<script type="text/javascript" src="../_lib/jquery.js"></script>
	<script type="text/javascript" src="../_lib/jquery.cookie.js"></script>
	<script type="text/javascript" src="../_lib/jquery.hotkeys.js"></script>
	<script type="text/javascript" src="../jquery.jstree.js"></script>

	<link type="text/css" rel="stylesheet" href="syntax/!style.css"/>
	<link type="text/css" rel="stylesheet" href="!style.css"/>
	<script type="text/javascript" src="syntax/!script.js"></script>
</head>
<body>
<div id="container">

<h1 id="dhead">jsTree v.1.0</h1>
<h1>ui plugin</h1>
<h2>Description</h2>
<div id="description">
<p>The <code>UI</code> plugin handles selecting, deselecting and hovering tree items.</p>
</div>

<h2 id="configuration">Configuration</h2>
<div class="panel configuration">
<h3>select_limit</h3>
<p class="meta">A number. Default is <code>-1</code>.</p>
<p>Defines how many nodes can be selected at a given time (<code>-1</code> means unlimited).</p>

<h3>select_multiple_modifier</h3>
<p class="meta">A string. Default is <code>"ctrl"</code>.</p>
<p>The special key used to make a click add to the selection and not replace it (<code>"ctrl"</code>, <code>"shift"</code>, <code>"alt"</code>, <code>"meta"</code>).<br />You can also set this to <code>"on"</code> making every click add to the selection.</p>

<h3>select_range_modifier</h3>
<p class="meta">A string. Default is <code>"shift"</code>.</p>
<p>The special key used to make a click expand a range from the last selected item (<code>"ctrl"</code>, <code>"shift"</code>, <code>"alt"</code>, <code>"meta"</code>).<br />Note that the last clicked elemtn should be a sibling of the currently clicked element so that a range will be created (same as common file explorers).</p>

<h3>selected_parent_close</h3>
<p class="meta">A string (or <code>false</code>). Default is <code>"select_parent"</code>.</p>
<p>What action to take when a selected node's parent is closed (making the selected node invisible). Possible values are <code>false</code> - do nothing, <code>"select_parent"</code> - select the closed node's parent and <code>"deselect"</code> - deselect the node.</p>

<h3>selected_parent_open</h3>
<p class="meta">A Boolean. Default is <code>true</code>.</p>
<p>When set to <code>true</code> when programatically selecting a node in the tree all of its closed parents are opened automatically.</p>

<h3>select_prev_on_delete</h3>
<p class="meta">A boolean. Default is <code>true</code>.</p>
<p>If set to <code>true</code> when a selected node is deleted, its previous sibling (or parent) is selected.</p>

<h3>disable_selecting_children</h3>
<p class="meta">A boolean. Default is <code>false</code>.</p>
<p>If set to <code>true</code> you will not be able to select children of already selected nodes.</p>

<h3>initially_select</h3>
<p class="meta">An array. Default is <code>[]</code>.</p>
<p>Defines which nodes are to be automatically selected when the tree finishes loading - a list of IDs is expected.</p>

</div>

<h2 id="demos">Demos</h2>
<div class="panel">

<h3>Using the UI plugin</h3>
<div id="demo1" class="demo">
	<ul>
		<li id="phtml_1">
			<a href="#">Root node 1</a>
			<ul>
				<li id="phtml_2">
					<a href="#">Child node 1</a>
				</li>
				<li id="phtml_3">
					<a href="#">Child node 2</a>
				</li>
			</ul>
		</li>
		<li id="phtml_4">
			<a href="#">Root node 2</a>
		</li>
	</ul>
</div>
<script type="text/javascript" class="source">
$(function () {
	$("#demo1").jstree({ 
		"ui" : {
			"select_limit" : 2,
			"select_multiple_modifier" : "alt",
			"selected_parent_close" : "select_parent",
			"initially_select" : [ "phtml_2" ]
		},
		"core" : { "initially_open" : [ "phtml_1" ] },
		"plugins" : [ "themes", "html_data", "ui" ]
	});
});
</script>

</div>

<h2 id="api">API</h2>
<div class="panel api">

<h3 id="_get_node">._get_node ( node , allow_multiple )</h3>
<p>Overrides the function from the <a href="core.html#_get_node">core</a> module.<br />if <code>node</code> is <code>undefined</code> or <code>null</code> and <code>allow_multiple</code> is <code>true</code> all the currently selected nodes are returned<br />if <code>node</code> is <code>undefined</code> or <code>null</code> and <code>allow_multiple</code> is NOT <code>true</code> only the last selected node is returned.</p>
<ul class="arguments">
	<li>
		<code class="tp">mixed</code> <strong>node</strong>
		<p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
	</li>
	<li>
		<code class="tp">boolean</code> <strong>allow_multiple</strong>
		<p>Whether to return all selected nodes or only the last selected one if <code>node</code> is <code>null</code>.</p>
	</li>
</ul>

<h3 id="save_selected">.save_selected ( )</h3>
<p>Saves away the current selection state of the tree (saves it in a variable, so do not expect a restore after a refresh - for that functionality refer to the <a href="cookies.html">cookies plugin</a>. Used mostly internally. Triggers an event.</p>

<h3 id="reselect">.reselect ( )</h3>
<p>Restores the state of the tree using the variable saved in the above function. Used mostly internally. Triggers an event.</p>

<h3 id="refresh">.refresh ( node )</h3>
<p>Overrides the function form the <a href="core.html#refresh">core</a> module.<br />Enables saving the selection state before the refresh and restoring it afterwards.</p>

<h3 id="hover_node">.hover_node ( node )</h3>
<p>Sets the specified node as hovered. Triggers an event.</p>
<ul class="arguments">
	<li>
		<code class="tp">mixed</code> <strong>node</strong>
		<p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
	</li>
</ul>

<h3 id="dehover_node">.dehover_node ( )</h3>
<p>Removes the hover state from the currently hovered node (if there is one). Triggers an event.</p>


<h3 id="select_node">.select_node ( node , check , event )</h3>
<ul class="arguments">
	<li>
		<code class="tp">mixed</code> <strong>node</strong>
		<p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
	</li>
	<li>
		<code class="tp">bool</code> <strong>check</strong>
		<p>Whether to check the specified rules and do appropriate actions (check <code>select_limit</code>, deselect other nodes respectively, etc) or to just force selection of the node regardless of <code>select_limit</code>.</p>
	</li>
	<li>
		<code class="tp">event</code> <strong>event</strong>
		<p>Used internally - when a click on a node caused this function to be executed.</p>
	</li>
</ul>

<div style="height:1px; visibility:hidden; overflow:hidden;"><span id="toggle_select">&#160;</span></div>
<h3 id="deselect_node">.deselect_node ( node ), .toggle_select ( node )</h3>
<p>There functions control the selected state on a node. <code>deselect_node</code> triggers an event.</p>
<ul class="arguments">
	<li>
		<code class="tp">mixed</code> <strong>node</strong>
		<p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
	</li>
</ul>

<h3 id="deselect_all">.deselect_all ( context )</h3>
<p>Deselects all selected nodes. If context is set - only the selected nodes within that context are deselected. Triggers an event.</p>
<ul class="arguments">
	<li>
		<code class="tp">mixed</code> <strong>context</strong>
		<p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
	</li>
</ul>

<h3 id="get_selected">.get_selected ( context )</h3>
<p>Returns all selected nodes. If context is set - only the selected nodes within that context are returned.</p>
<ul class="arguments">
	<li>
		<code class="tp">mixed</code> <strong>context</strong>
		<p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
	</li>
</ul>

<h3 id="is_selected">.is_selected ( node )</h3>
<p>Returns whether the specified node is selected or not.</p>
<ul class="arguments">
	<li>
		<code class="tp">mixed</code> <strong>node</strong>
		<p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
	</li>
</ul>

</div>

</div>
</body>
</html>