You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ge...@apache.org on 2010/01/11 04:48:14 UTC
svn commit: r897751 -
/geronimo/server/branches/2.2/plugins/console/console-portal-driver/src/main/webapp/WEB-INF/themes/navigation.jsp
Author: genspring
Date: Mon Jan 11 03:48:14 2010
New Revision: 897751
URL: http://svn.apache.org/viewvc?rev=897751&view=rev
Log:
GERONIMO-4994 expand and select tree node automatically when open menu item from quick launcher
Modified:
geronimo/server/branches/2.2/plugins/console/console-portal-driver/src/main/webapp/WEB-INF/themes/navigation.jsp
Modified: geronimo/server/branches/2.2/plugins/console/console-portal-driver/src/main/webapp/WEB-INF/themes/navigation.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.2/plugins/console/console-portal-driver/src/main/webapp/WEB-INF/themes/navigation.jsp?rev=897751&r1=897750&r2=897751&view=diff
==============================================================================
--- geronimo/server/branches/2.2/plugins/console/console-portal-driver/src/main/webapp/WEB-INF/themes/navigation.jsp (original)
+++ geronimo/server/branches/2.2/plugins/console/console-portal-driver/src/main/webapp/WEB-INF/themes/navigation.jsp Mon Jan 11 03:48:14 2010
@@ -67,6 +67,8 @@
<script type="text/javascript">
+<%-- scripts to create the navigation tree--%>
+
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dijit.Tree");
@@ -77,6 +79,8 @@
var treeData = <%=treeJson%>;
var listData = <%=listJson%>;
+ var treeStore;
+ var navigationTree;
function load() {
@@ -90,7 +94,7 @@
});
- var treeStore = new dojo.data.ItemFileReadStore
+ treeStore = new dojo.data.ItemFileReadStore
({
data: {
identifier: 'id',
@@ -104,7 +108,7 @@
store: treeStore
});
- var navigationTree = new dijit.Tree
+ navigationTree = new dijit.Tree
(
{ model: treeModel,
showRoot: false,
@@ -154,6 +158,7 @@
anchorName = anchors[i].innerHTML;
if ( anchorName == portalPageName) {
displayPortlets(anchors[i]);
+ findAndSelect(portalPageName,navigationTree.rootNode);
return;
}
}
@@ -175,6 +180,65 @@
dojo.addOnLoad(load);
+
+
+<%-- scripts to expand and select tree node automatically when open menu item from quick launcher --%>
+
+
+function findAndSelect(key, rootNode)
+ {
+
+ var nodes = [];
+
+ if(findRecur(rootNode.item.children, key, nodes))
+ {
+ select(nodes);
+ }
+ }
+
+
+function findRecur(items, key, nodes)
+ {
+ for (var child = 0; child < items.length; child++) {
+
+ nodes.push(items[child]);
+ var label = treeStore.getLabel(items[child]);
+ if (label && label.indexOf(key) != -1)
+ return true;
+
+ if (items[child].children && findRecur(items[child].children, key, nodes))
+ return true;
+ nodes.pop();
+ }
+ return false;
+ }
+
+function select(nodes)
+ {
+ var i;
+ function expandParent(node)
+ {
+ if(node && !node.isExpanded)
+ {
+ expandParent(node.getParent());
+ navigationTree._expandNode(node);
+ }
+ }
+ //make sure the ancestor node expanded before
+ expandParent(navigationTree._itemNodeMap[treeStore.getIdentity(nodes[0])].getParent());
+ for (i = 0;;i++) {
+ node = navigationTree._itemNodeMap[treeStore.getIdentity(nodes[i])];
+ if(i < nodes.length-1)
+ navigationTree._expandNode(node);
+ else
+ {
+ navigationTree.focusNode(node);
+ return node;
+ }
+ }
+ }
+
</script>
+