package com.idega.content.themes.presentation; import javax.el.ValueExpression; import javax.faces.component.UIComponent; import javax.faces.webapp.UIComponentELTag; import org.apache.myfaces.custom.tree2.TreeNode; import com.idega.presentation.IWContext; import com.idega.util.CoreUtil; import com.idega.webface.IWTree; import com.idega.webface.WFUtil; public class SiteTreeViewerTag extends UIComponentELTag { private TreeNode rootNode = null; private String rootNodeExpression = null; private String linkStyleClass = "pageTreeNames"; private String iwTreeId = "current_structure_tree"; private String rendererType = IWTree.class.getName(); private String facetName = "PageTreeNode"; private String varName = "node"; private boolean sourceTree = false; private boolean showRootNode = false; private boolean showLines = false; private boolean addStyleClassForLink = true; @Override public String getComponentType() { return SiteTreeViewer.COMPONENT_TYPE; } @Override public String getRendererType() { return null; } @Override protected void setProperties(UIComponent component) { if (component instanceof SiteTreeViewer) { if (rootNodeExpression == null) { new IllegalArgumentException("Provide root node"); } Object o = null; IWContext iwc = CoreUtil.getIWContext(); if (iwc == null) { return; } ValueExpression ve = WFUtil.createValueExpression(getELContext(), rootNodeExpression, TreeNode.class); o = ve.getValue(getELContext()); if (!(o instanceof TreeNode)) { new IllegalArgumentException("Provide root node"); } rootNode = (TreeNode) o; SiteTreeViewer treeViewer = (SiteTreeViewer) component; treeViewer.setRootNode(rootNode); treeViewer.setLinkStyleClass(linkStyleClass); treeViewer.setIwTreeId(iwTreeId); treeViewer.setRendererType(rendererType); treeViewer.setFacetName(facetName); treeViewer.setVarName(varName); treeViewer.setSourceTree(sourceTree); treeViewer.setShowRootNode(showRootNode); treeViewer.setShowLines(showLines); treeViewer.setAddStyleClassForLink(addStyleClassForLink); } } public String getRootNodeExpression() { return rootNodeExpression; } public void setRootNodeExpression(String rootNodeExpression) { this.rootNodeExpression = rootNodeExpression; } public String getLinkStyleClass() { return linkStyleClass; } public void setLinkStyleClass(String linkStyleClass) { this.linkStyleClass = linkStyleClass; } public String getIwTreeId() { return iwTreeId; } public void setIwTreeId(String iwTreeId) { this.iwTreeId = iwTreeId; } @Override public String getFacetName() { return facetName; } public void setFacetName(String facetName) { this.facetName = facetName; } public String getVarName() { return varName; } public void setVarName(String varName) { this.varName = varName; } public boolean isSourceTree() { return sourceTree; } public void setSourceTree(boolean sourceTree) { this.sourceTree = sourceTree; } public boolean isShowRootNode() { return showRootNode; } public void setShowRootNode(boolean showRootNode) { this.showRootNode = showRootNode; } public boolean isShowLines() { return showLines; } public void setShowLines(boolean showLines) { this.showLines = showLines; } public boolean isAddStyleClassForLink() { return addStyleClassForLink; } public void setAddStyleClassForLink(boolean addStyleClassForLink) { this.addStyleClassForLink = addStyleClassForLink; } public void setRendererType(String rendererType) { this.rendererType = rendererType; } }