package com.vci.client.workflow.task; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.LinkedList; import java.util.List; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.event.TreeExpansionEvent; import javax.swing.event.TreeExpansionListener; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; import com.vci.client.LogonApplication; import com.vci.client.common.TransmitTreeObject; import com.vci.client.common.objects.DeptObject; import com.vci.client.common.objects.RoleObject; import com.vci.client.common.objects.UserObject; import com.vci.client.framework.delegate.RightManagementClientDelegate; import com.vci.client.framework.systemConfig.stafforgmanage.RightManagementTreeCellRenderer; import com.vci.client.ui.exception.VCIException; import com.vci.client.ui.locale.LocaleDisplay; import com.vci.client.ui.swing.VCIOptionPane; import com.vci.client.ui.swing.VCISwingUtil; import com.vci.client.ui.swing.components.VCIJButton; import com.vci.client.ui.swing.components.VCIJDialog; import com.vci.client.ui.tree.VCIBaseTree; import com.vci.client.ui.tree.VCIBaseTreeModel; import com.vci.client.ui.tree.VCIBaseTreeNode; import com.vci.client.workflow.commom.ClientHelper; import com.vci.client.workflow.delegate.ProcessCustomClientDelegate; import com.vci.client.workflow.template.object.ProcessCategoryObject; import com.vci.client.workflow.template.object.ProcessDefinitionObject; import com.vci.client.workflow.template.object.RMTypeObject; public class TaskAssignedForPlatformDialog extends VCIJDialog { private static final long serialVersionUID = 4257732186259993713L; private VCIBaseTree leftTree = null; private VCIBaseTreeModel treeModel = null; private VCIBaseTreeNode rootNode = null; VCIJButton okBtn = VCISwingUtil.createVCIJButton("", "确定", "确定", "ok.gif"); VCIJButton cancelBtn = VCISwingUtil.createVCIJButton("", "取消", "取消", "cancel.gif"); // VCIJLabel lbluser = new VCIJLabel("快速查询:"); // VCIJTextField jtfuser = new VCIJTextField(""); String selectUser = ""; String userDept = ""; private UserObject userInfo; private VCIBaseTreeNode selectNode; private String userValue ; private String roleValue ; private String departmentValue ; private TransmitTreeObject transmitTreeObject = new TransmitTreeObject(); private String type = ""; public String getSelectUser() { return selectUser; } public void setSelectUser(String selectUser) { this.selectUser = selectUser; } private UserObject[] userObjects; private boolean isOk = false; private String[] taskNames,executionIds; public TaskAssignedForPlatformDialog(Frame parent,String[] taskName,String[] executionId) { super(parent, true); this.taskNames = taskName; this.executionIds = executionId; setTitle("选择代办人"); initUI(); addListener(); setSize(280, 320); centerToScreen(); this.setSize(280, 350); this.setVisible(true); } public TaskAssignedForPlatformDialog(Frame parent,String type) { super(parent, true); this.type = type; setTitle("选择代办人"); initUI(); addListener(); setSize(280, 320); centerToScreen(); this.setSize(280, 350); this.setVisible(true); } private void initUI() { JPanel assignPanel = new JPanel(new BorderLayout()); JScrollPane leftScrPane = new JScrollPane(); initLeftPanel(leftScrPane); assignPanel.add(leftScrPane); JPanel btnPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); btnPanel.add(okBtn); btnPanel.add(cancelBtn); JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); // topPanel.add(lbluser); // topPanel.add(jtfuser); getContentPane().add(topPanel,BorderLayout.NORTH); getContentPane().add(assignPanel); getContentPane().add(btnPanel, BorderLayout.SOUTH); } private void initLeftPanel(JScrollPane leftJsp) { String rootObj = "root"; UserObject user = LogonApplication.getUserObject(); RightManagementClientDelegate del = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()); // try { // DeptObject dept = del.fetchDeptByUserId(user.getId()); // if(dept != null){ // userDept = dept.getName(); // rootNode = new VCIBaseTreeNode(userDept,rootObj); // // }else rootNode = new VCIBaseTreeNode("人员",rootObj); initUserTree(rootNode, "root"); initRoleTree(rootNode, "root"); initDepartTree(rootNode, "root"); treeModel = new VCIBaseTreeModel(rootNode); leftTree = new VCIBaseTree(treeModel, new RightManagementTreeCellRenderer()); leftTree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); leftTree.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { TreePath treePath = e.getPath(); VCIBaseTreeNode selectNode = (VCIBaseTreeNode) treePath.getLastPathComponent(); transmitTreeObject.setCurrentTreeNode(selectNode); } }); leftTree.addTreeExpansionListener(new TreeExpansionListener() { public void treeExpanded(TreeExpansionEvent event) { // TreePath treePath = event.getPath(); // VCIBaseTreeNode selectNode = (VCIBaseTreeNode) treePath.getLastPathComponent(); // if(!selectNode.isExpand()){ // selectNode.removeAllChildren(); // getExpandTreeData(selectNode); // // } TreePath treePath = event.getPath(); selectNode = (VCIBaseTreeNode) treePath.getLastPathComponent(); transmitTreeObject.setCurrentTreeNode(selectNode); Object object = selectNode.getObj(); // if (!selectNode.isExpand()) { if (selectNode.getChildCount()==0) { selectNode.setExpand(true); transmitTreeObject.getCurrentTreeNode().removeAllChildren(); if (object instanceof UserObject) { UserObject user = (UserObject) object; if (user.getId().equals("root")) { try { UserObject[] userInfos = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchUserInfo(); for (UserObject userObject : userInfos) { if(userValue!=null&&!"".equals(userValue)){ String[] split = userValue.split(","); for(String userSplit : split){ if(userSplit.equals(userObject.getUserName())){ treeModel.insertNodeInto(new VCIBaseTreeNode(userObject.toString(), userObject), selectNode, selectNode.getChildCount()); } } }else{ treeModel.insertNodeInto(new VCIBaseTreeNode(userObject.toString(), userObject), selectNode, selectNode.getChildCount()); } } } catch (VCIException e) { e.printStackTrace(); return; } } } if (object instanceof RoleObject) { RoleObject role = (RoleObject) object; if (role.getId().equals("root")) { try { RoleObject[] roleInfos = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchRoleInfo(); for (RoleObject roleObject : roleInfos) { if(roleValue!=null&&!"".equals(roleValue)){ String[] split = roleValue.split(","); for(String roleSplit : split){ if(roleSplit.equals(roleObject.getId())){ treeModel.insertNodeInto(new VCIBaseTreeNode(roleObject.getName(), roleObject), selectNode, selectNode.getChildCount()); } } }else{ treeModel.insertNodeInto(new VCIBaseTreeNode(roleObject.getName(), roleObject), selectNode, selectNode.getChildCount()); } } } catch (VCIException e) { e.printStackTrace(); return; } }else{ try { UserObject[] fetchUserInfoByRoleId = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchUserInfoByRoleId(role.getId(), role.getType()); for (UserObject userObject : fetchUserInfoByRoleId) { treeModel.insertNodeInto(new VCIBaseTreeNode(userObject.toString(), userObject), selectNode, selectNode.getChildCount()); } } catch (VCIException e) { e.printStackTrace(); } } } if (object instanceof DeptObject){ RightManagementClientDelegate del = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()); try { DeptObject[] DeptInfos = null; DeptObject deptObject = (DeptObject) object; if (deptObject.getId().equals("root")){ DeptInfos= new RightManagementClientDelegate(LogonApplication.getUserEntityObject()) .fetchDepartmentInfo(); }else{ DeptInfos = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()) .fetchDepartmentInfoByParentId(deptObject.getId()); } if (DeptInfos == null){ if (!deptObject.getId().equals("root")){ UserObject[] objs = del.getUserByDeptId(deptObject.getId()); for(int i=0;i list = new LinkedList(); int count = leftTree.getSelectionCount(); // (VCIBaset)leftTree.getSelectionPaths(); // Object node = leftTree.getLastSelectedPathComponent(); Object[] nodes = new Object[count]; if(count != 0 ){ for(int i = 0 ;i screenSize.height) { componentSize.height = screenSize.height; } if (componentSize.width > screenSize.width) { componentSize.width = screenSize.width; } this.setLocation((screenSize.width - componentSize.width) / 2, (screenSize.height - componentSize.height) / 2); } public boolean isOk() { return isOk; } private String getI18nString(String code){ return ClientHelper.getI18nStringForWorkflow(this.getClass().getName() + "." + code, this.getLocale()); } private void select(){ // setSelectUser(jtfuser.getText()); rootNode.removeAllChildren(); // initLeftTree(rootNode); } private String getAssignName(UserObject[] object){ String userName = ""; for(int i = 0 ;i