<html>
    <head>
        <title></title>
        <style type="text/css" media="screen">
body {font-family: verdana, arial, helvetica, sans-serif;font-size: 12px;padding: 5px;margin: 0;background-color: #FFF;}
p, ul, li {margin-top: 0;margin-bottom: 0;}
blockquote {margin-left: 5px;}
div.signature {color: #666;font-size: 0.9em;}
</style>
    </head>
    <body>
        Hi,<br />I need an idea to build a layertree with consists not only of baselayers and overlaylayers but also of different sublayers like this:<br />1 - background<br />2 - theme 1<br />&nbsp;&nbsp; 2-1 theme 1 subpoint A<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2-1-1 subsubpoint A-a<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2-1-2 subsubpoint A-b<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2-1-3 subsubpoint A-c<br />&nbsp; 2-2 theme 1 subpoint B<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2-2-1 subsubpoint B-a<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2-2-2 subsubpoint B-b<br />3 - theme 2<br />&nbsp; 3-1 theme 2 subpoint A<br />...<br />I mean it should look like a folder structure we know from our own PC.<br /><br />I tried a layout (taken from tree.js from geoext) with OpenLayers, GeoExt and ExtJS but the structure is not going deep enough. The layers at subsubpoints should come from geoserver.<br /><br /><br />My code is like this:<br /><br />var treeConfig = new OpenLayers.Format.JSON().write([{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeType: &quot;gx_baselayercontainer&quot;<br />&nbsp;&nbsp;&nbsp; }, {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeType: &quot;gx_overlaylayercontainer&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expanded: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // render the nodes inside this container with a radio button,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // and assign them the group &quot;foo&quot;.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loader: {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; baseAttrs: {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; radioGroup: &quot;foo&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uiProvider: &quot;layernodeui&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }, {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeType: &quot;gx_layer&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layer: &quot;Europ&auml;ische Union (Gruppe)&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isLeaf: false,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // create subnodes for the layers in the LAYERS param. If we assign<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // a loader to a LayerNode and do not provide a loader class, a<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // LayerParamLoader will be assumed.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loader: {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; param: &quot;LAYERS&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }], true);<br /><br />&nbsp;&nbsp;&nbsp; // create the tree with the configuration from above<br />&nbsp;&nbsp;&nbsp; tree = new Ext.tree.TreePanel({<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; border: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; region: &quot;west&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title: &quot;Ebenen&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width: 200,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; split: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; collapsible: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; collapseMode: &quot;mini&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoScroll: true,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loader: new Ext.tree.TreeLoader({<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // applyLoader has to be set to false to not interfer with loaders<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // of nodes further down the tree hierarchy<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; applyLoader: false,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uiProviders: {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;layernodeui&quot;: LayerNodeUI<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root: {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nodeType: &quot;async&quot;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // the children property of an Ext.tree.AsyncTreeNode is used to<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // provide an initial set of layer nodes. We use the treeConfig<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // from above, that we created with OpenLayers.Format.JSON.write.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; children: Ext.decode(treeConfig)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rootVisible: false,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lines: false<br /><br />&nbsp;&nbsp;&nbsp; });<br /><br />Is there anyone who can help me? There MUST be any possibility to get well structured tree, or?!<br />Thanks<br />Kathrin<br />&nbsp;&nbsp;
    <div class="signature"><br /><br /><br />-- <br />NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie!                <br />Jetzt informieren: http://www.gmx.net/de/go/freephone</div></body>
</html>