All Downloads are FREE. Search and download functionalities are using the official Maven repository.
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.
com.tcdng.unify.web.ui.widget.control.TreeExplorer Maven / Gradle / Ivy
/*
* Copyright 2018-2023 The Code Department.
*
* 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 com.tcdng.unify.web.ui.widget.control;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.tcdng.unify.core.UnifyException;
import com.tcdng.unify.core.annotation.Component;
import com.tcdng.unify.core.annotation.UplAttribute;
import com.tcdng.unify.core.annotation.UplAttributes;
import com.tcdng.unify.core.data.MarkedTree.Node;
import com.tcdng.unify.core.upl.UplElementReferences;
import com.tcdng.unify.core.util.DataUtils;
import com.tcdng.unify.core.util.StringUtils;
import com.tcdng.unify.web.TargetPath;
import com.tcdng.unify.web.annotation.Action;
import com.tcdng.unify.web.ui.widget.AbstractMultiControl;
import com.tcdng.unify.web.ui.widget.Control;
import com.tcdng.unify.web.ui.widget.data.Tree;
import com.tcdng.unify.web.ui.widget.data.TreeEvent;
import com.tcdng.unify.web.ui.widget.data.TreeEventType;
import com.tcdng.unify.web.ui.widget.data.TreeItem;
import com.tcdng.unify.web.ui.widget.data.TreeItemTypeInfo;
import com.tcdng.unify.web.ui.widget.data.TreeMenuItemInfo;
import com.tcdng.unify.web.ui.widget.data.TreePolicy;
import com.tcdng.unify.web.ui.widget.data.TreeTypeInfo.ExtendedTreeItemTypeInfo;
/**
* Represents a tree explorer control.
*
* @author The Code Department
* @since 1.0
*/
@Component("ui-treeexplorer")
@UplAttributes({ @UplAttribute(name = "collapsedIcon", type = String.class, defaultVal = "$t{images/collapsed.png}"),
@UplAttribute(name = "expandedIcon", type = String.class, defaultVal = "$t{images/expanded.png}"),
@UplAttribute(name = "treeEventPath", type = String.class),
@UplAttribute(name = "dataComponents", type = UplElementReferences.class) })
public class TreeExplorer extends AbstractMultiControl {
private Control eventTypeCtrl;
private Control menuCodeCtrl;
private Control selectedItemIdsCtrl;
private Control selectedCtrlIdCtrl;
private Control dropTrgItemIdCtrl;
private Control dropSrcIdCtrl;
private Control dropSrcItemIdsCtrl;
private TreeEventType eventType;
private String menuCode;
private List singleSelectedItemId;
private Long selectedCtrlId;
private Long dropTrgItemId;
private String dropSrcId;
private String dropSrcItemIds;
private Tree tree;
@Override
public void addPageAliases() throws UnifyException {
addPageAlias(menuCodeCtrl);
addPageAlias(selectedItemIdsCtrl);
addPageAlias(selectedCtrlIdCtrl);
addPageAlias(dropTrgItemIdCtrl);
addPageAlias(dropSrcIdCtrl);
addPageAlias(dropSrcItemIdsCtrl);
addPageAlias(eventTypeCtrl);
}
@Action
public void collapse() throws UnifyException {
tree.collapse(selectedCtrlId);
}
@Action
public void expand() throws UnifyException {
tree.expand(selectedCtrlId);
}
@SuppressWarnings("unchecked")
@Action
public void executeEventPath() throws UnifyException {
String treeEventPath = getTreeEventPath();
if (StringUtils.isNotBlank(treeEventPath)) {
if (TreeEventType.TREEITEM_DROP.equals(eventType)) {
String srcLongName = getPageManager().getLongName(dropSrcId);
List srcItemIdList =
DataUtils.convert(List.class, Long.class, StringUtils.commaSplit(dropSrcItemIds));
tree.registerEvent(eventType, dropTrgItemId, srcLongName, srcItemIdList);
} else {
tree.registerEvent(eventType, menuCode);
}
setCommandResponsePath(new TargetPath(treeEventPath));
menuCode = null;
}
}
public void setTree(Tree tree) throws UnifyException {
this.tree = tree;
}
public TreePolicy getTreePolicy() {
return tree.getTreePolicy();
}
public String getCollapsedIcon() throws UnifyException {
return getUplAttribute(String.class, "collapsedIcon");
}
public String getExpandedIcon() throws UnifyException {
return getUplAttribute(String.class, "expandedIcon");
}
public String getTreeEventPath() throws UnifyException {
return getUplAttribute(String.class, "treeEventPath");
}
public String getMenuId() throws UnifyException {
return getPrefixedId("m_");
}
public String getMenuBaseId() throws UnifyException {
return getPrefixedId("mb_");
}
public String getMenuSeperatorId() throws UnifyException {
return getPrefixedId("sp_");
}
public Control getEventTypeCtrl() {
return eventTypeCtrl;
}
public Control getMenuCodeCtrl() {
return menuCodeCtrl;
}
public Control getSelectedItemIdsCtrl() {
return selectedItemIdsCtrl;
}
public Control getSelectedCtrlIdCtrl() {
return selectedCtrlIdCtrl;
}
public Control getDropTrgItemIdCtrl() {
return dropTrgItemIdCtrl;
}
public Control getDropSrcIdCtrl() {
return dropSrcIdCtrl;
}
public Control getDropSrcItemIdsCtrl() {
return dropSrcItemIdsCtrl;
}
public TreeEventType getEventType() {
return eventType;
}
public void setEventType(TreeEventType eventType) {
this.eventType = eventType;
}
public Long getDropTrgItemId() {
return dropTrgItemId;
}
public void setDropTrgItemId(Long dropTrgItemId) {
this.dropTrgItemId = dropTrgItemId;
}
public String getDropSrcId() {
return dropSrcId;
}
public void setDropSrcId(String dropSrcId) {
this.dropSrcId = dropSrcId;
}
public String getDropSrcItemIds() {
return dropSrcItemIds;
}
public void setDropSrcItemIds(String dropSrcItemIds) {
this.dropSrcItemIds = dropSrcItemIds;
}
public String getMenuCode() {
return menuCode;
}
public void setMenuCode(String menuCode) {
this.menuCode = menuCode;
}
public Long getSelectedCtrlId() {
return selectedCtrlId;
}
public void setSelectedCtrlId(Long selectedCtrlId) {
this.selectedCtrlId = selectedCtrlId;
}
public List getSelectedItemIds() {
return tree.getSelectedItems();
}
public void setSelectedItemIds(List selectedItemIds) {
tree.setSelectedItems(selectedItemIds);
}
public void setSelectedItem(Long itemId) {
singleSelectedItemId.set(0, itemId);
setSelectedItemIds(singleSelectedItemId);
}
public String getControlImgIdBase() throws UnifyException {
return getPrefixedId("ctrl_");
}
public String getIconIdBase() throws UnifyException {
return getPrefixedId("icon_");
}
public String getCaptionIdBase() throws UnifyException {
return getPrefixedId("cap_");
}
public Long addTreeItem(Long parentItemId, String itemTypeCode, Object item) throws UnifyException {
return tree.addTreeItem(parentItemId, itemTypeCode, item);
}
public TreeItemTypeInfo getTreeItemTypeInfo(String itemTypeCode) {
return tree.getTreeItemTypeInfo(itemTypeCode);
}
public Node getRootNode() {
return tree.getRootNode();
}
public Node getParentNode(Long itemId) {
return tree.getParentNode(itemId);
}
public Node getNode(Long itemId) {
return tree.getNode(itemId);
}
public Node getNode(TreeEvent treeEvent, int index) {
return tree.getNode(treeEvent, index);
}
public TreeItem getTreeItem(Long itemId) {
return tree.getTreeItem(itemId);
}
public TreeItem getTreeItem(TreeEvent treeEvent, int index) {
return tree.getTreeItem(treeEvent, index);
}
public TreeItem removeTreeItem(Long mark) throws UnifyException {
return tree.removeTreeItem(mark);
}
public int itemCount() {
return tree.itemCount();
}
public Collection getExtendedTreeItemTypeInfos() {
return tree.getExtendedTreeItemTypeInfos();
}
public List getMenuItemInfoList() {
return tree.getMenuItemInfoList();
}
public boolean hasMenu() {
return tree.isMenuItemList();
}
public TreeEvent getEvent() {
return tree.getEvent();
}
public List getMultiSelectMenuSequence() {
return tree.getMultiSelectMenuSequence();
}
public boolean isMultiSelectMenu() {
return tree.isMultiSelectMenu();
}
@Override
protected void doOnPageConstruct() throws UnifyException {
eventTypeCtrl = (Control) addInternalChildWidget("!ui-hidden binding:eventType");
menuCodeCtrl = (Control) addInternalChildWidget("!ui-hidden binding:menuCode");
selectedItemIdsCtrl = (Control) addInternalChildWidget("!ui-hidden binding:selectedItemIds");
selectedCtrlIdCtrl = (Control) addInternalChildWidget("!ui-hidden binding:selectedCtrlId");
dropTrgItemIdCtrl = (Control) addInternalChildWidget("!ui-hidden binding:dropTrgItemId");
dropSrcIdCtrl = (Control) addInternalChildWidget("!ui-hidden binding:dropSrcId");
dropSrcItemIdsCtrl = (Control) addInternalChildWidget("!ui-hidden binding:dropSrcItemIds");
singleSelectedItemId = new ArrayList(1);
singleSelectedItemId.add(null);
}
}