Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.primefaces.component.tree.Tree Maven / Gradle / Ivy
/*
* Generated, Do Not Modify
*/
/*
* Copyright 2009-2013 PrimeTek.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.primefaces.component.tree;
import org.primefaces.component.api.UITree;
import javax.faces.context.FacesContext;
import javax.faces.component.UINamingContainer;
import javax.el.ValueExpression;
import javax.el.MethodExpression;
import javax.faces.render.Renderer;
import java.io.IOException;
import javax.faces.component.UIComponent;
import javax.faces.event.AbortProcessingException;
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
import java.util.List;
import java.util.ArrayList;
import org.primefaces.event.NodeSelectEvent;
import org.primefaces.event.NodeUnselectEvent;
import org.primefaces.event.NodeExpandEvent;
import org.primefaces.event.NodeCollapseEvent;
import org.primefaces.event.TreeDragDropEvent;
import javax.faces.component.UIComponent;
import java.util.Map;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.HashMap;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.lang.StringBuilder;
import javax.faces.context.FacesContext;
import org.primefaces.model.TreeNode;
import javax.faces.event.FacesEvent;
import javax.faces.event.AjaxBehaviorEvent;
import javax.faces.event.PhaseId;
import org.primefaces.component.tree.UITreeNode;
import org.primefaces.util.Constants;
import org.primefaces.model.TreeNode;
@ResourceDependencies({
@ResourceDependency(library="primefaces", name="primefaces.css"),
@ResourceDependency(library="primefaces", name="jquery/jquery.js"),
@ResourceDependency(library="primefaces", name="jquery/jquery-plugins.js"),
@ResourceDependency(library="primefaces", name="primefaces.js")
})
public class Tree extends UITree implements org.primefaces.component.api.Widget,org.primefaces.component.api.RTLAware,javax.faces.component.behavior.ClientBehaviorHolder {
public static final String COMPONENT_TYPE = "org.primefaces.component.Tree";
public static final String COMPONENT_FAMILY = "org.primefaces.component";
private static final String DEFAULT_RENDERER = "org.primefaces.component.TreeRenderer";
protected enum PropertyKeys {
widgetVar
,dynamic
,cache
,onNodeClick
,style
,styleClass
,highlight
,datakey
,animate
,orientation
,propagateSelectionUp
,propagateSelectionDown
,dir
,draggable
,droppable
,dragdropScope
,dragMode
,dropRestrict
,tabindex;
String toString;
PropertyKeys(String toString) {
this.toString = toString;
}
PropertyKeys() {}
public String toString() {
return ((this.toString != null) ? this.toString : super.toString());
}
}
public Tree() {
setRendererType(DEFAULT_RENDERER);
}
public String getFamily() {
return COMPONENT_FAMILY;
}
public java.lang.String getWidgetVar() {
return (java.lang.String) getStateHelper().eval(PropertyKeys.widgetVar, null);
}
public void setWidgetVar(java.lang.String _widgetVar) {
getStateHelper().put(PropertyKeys.widgetVar, _widgetVar);
}
public boolean isDynamic() {
return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.dynamic, false);
}
public void setDynamic(boolean _dynamic) {
getStateHelper().put(PropertyKeys.dynamic, _dynamic);
}
public boolean isCache() {
return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.cache, true);
}
public void setCache(boolean _cache) {
getStateHelper().put(PropertyKeys.cache, _cache);
}
public java.lang.String getOnNodeClick() {
return (java.lang.String) getStateHelper().eval(PropertyKeys.onNodeClick, null);
}
public void setOnNodeClick(java.lang.String _onNodeClick) {
getStateHelper().put(PropertyKeys.onNodeClick, _onNodeClick);
}
public java.lang.String getStyle() {
return (java.lang.String) getStateHelper().eval(PropertyKeys.style, null);
}
public void setStyle(java.lang.String _style) {
getStateHelper().put(PropertyKeys.style, _style);
}
public java.lang.String getStyleClass() {
return (java.lang.String) getStateHelper().eval(PropertyKeys.styleClass, null);
}
public void setStyleClass(java.lang.String _styleClass) {
getStateHelper().put(PropertyKeys.styleClass, _styleClass);
}
public boolean isHighlight() {
return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.highlight, true);
}
public void setHighlight(boolean _highlight) {
getStateHelper().put(PropertyKeys.highlight, _highlight);
}
public java.lang.Object getDatakey() {
return (java.lang.Object) getStateHelper().eval(PropertyKeys.datakey, null);
}
public void setDatakey(java.lang.Object _datakey) {
getStateHelper().put(PropertyKeys.datakey, _datakey);
}
public boolean isAnimate() {
return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.animate, false);
}
public void setAnimate(boolean _animate) {
getStateHelper().put(PropertyKeys.animate, _animate);
}
public java.lang.String getOrientation() {
return (java.lang.String) getStateHelper().eval(PropertyKeys.orientation, "vertical");
}
public void setOrientation(java.lang.String _orientation) {
getStateHelper().put(PropertyKeys.orientation, _orientation);
}
public boolean isPropagateSelectionUp() {
return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.propagateSelectionUp, true);
}
public void setPropagateSelectionUp(boolean _propagateSelectionUp) {
getStateHelper().put(PropertyKeys.propagateSelectionUp, _propagateSelectionUp);
}
public boolean isPropagateSelectionDown() {
return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.propagateSelectionDown, true);
}
public void setPropagateSelectionDown(boolean _propagateSelectionDown) {
getStateHelper().put(PropertyKeys.propagateSelectionDown, _propagateSelectionDown);
}
public java.lang.String getDir() {
return (java.lang.String) getStateHelper().eval(PropertyKeys.dir, "ltr");
}
public void setDir(java.lang.String _dir) {
getStateHelper().put(PropertyKeys.dir, _dir);
}
public boolean isDraggable() {
return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.draggable, false);
}
public void setDraggable(boolean _draggable) {
getStateHelper().put(PropertyKeys.draggable, _draggable);
}
public boolean isDroppable() {
return (java.lang.Boolean) getStateHelper().eval(PropertyKeys.droppable, false);
}
public void setDroppable(boolean _droppable) {
getStateHelper().put(PropertyKeys.droppable, _droppable);
}
public java.lang.String getDragdropScope() {
return (java.lang.String) getStateHelper().eval(PropertyKeys.dragdropScope, null);
}
public void setDragdropScope(java.lang.String _dragdropScope) {
getStateHelper().put(PropertyKeys.dragdropScope, _dragdropScope);
}
public java.lang.String getDragMode() {
return (java.lang.String) getStateHelper().eval(PropertyKeys.dragMode, "self");
}
public void setDragMode(java.lang.String _dragMode) {
getStateHelper().put(PropertyKeys.dragMode, _dragMode);
}
public java.lang.String getDropRestrict() {
return (java.lang.String) getStateHelper().eval(PropertyKeys.dropRestrict, "none");
}
public void setDropRestrict(java.lang.String _dropRestrict) {
getStateHelper().put(PropertyKeys.dropRestrict, _dropRestrict);
}
public int getTabindex() {
return (java.lang.Integer) getStateHelper().eval(PropertyKeys.tabindex, 0);
}
public void setTabindex(int _tabindex) {
getStateHelper().put(PropertyKeys.tabindex, _tabindex);
}
private static final Collection EVENT_NAMES = Collections.unmodifiableCollection(Arrays.asList("select","unselect", "expand", "collapse", "dragdrop", "contextMenu"));
private Map nodes;
public UITreeNode getUITreeNodeByType(String type) {
UITreeNode node = getTreeNodes().get(type);
if(node == null)
throw new javax.faces.FacesException("Unsupported tree node type:" + type);
else
return node;
}
private boolean isRequestSource(FacesContext context) {
return this.getClientId(context).equals(context.getExternalContext().getRequestParameterMap().get(Constants.RequestParams.PARTIAL_SOURCE_PARAM));
}
public boolean isNodeExpandRequest(FacesContext context) {
return context.getExternalContext().getRequestParameterMap().containsKey(this.getClientId(context) + "_expandNode");
}
public boolean isSelectionRequest(FacesContext context) {
return context.getExternalContext().getRequestParameterMap().containsKey(this.getClientId(context) + "_instantSelection");
}
public static String CONTAINER_CLASS = "ui-tree ui-widget ui-widget-content ui-corner-all";
public static String CONTAINER_RTL_CLASS = "ui-tree ui-tree-rtl ui-widget ui-widget-content ui-corner-all";
public static String HORIZONTAL_CONTAINER_CLASS = "ui-tree ui-tree-horizontal ui-widget ui-widget-content ui-corner-all";
public static String ROOT_NODES_CLASS = "ui-tree-container";
public static String PARENT_NODE_CLASS = "ui-treenode ui-treenode-parent";
public static String LEAF_NODE_CLASS = "ui-treenode ui-treenode-leaf";
public static String CHILDREN_NODES_CLASS = "ui-treenode-children";
public static String NODE_CONTENT_CLASS_V = "ui-treenode-content";
public static String SELECTABLE_NODE_CONTENT_CLASS_V = "ui-treenode-content ui-tree-selectable";
public static String NODE_CONTENT_CLASS_H = "ui-treenode-content ui-state-default ui-corner-all";
public static String SELECTABLE_NODE_CONTENT_CLASS_H = "ui-treenode-content ui-tree-selectable ui-state-default ui-corner-all";
public static String EXPANDED_ICON_CLASS_V = "ui-tree-toggler ui-icon ui-icon-triangle-1-s";
public static String COLLAPSED_ICON_CLASS_V = "ui-tree-toggler ui-icon ui-icon-triangle-1-e";
public static String COLLAPSED_ICON_RTL_CLASS_V = "ui-tree-toggler ui-icon ui-icon-triangle-1-w";
public static String EXPANDED_ICON_CLASS_H = "ui-tree-toggler ui-icon ui-icon-minus";
public static String COLLAPSED_ICON_CLASS_H = "ui-tree-toggler ui-icon ui-icon-plus";
public static String LEAF_ICON_CLASS = "ui-treenode-leaf-icon";
public static String NODE_ICON_CLASS = "ui-treenode-icon ui-icon";
public static String NODE_LABEL_CLASS = "ui-treenode-label ui-corner-all";
public Map getTreeNodes() {
if(nodes == null) {
nodes = new HashMap();
for(UIComponent child : getChildren()) {
UITreeNode node = (UITreeNode) child;
nodes.put(node.getType(), node);
}
}
return nodes;
}
@Override
public Collection getEventNames() {
return EVENT_NAMES;
}
@Override
public void queueEvent(FacesEvent event) {
FacesContext context = getFacesContext();
if(isRequestSource(context) && event instanceof AjaxBehaviorEvent) {
Map params = context.getExternalContext().getRequestParameterMap();
String eventName = params.get(Constants.RequestParams.PARTIAL_BEHAVIOR_EVENT_PARAM);
String clientId = this.getClientId(context);
FacesEvent wrapperEvent = null;
AjaxBehaviorEvent behaviorEvent = (AjaxBehaviorEvent) event;
if(eventName.equals("expand")) {
this.setRowKey(params.get(clientId + "_expandNode"));
TreeNode expandedNode = this.getRowNode();
expandedNode.setExpanded(true);
wrapperEvent = new NodeExpandEvent(this, behaviorEvent.getBehavior(), expandedNode);
}
else if(eventName.equals("collapse")) {
this.setRowKey(params.get(clientId + "_collapseNode"));
TreeNode collapsedNode = this.getRowNode();
collapsedNode.setExpanded(false);
wrapperEvent = new NodeCollapseEvent(this, behaviorEvent.getBehavior(), collapsedNode);
}
else if(eventName.equals("select")) {
setRowKey(params.get(clientId + "_instantSelection"));
wrapperEvent = new NodeSelectEvent(this, behaviorEvent.getBehavior(), this.getRowNode());
}
else if(eventName.equals("unselect")) {
setRowKey(params.get(clientId + "_instantUnselection"));
wrapperEvent = new NodeUnselectEvent(this, behaviorEvent.getBehavior(), this.getRowNode());
}
else if(eventName.equals("dragdrop")) {
int dndIndex = Integer.parseInt(params.get(clientId + "_dndIndex"));
wrapperEvent = new TreeDragDropEvent(this, behaviorEvent.getBehavior(), dragNode, dropNode, dndIndex);
}
else if(eventName.equals("contextMenu")) {
setRowKey(params.get(clientId + "_contextMenuNode"));
wrapperEvent = new NodeSelectEvent(this, behaviorEvent.getBehavior(), this.getRowNode(), true);
}
wrapperEvent.setPhaseId(behaviorEvent.getPhaseId());
super.queueEvent(wrapperEvent);
this.setRowKey(null);
}
else {
super.queueEvent(event);
}
}
private boolean isToggleRequest(FacesContext context) {
Map params = context.getExternalContext().getRequestParameterMap();
String clientId = getClientId(context);
return params.get(clientId + "_expandNode") != null || params.get(clientId + "_collapseNode") != null;
}
public boolean isDragDropRequest(FacesContext context) {
Map params = context.getExternalContext().getRequestParameterMap();
String clientId = getClientId(context);
String source = context.getExternalContext().getRequestParameterMap().get(Constants.RequestParams.PARTIAL_SOURCE_PARAM);
return clientId.equals(source) && params.get(clientId + "_dragdrop") != null;
}
@Override
public void processDecodes(FacesContext context) {
if(isToggleRequest(context)) {
this.decode(context);
}
else {
super.processDecodes(context);
}
}
@Override
public void processValidators(FacesContext context) {
if(!isToggleRequest(context)) {
super.processValidators(context);
}
}
@Override
public void processUpdates(FacesContext context) {
if(isToggleRequest(context)) {
this.updateSelection(context);
}
else {
super.processUpdates(context);
}
}
public boolean isCheckboxSelection() {
String selectionMode = this.getSelectionMode();
return selectionMode != null && selectionMode.equals("checkbox");
}
public boolean isRTL() {
return this.getDir().equalsIgnoreCase("rtl");
}
private TreeNode dragNode;
private TreeNode dropNode;
TreeNode getDragNode() {
return dragNode;
}
void setDragNode(TreeNode dragNode) {
this.dragNode = dragNode;
}
TreeNode getDropNode() {
return dropNode;
}
void setDropNode(TreeNode dropNode) {
this.dropNode = dropNode;
}
@Override
protected boolean shouldVisitNode(TreeNode node) {
return this.isDynamic() ? (node.isExpanded() || node.getParent() == null) : true;
}
@Override
protected void processColumnChildren(FacesContext context, PhaseId phaseId, String nodeKey) {
setRowKey(nodeKey);
TreeNode treeNode = this.getRowNode();
if(treeNode == null)
return;
String treeNodeType = treeNode.getType();
for(UIComponent child : getChildren()) {
if(child instanceof UITreeNode && child.isRendered()) {
UITreeNode uiTreeNode = (UITreeNode) child;
if(!treeNodeType.equals(uiTreeNode.getType()))
continue;
for(UIComponent grandkid : child.getChildren()) {
if(!grandkid.isRendered())
continue;
if(phaseId == PhaseId.APPLY_REQUEST_VALUES)
grandkid.processDecodes(context);
else if(phaseId == PhaseId.PROCESS_VALIDATIONS)
grandkid.processValidators(context);
else if(phaseId == PhaseId.UPDATE_MODEL_VALUES)
grandkid.processUpdates(context);
else
throw new IllegalArgumentException();
}
}
}
}
public String resolveWidgetVar() {
FacesContext context = getFacesContext();
String userWidgetVar = (String) getAttributes().get("widgetVar");
if(userWidgetVar != null)
return userWidgetVar;
else
return "widget_" + getClientId(context).replaceAll("-|" + UINamingContainer.getSeparatorChar(context), "_");
}
}