<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Javascript dynamic treeview</title>
		<link>http://www.allegro.cc/forums/view/590012</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 13 Feb 2007 20:00:35 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I need a way to create a tree in java or javascript that displays a collapsible tree with checkboxes next to each entry.  Is there any good free classes to use for this?  Also I need a way to dynamically create the tree from a file.  What would be the best way to store a tree in a datafile?  I was thinking something simple like:
</p><div class="source-code snippet"><div class="inner"><pre><span class="n">0</span> Item1
<span class="n">1</span> SubItem1
<span class="n">1</span> SubItem2
<span class="n">2</span> SubItemOfItem2
<span class="n">1</span> SubItem3
</pre></div></div><p>
Not sure how easy that would be to parse and convert to a tree view though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Sun, 11 Feb 2007 07:08:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>To the second question, the easiest way to store the data is in javascript:</p><div class="source-code snippet"><div class="inner"><pre><span class="k2">(</span><span class="k2">{</span> name: <span class="s">"Item1"</span>, children: <span class="k2">[</span>
    <span class="k2">{</span> name: <span class="s">"SubItem1"</span> <span class="k2">}</span>,
    <span class="k2">{</span> name: <span class="s">"SubItem2"</span>, children: <span class="k2">[</span>
        <span class="k2">{</span> name: <span class="s">"SubItemOfItem2"</span> <span class="k2">}</span>
    <span class="k2">]</span> <span class="k2">}</span>,
    <span class="k2">{</span> name: <span class="s">"SubItem3"</span> <span class="k2">}</span>
<span class="k2">]</span> <span class="k2">}</span><span class="k2">)</span>
</pre></div></div><p>Then you can just...</p><div class="source-code snippet"><div class="inner"><pre>var tree <span class="k3">=</span> eval<span class="k2">(</span>data<span class="k2">)</span><span class="k2">;</span>
var node <span class="k3">=</span> tree<span class="k2">;</span>
<span class="k1">for</span><span class="k2">(</span>var i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> node.children.length<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="k2">{</span>
    <span class="k1">if</span><span class="k2">(</span>node.children<span class="k3">&lt;</span>i&gt;.name <span class="k3">=</span><span class="k3">=</span> <span class="s">"SubItem2"</span><span class="k2">)</span>
    <span class="k2">{</span>
        node <span class="k3">=</span> node.children<span class="k3">&lt;</span>i&gt;<span class="k2">;</span>
        <span class="k1">break</span><span class="k2">;</span>
    <span class="k2">}</span>
<span class="k2">}</span>
<a href="http://www.allegro.cc/manual/alert" target="_blank"><span class="a">alert</span></a><span class="k2">(</span><span class="s">"SubItem2 has "</span> <span class="k3">+</span> node.children.length <span class="k3">+</span> <span class="s">" sub-items"</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

The code for the tree view itself isn&#39;t hard. Just create a small checkbox image in all three states and assign each line (which should be an li element, I imagine) a node as from the code above. When the node is expanded, either add a child list of the end of the current node&#39;s list item, or insert list items after the current one.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sun, 11 Feb 2007 08:07:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What about as a jsp page. I forgot to mention that this will be running server side.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Mon, 12 Feb 2007 02:19:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The javascript for the tree view will have to be client side, the processing to generate that would be server side.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Mon, 12 Feb 2007 04:23:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/8/c/8c03f8975e3dfa60d3130aa5278aa4b0.png" alt="img" width="134" height="97" /></p><p>Not sure why it&#39;s putting in the extra spaces.  I&#39;m just doing some simple html at the moment to see if I can get the images to line up properly...</p><div class="source-code snippet"><div class="inner"><pre><span class="k3">&lt;</span>div&gt;<span class="k3">&lt;</span>img src<span class="k3">=</span><span class="s">"images/ix_startm.gif"</span><span class="k3">&gt;</span><span class="k3">&lt;</span>input type<span class="k3">=</span><span class="s">"checkbox"</span> name<span class="k3">=</span><span class="s">"option1"</span> value<span class="k3">=</span><span class="s">"Item1"</span><span class="k3">&gt;</span>Item1<span class="k3">&lt;</span><span class="k3">/</span>div&gt;
<span class="k3">&lt;</span>div&gt;<span class="k3">&lt;</span>img src<span class="k3">=</span><span class="s">"images/ix_space.gif"</span><span class="k3">&gt;</span><span class="k3">&lt;</span>img src<span class="k3">=</span><span class="s">"images/ix_list.gif"</span><span class="k3">&gt;</span><span class="k3">&lt;</span>input type<span class="k3">=</span><span class="s">"checkbox"</span> name<span class="k3">=</span><span class="s">"option2"</span> value<span class="k3">=</span><span class="s">"SubItem2"</span><span class="k3">&gt;</span>SubItem2<span class="k3">&lt;</span><span class="k3">/</span>div&gt;
<span class="k3">&lt;</span>div&gt;<span class="k3">&lt;</span>img src<span class="k3">=</span><span class="s">"images/ix_space.gif"</span><span class="k3">&gt;</span><span class="k3">&lt;</span>img src<span class="k3">=</span><span class="s">"images/ix_list.gif"</span><span class="k3">&gt;</span><span class="k3">&lt;</span>input type<span class="k3">=</span><span class="s">"checkbox"</span> name<span class="k3">=</span><span class="s">"option3"</span> value<span class="k3">=</span><span class="s">"SubItem3"</span><span class="k3">&gt;</span>SubItem3<span class="k3">&lt;</span><span class="k3">/</span>div&gt;
<span class="k3">&lt;</span>div&gt;<span class="k3">&lt;</span>img src<span class="k3">=</span><span class="s">"images/ix_space.gif"</span><span class="k3">&gt;</span><span class="k3">&lt;</span>img src<span class="k3">=</span><span class="s">"images/ix_end.gif"</span><span class="k3">&gt;</span><span class="k3">&lt;</span>input type<span class="k3">=</span><span class="s">"checkbox"</span> name<span class="k3">=</span><span class="s">"option4"</span> value<span class="k3">=</span><span class="s">"SubItem4"</span><span class="k3">&gt;</span>SubItem4<span class="k3">&lt;</span><span class="k3">/</span>div&gt;
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Tue, 13 Feb 2007 08:34:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, obviously the check box has a size that is larger than the image <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Tue, 13 Feb 2007 08:42:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>... and how do I resize it?<br />[edit]<br />... it&#39;s not the checkbox causing the issue, I changed the css to 10px which shrank the checkbox but the gaps still remain.<br />[/edit]
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Tue, 13 Feb 2007 08:45:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Open up your DOM Inspector and click all the elements. The one with the blinking border in the wrong spot is causing your problem <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Tue, 13 Feb 2007 20:00:35 +0000</pubDate>
	</item>
</rss>
