[jboss-user] [JBoss Seam] - Re: left tree - explorer like application

christian.bauer@jboss.com do-not-reply at jboss.com
Wed Sep 26 10:43:23 EDT 2007


http://fisheye.jboss.com/browse/~raw,r=1.1/JBoss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/nestedset/package.html

http://fisheye.jboss.com/browse/JBoss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/nestedset


  |     public TreeNode getTree() {
  |         if (directoryTree == null) {
  |             directoryTree = new WikiTreeNodeAdapter(getInstance(), getNodeDAO().getComparatorDisplayPosition(), 2l);
  |             directoryTree.loadChildren();
  |         }
  |     }
  | 


  |     <h:form id="dirTree" rendered="false">
  |         <ui:include src="includes/statusIndicator.xhtml"/>
  | 
  |         #{directoryHome.instance.name}:
  |         <rich:tree value="#{directoryHome.tree}" var="nodeWrapper"
  |                    switchType="ajax" status="dirTree\:status"
  |                    nodeFace="#{wiki:getType(nodeWrapper.wrappedNode)}">
  | 
  |             <rich:treeNode type="Directory">
  |                 <f:facet name="icon">
  |                     <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/icon.dir.gif" width="18" height="20"/>
  |                 </f:facet>
  |                 <f:facet name="iconLeaf">
  |                     <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/icon.dir.gif" width="18" height="20"/>
  |                 </f:facet>
  |                 <h:outputText value="#{nodeWrapper.wrappedNode.name}"/> (#{nodeWrapper.level})
  |             </rich:treeNode>
  | 
  |             <rich:treeNode type="Document">
  |                 <f:facet name="icon">
  |                     <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/icon.doc.gif" width="18" height="20"
  |                                     rendered="#{nodeWrapper.wrappedNode != nodeWrapper.wrappedParent.wrappedNode.defaultDocument}"/>
  |                     <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/icon.doc.default.gif" width="18" height="20"
  |                                     rendered="#{nodeWrapper.wrappedNode == nodeWrapper.wrappedParent.wrappedNode.defaultDocument}"/>
  |                 </f:facet>
  |                 <f:facet name="iconLeaf">
  |                     <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/icon.doc.gif" width="18" height="20"
  |                                     rendered="#{nodeWrapper.wrappedNode != nodeWrapper.wrappedParent.wrappedNode.defaultDocument}"/>
  |                     <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/icon.doc.default.gif" width="18" height="20"
  |                                     rendered="#{nodeWrapper.wrappedNode == nodeWrapper.wrappedParent.wrappedNode.defaultDocument}"/>
  |                 </f:facet>
  |                 <h:outputText value="#{nodeWrapper.wrappedNode.name}"/> (#{nodeWrapper.level})
  |             </rich:treeNode>
  | 
  |             <rich:treeNode type="File">
  |                 <f:facet name="icon">
  |                     <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/#{fileMetaMap[nodeWrapper.wrappedNode.contentType].displayIcon}"
  |                                     width="18" height="20"
  |                                     rendered="#{!empty fileMetaMap[nodeWrapper.wrappedNode.contentType]}"/>
  |                     <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/#{fileMetaMap['generic'].displayIcon}"
  |                                     width="18" height="20"
  |                                     rendered="#{empty fileMetaMap[nodeWrapper.wrappedNode.contentType]}"/>
  |                 </f:facet>
  |                 <f:facet name="iconLeaf">
  |                     <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/#{fileMetaMap[nodeWrapper.wrappedNode.contentType].displayIcon}"
  |                                     width="18" height="20"
  |                                     rendered="#{!empty fileMetaMap[nodeWrapper.wrappedNode.contentType]}"/>
  |                     <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/#{fileMetaMap['generic'].displayIcon}"
  |                                     width="18" height="20"
  |                                     rendered="#{empty fileMetaMap[nodeWrapper.wrappedNode.contentType]}"/>
  |                 </f:facet>
  |                 <h:outputText value="#{nodeWrapper.wrappedNode.name}"/> (#{nodeWrapper.level})
  |             </rich:treeNode>
  | 
  |         </rich:tree>
  |     </h:form>
  | 

This is high performance read-mostly tree framework with dynamic pre-fetch size for on-demand loading of an arbitrary depth of childrens-children (in a single, very efficient, SQL query).

The UI part is not used right now but you should be able to figure out how it fits together if you look at the source and spend maybe 3 days on it. 

Don't even start thinking about whatever magic Javascript buttons from whatever broken JSF library you click on before you sort out the basics. I am still looking for help implementing moving of tree nodes.



View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4088884#4088884

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4088884



More information about the jboss-user mailing list