package com.vci.client.workflow.task;
|
|
import java.awt.BorderLayout;
|
import java.awt.Dimension;
|
import java.awt.FlowLayout;
|
import java.awt.GridBagConstraints;
|
import java.awt.GridBagLayout;
|
import java.awt.Insets;
|
import java.awt.Toolkit;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseEvent;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.swing.DefaultListModel;
|
import javax.swing.JButton;
|
import javax.swing.JLabel;
|
import javax.swing.JList;
|
import javax.swing.JOptionPane;
|
import javax.swing.JPanel;
|
import javax.swing.JScrollPane;
|
import javax.swing.JTable;
|
import javax.swing.border.TitledBorder;
|
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 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.rightConfig.object.FunctionObject;
|
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.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.ProcessDefinitionObject;
|
import com.vci.corba.common.VCIError;
|
|
/**
|
* 更改任务候选人
|
*
|
* @author Administrator
|
*
|
*/
|
public class ResetTaskUserByPlatformDialog extends VCIJDialog {
|
|
private static final long serialVersionUID = 1461586100225135416L;
|
|
|
private JTable historyTable;
|
|
private HistoryTableModel historyTableModel;
|
|
private boolean view = false;
|
|
FunctionObject funcObject = new FunctionObject();
|
|
private String executionId;
|
|
private JButton commit;
|
private JButton cancel;
|
|
|
private String outCome;
|
private String desc;
|
private String taskId;
|
|
|
private String taskName;
|
|
private boolean saveFlag = false;
|
|
|
private String status;
|
|
|
private JList taskList;
|
|
|
private DefaultListModel taskListModel;
|
|
|
private VCIBaseTreeModel treeModel;
|
|
|
private Object userInfo;
|
|
|
private VCIBaseTree rightManagementTree;
|
|
private TransmitTreeObject transmitTreeObject = new TransmitTreeObject();
|
private Map<String,List<String>> taskAndUserMap = new HashMap<String,List<String>>();
|
private Map<String,DefaultListModel> taskAndUserMap_1 = new HashMap<String,DefaultListModel>();
|
|
private DefaultListModel resultListModel;
|
private DefaultListModel tmpListModel = new DefaultListModel();
|
|
private List<String> resultList = new ArrayList<String>();
|
private JList userList;
|
|
private String userValue ;
|
private String roleValue ;
|
private String departmentValue ;
|
private VCIBaseTreeNode rootNode;
|
|
public boolean isSaveFlag() {
|
return saveFlag;
|
}
|
|
public void setSaveFlag(boolean saveFlag) {
|
this.saveFlag = saveFlag;
|
}
|
|
public String getOutCome() {
|
return outCome;
|
}
|
|
public void setOutCome(String outCome) {
|
this.outCome = outCome;
|
}
|
|
public String getDesc() {
|
return desc;
|
}
|
|
public void setDesc(String desc) {
|
this.desc = desc;
|
}
|
|
public Map<String, List<String>> getTaskAndUserMap() {
|
return taskAndUserMap;
|
}
|
|
public void setTaskAndUserMap(Map<String, List<String>> taskAndUserMap) {
|
this.taskAndUserMap = taskAndUserMap;
|
}
|
|
public ResetTaskUserByPlatformDialog(String executionId,String taskId,String taskName,String status) {
|
super(LogonApplication.frame, true);
|
this.executionId = executionId;
|
this.taskId = taskId;
|
this.taskName = taskName;
|
this.status = status;
|
initUI();
|
addListener();
|
initTaskList();
|
this.setLocationRelativeTo(null);
|
}
|
|
// public TodoTaskByPlatformDialog(Map<String,String> datamap, ProcessTaskInfo frocessTaskInfo, boolean view) {
|
// super(LogonApplication.frame, true);
|
// this.view = view;
|
// setTitle("查看");
|
// this.datamap = datamap;
|
// this.frocessTaskInfo = frocessTaskInfo;
|
// initUI();
|
// initData();
|
// addListener();
|
// }
|
|
private void addListener() {
|
commit.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent arg0) {
|
if(taskAndUserMap==null||taskAndUserMap.size()==0){
|
VCIOptionPane.showMessage(LogonApplication.frame, "您还没有没有选择用户!");
|
return;
|
}else{
|
saveFlag = true;
|
dispose();
|
}
|
}
|
});
|
|
cancel.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent arg0) {
|
dispose();
|
}
|
});
|
|
taskList.addMouseListener(new MouseAdapter() {
|
@Override
|
public void mouseClicked(MouseEvent arg0) {
|
super.mouseClicked(arg0);
|
try {
|
String deploymentId = new ProcessCustomClientDelegate().getDeploymentIdByExecutionId(executionId);
|
String[] allCandidatesForTask = new ProcessCustomClientDelegate().getAllCandidatesForTask(deploymentId,(String)taskList.getSelectedValue(),"");
|
if(allCandidatesForTask.length==1){
|
userValue = allCandidatesForTask[0];
|
roleValue = null;
|
departmentValue = null;
|
}
|
if(allCandidatesForTask.length==2){
|
userValue = allCandidatesForTask[0];
|
roleValue = allCandidatesForTask[1];
|
departmentValue = null;
|
}
|
if(allCandidatesForTask.length==3){
|
userValue = allCandidatesForTask[0];
|
roleValue = allCandidatesForTask[1];
|
departmentValue = allCandidatesForTask[2];
|
}
|
} catch (VCIError e) {
|
e.printStackTrace();
|
} catch (VCIException e) {
|
e.printStackTrace();
|
}
|
//
|
resultList = taskAndUserMap.get((String)taskList.getSelectedValue());
|
|
if(resultList == null){
|
resultList = new ArrayList<String>();
|
}
|
resultListModel.clear();
|
DefaultListModel defaultListModel = taskAndUserMap_1.get((String)taskList.getSelectedValue());
|
for(int i=0;i<resultList.size();i++){
|
String resultValue = resultList.get(i);
|
int indexOf = resultValue.indexOf(":");
|
String resultFilter = resultValue.substring(indexOf+1);
|
for(int j=0;j<defaultListModel.size();j++){
|
Object object = defaultListModel.get(j);
|
if(j==0){
|
if(object instanceof UserObject){
|
UserObject o = (UserObject)object;
|
if(resultFilter.equals(o.getUserName())){
|
resultListModel.addElement(o);
|
}
|
}
|
if(object instanceof RoleObject){
|
RoleObject o = (RoleObject)object;
|
if(resultFilter.equals(o.getName())){
|
resultListModel.addElement(o);
|
}
|
}
|
if(object instanceof DeptObject){
|
DeptObject o = (DeptObject)object;
|
if(resultFilter.equals(o.getName())){
|
resultListModel.addElement(o);
|
}
|
}
|
}else{
|
if(object instanceof UserObject){
|
UserObject o = (UserObject)object;
|
if(resultFilter.equals(o.getUserName())){
|
if(checkUserIdAdded(o)) continue;
|
resultListModel.addElement(o);
|
}
|
}
|
if(object instanceof RoleObject){
|
RoleObject o = (RoleObject)object;
|
if(resultFilter.equals(o.getName())){
|
if(checkRoleIdAdded(o)) continue;
|
resultListModel.addElement(o);
|
}
|
}
|
if(object instanceof DeptObject){
|
DeptObject o = (DeptObject)object;
|
if(resultFilter.equals(o.getName())){
|
if(checkDeptIdAdded(o)) continue;
|
resultListModel.addElement(o);
|
}
|
}
|
}
|
}
|
}
|
// for(int i=0;i<resultList.size();i++){
|
// resultListModel.addElement(resultList.get(i));
|
// }
|
userList.setModel(resultListModel);
|
userList.updateUI();
|
|
VCIBaseTreeNode root = (VCIBaseTreeNode) treeModel.getRoot();
|
int childCount = root.getChildCount();
|
for(int i=0;i<childCount;i++){
|
VCIBaseTreeNode childAt = (VCIBaseTreeNode) root.getChildAt(i);
|
childAt.removeAllChildren();
|
}
|
treeModel.reload();
|
rightManagementTree.updateUI();
|
|
|
}
|
});
|
rightManagementTree.addMouseListener(new MouseAdapter() {
|
public void mouseClicked(MouseEvent e) {
|
if(e.getClickCount() != 2) return;
|
TreePath path = rightManagementTree.getPathForLocation(e.getX(), e.getY());
|
VCIBaseTreeNode clickedNode = (VCIBaseTreeNode) rightManagementTree.getLastSelectedPathComponent();
|
if(path == null) return;
|
if(clickedNode.getLevel()<2) return;
|
transmitTreeObject.setCurrentTreeNode(clickedNode);
|
addToUserListFromTreeNode(false);
|
taskAndUserMap.put((String) taskList.getSelectedValue(), resultList);
|
taskAndUserMap_1.put((String) taskList.getSelectedValue(), tmpListModel);
|
}
|
});
|
rightManagementTree.addTreeSelectionListener(new TreeSelectionListener() {
|
public void valueChanged(TreeSelectionEvent e) {
|
TreePath treePath = e.getPath();
|
VCIBaseTreeNode selectNode = (VCIBaseTreeNode) treePath.getLastPathComponent();
|
transmitTreeObject.setCurrentTreeNode(selectNode);
|
}
|
});
|
|
/**
|
* 树的展开事件
|
*/
|
rightManagementTree.addTreeExpansionListener(new TreeExpansionListener() {
|
public void treeExpanded(TreeExpansionEvent event) {
|
TreePath treePath = event.getPath();
|
VCIBaseTreeNode selectNode = (VCIBaseTreeNode) treePath.getLastPathComponent();
|
transmitTreeObject.setCurrentTreeNode(selectNode);
|
Object object = selectNode.getObj();
|
// if (!selectNode.isExpand()) {
|
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.getUserName(), 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<objs.length;i++) {
|
treeModel.insertNodeInto(new VCIBaseTreeNode(objs[i].getUserName(), objs[i]),selectNode,selectNode.getChildCount());
|
}
|
}else{
|
return;
|
}
|
}
|
int len = DeptInfos==null?0:DeptInfos.length;
|
for (int i = 0; i < len; i++) {
|
if(departmentValue!=null&&!"".equals(departmentValue)){
|
String[] split = departmentValue.split(",");
|
for(String deptmentSplit : split){
|
if(deptmentSplit.equals(DeptInfos[i].getId())){
|
treeModel.insertNodeInto(new VCIBaseTreeNode(DeptInfos[i].getName(), DeptInfos[i]),selectNode,selectNode.getChildCount());
|
}
|
}
|
}
|
// else{
|
// treeModel.insertNodeInto(new VCIBaseTreeNode(DeptInfos[i].getName(), DeptInfos[i]),selectNode,selectNode.getChildCount());
|
// }
|
}
|
|
} catch (VCIException e) {
|
e.printStackTrace();
|
return;
|
}
|
}
|
// }
|
}
|
|
public void treeCollapsed(TreeExpansionEvent arg0) {
|
|
}
|
});
|
transmitTreeObject.setTreeModel(treeModel);
|
transmitTreeObject.setTree(rightManagementTree);
|
|
}
|
private void initUI() {
|
setSize(780, 600);
|
|
JPanel panel = new JPanel();
|
getContentPane().add(panel, BorderLayout.CENTER);
|
panel.setLayout(new BorderLayout(0, 0));
|
|
|
JPanel panel_1 = new JPanel();
|
panel_1.setLayout(new BorderLayout(0, 0));
|
panel.add(panel_1, BorderLayout.CENTER);
|
|
JPanel panel_3 = new JPanel();
|
FlowLayout flowLayout = (FlowLayout) panel_3.getLayout();
|
flowLayout.setAlignment(FlowLayout.RIGHT);
|
panel_1.add(panel_3, BorderLayout.SOUTH);
|
|
commit = new JButton("提交");
|
panel_3.add(commit);
|
|
cancel = new JButton("关闭");
|
panel_3.add(cancel);
|
{
|
{
|
taskListModel = new DefaultListModel();
|
}
|
}
|
{
|
{
|
rootNode = new VCIBaseTreeNode("人员组织", "root");
|
treeModel = new VCIBaseTreeModel(rootNode);
|
// initUserTree(rootNode, "root");
|
// initRoleTree(rootNode, "root");
|
// initDepartTree(rootNode, "root");
|
}
|
}
|
{
|
{
|
resultListModel = new DefaultListModel();
|
}
|
}
|
|
JPanel panel_4 = new JPanel();
|
panel_1.add(panel_4, BorderLayout.CENTER);
|
panel_4.setBorder(new TitledBorder(null, "\u6D41\u7A0B", TitledBorder.LEADING, TitledBorder.TOP, null, null));
|
GridBagLayout gbl_panel_5 = new GridBagLayout();
|
gbl_panel_5.columnWidths = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 };
|
gbl_panel_5.rowHeights = new int[] { 0, 0, 0 };
|
gbl_panel_5.columnWeights = new double[] { 0.0, 0.0, 1.0, 0.0, 1.0,
|
0.0, 1.0, Double.MIN_VALUE };
|
gbl_panel_5.rowWeights = new double[] { 0.0, 1.0, Double.MIN_VALUE };
|
panel_4.setLayout(gbl_panel_5);
|
{
|
JLabel label_5 = new JLabel("任务列表");
|
GridBagConstraints gbc_label_5 = new GridBagConstraints();
|
gbc_label_5.insets = new Insets(0, 0, 0, 5);
|
gbc_label_5.gridx = 1;
|
gbc_label_5.gridy = 1;
|
panel_4.add(label_5, gbc_label_5);
|
}
|
JScrollPane scrollPane_4 = new JScrollPane();
|
GridBagConstraints gbc_scrollPane_4 = new GridBagConstraints();
|
gbc_scrollPane_4.insets = new Insets(0, 0, 0, 5);
|
gbc_scrollPane_4.fill = GridBagConstraints.BOTH;
|
gbc_scrollPane_4.gridx = 2;
|
gbc_scrollPane_4.gridy = 1;
|
panel_4.add(scrollPane_4, gbc_scrollPane_4);
|
taskList = new JList();
|
taskList.setModel(taskListModel);
|
scrollPane_4.setViewportView(taskList);
|
{
|
JLabel userListLab = new JLabel("人员列表");
|
GridBagConstraints gbc_userListLab = new GridBagConstraints();
|
gbc_userListLab.insets = new Insets(0, 0, 0, 5);
|
gbc_userListLab.gridx = 3;
|
gbc_userListLab.gridy = 1;
|
panel_4.add(userListLab, gbc_userListLab);
|
}
|
JScrollPane scrollPane = new JScrollPane();
|
GridBagConstraints gbc_scrollPane = new GridBagConstraints();
|
gbc_scrollPane.insets = new Insets(0, 0, 0, 5);
|
gbc_scrollPane.fill = GridBagConstraints.BOTH;
|
gbc_scrollPane.gridx = 4;
|
gbc_scrollPane.gridy = 1;
|
panel_4.add(scrollPane, gbc_scrollPane);
|
rightManagementTree = new VCIBaseTree(treeModel,
|
new RightManagementTreeCellRenderer());
|
scrollPane.setViewportView(rightManagementTree);
|
{
|
JPanel panel_5 = new JPanel();
|
GridBagConstraints gbc_panel_3 = new GridBagConstraints();
|
gbc_panel_3.insets = new Insets(0, 0, 0, 5);
|
gbc_panel_3.fill = GridBagConstraints.BOTH;
|
gbc_panel_3.gridx = 5;
|
gbc_panel_3.gridy = 1;
|
panel_4.add(panel_5, gbc_panel_3);
|
GridBagLayout gbl_panel_3 = new GridBagLayout();
|
gbl_panel_3.columnWidths = new int[] { 45, 0 };
|
gbl_panel_3.rowHeights = new int[] { 23, 0, 0, 0, 0, 0 };
|
gbl_panel_3.columnWeights = new double[] { 0.0,
|
Double.MIN_VALUE };
|
gbl_panel_3.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0,
|
0.0, Double.MIN_VALUE };
|
panel_5.setLayout(gbl_panel_3);
|
{
|
JButton btnNewButton = new JButton(">>");
|
btnNewButton.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent arg0) {
|
int selectedIndex = taskList.getSelectedIndex();
|
if (selectedIndex == -1) {
|
VCIOptionPane.showMessage(
|
LogonApplication.frame, "请选择任务!");
|
return;
|
}
|
addToUserListFromTreeNode(true);
|
taskAndUserMap.put(
|
(String) taskList.getSelectedValue(),
|
resultList);
|
taskAndUserMap_1.put((String) taskList.getSelectedValue(), tmpListModel);
|
userList.setModel(resultListModel);
|
userList.updateUI();
|
}
|
});
|
GridBagConstraints gbc_btnNewButton = new GridBagConstraints();
|
gbc_btnNewButton.anchor = GridBagConstraints.NORTHWEST;
|
gbc_btnNewButton.insets = new Insets(0, 0, 5, 0);
|
gbc_btnNewButton.gridx = 0;
|
gbc_btnNewButton.gridy = 2;
|
panel_5.add(btnNewButton, gbc_btnNewButton);
|
}
|
{
|
JButton btnNewButton_1 = new JButton("<<");
|
btnNewButton_1.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent arg0) {
|
removeUserFromUserList(true);
|
}
|
});
|
GridBagConstraints gbc_btnNewButton_1 = new GridBagConstraints();
|
gbc_btnNewButton_1.anchor = GridBagConstraints.NORTHWEST;
|
gbc_btnNewButton_1.gridx = 0;
|
gbc_btnNewButton_1.gridy = 4;
|
panel_5.add(btnNewButton_1, gbc_btnNewButton_1);
|
}
|
}
|
JScrollPane scrollPane_5 = new JScrollPane();
|
GridBagConstraints gbc_scrollPane_5 = new GridBagConstraints();
|
gbc_scrollPane_5.fill = GridBagConstraints.BOTH;
|
gbc_scrollPane_5.gridx = 6;
|
gbc_scrollPane_5.gridy = 1;
|
panel_4.add(scrollPane_5, gbc_scrollPane_5);
|
userList = new JList();
|
userList.setModel(resultListModel);
|
scrollPane_5.setViewportView(userList);
|
}
|
|
/**
|
* 居中屏幕
|
*/
|
private void centerToScreen() {
|
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
Dimension componentSize = getSize();
|
if (componentSize.height > screenSize.height) {
|
componentSize.height = screenSize.height;
|
}
|
|
if (componentSize.width > screenSize.width) {
|
componentSize.width = screenSize.width;
|
}
|
|
setLocation((screenSize.width - componentSize.width) / 2, (screenSize.height - componentSize.height) / 2);
|
}
|
|
private String getI18nString(String spCode) {
|
return ClientHelper.getI18nStringForWorkflow(this.getClass().getName() + "." + spCode, this.getLocale());
|
}
|
|
private String getI18nStringByCode(String spCode) {
|
return ClientHelper.getI18nStringForWorkflow(spCode, this.getLocale());
|
}
|
|
private void initUserTree(VCIBaseTreeNode rootNode, String puid) {
|
String userName = LogonApplication.getUserEntityObject().getUserName();
|
try {
|
userInfo = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchUserInfoByName(userName);
|
} catch (VCIException e) {
|
e.printStackTrace();
|
return;
|
}
|
UserObject userObject = new UserObject();
|
userObject.setId("root");
|
VCIBaseTreeNode userNode = new VCIBaseTreeNode("用户", userObject);
|
rootNode.add(userNode);
|
}
|
private void initRoleTree(VCIBaseTreeNode rootNode, String puid) {
|
String userName = LogonApplication.getUserEntityObject().getUserName();
|
try {
|
userInfo = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchUserInfoByName(userName);
|
} catch (VCIException e) {
|
e.printStackTrace();
|
return;
|
}
|
RoleObject roleObject = new RoleObject();
|
roleObject.setId("root");
|
VCIBaseTreeNode roleNode = new VCIBaseTreeNode(LocaleDisplay.getI18nString("rmip.stafforg.menu.role", "RMIPFramework", getLocale()), roleObject);
|
rootNode.add(roleNode);
|
|
}
|
private void initDepartTree(VCIBaseTreeNode rootNode, String puid) {
|
String userName = LogonApplication.getUserEntityObject().getUserName();
|
try {
|
userInfo = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchUserInfoByName(userName);
|
} catch (VCIException e) {
|
e.printStackTrace();
|
return;
|
}
|
DeptObject rootDepartment = new DeptObject();
|
rootDepartment.setId("root");
|
VCIBaseTreeNode departmentNode = new VCIBaseTreeNode(
|
LocaleDisplay.getI18nString("rmip.stafforg.menu.department",
|
"RMIPFramework", getLocale()), rootDepartment);
|
rootNode.add(departmentNode);
|
}
|
private void addToUserListFromTreeNode(boolean batch){
|
LinkedList<VCIBaseTreeNode> nodeList = new LinkedList<VCIBaseTreeNode>();
|
TreePath[] paths = rightManagementTree.getSelectionPaths();
|
if(batch && paths != null){
|
for(TreePath path : paths){
|
nodeList.add((VCIBaseTreeNode)path.getLastPathComponent());
|
}
|
} else{
|
nodeList.add(transmitTreeObject.getCurrentTreeNode());
|
}
|
// for(VCIBaseTreeNode selectNode : nodeList){
|
// if(selectNode == null) continue;
|
// Object object = selectNode.getObj();
|
// if (object instanceof UserObject) {
|
// UserObject user = (UserObject) object;
|
// if("root".equals(user.getId())){
|
// continue;
|
// }
|
// if(checkUserIdAdded(user)) return;
|
// resultListModel.addElement(object);
|
// resultList.add(user);
|
// }
|
// }
|
for(VCIBaseTreeNode selectNode : nodeList){
|
if(selectNode == null) continue;
|
Object object = selectNode.getObj();
|
if (object instanceof UserObject) {
|
UserObject user = (UserObject) object;
|
if("root".equals(user.getId())){
|
continue;
|
}
|
if(checkUserIdAdded(user)) return;
|
resultListModel.addElement(object);
|
tmpListModel.addElement(object);
|
resultList.add("user:"+user.getUserName());
|
}
|
if (object instanceof RoleObject) {
|
RoleObject role = (RoleObject) object;
|
if("root".equals(role.getId())){
|
continue;
|
}
|
if(checkRoleIdAdded(role)) return;
|
resultListModel.addElement(object);
|
tmpListModel.addElement(object);
|
resultList.add("role:"+role.getName());
|
}
|
if (object instanceof DeptObject) {
|
DeptObject dept = (DeptObject) object;
|
if("root".equals(dept.getId())){
|
continue;
|
}
|
if(checkDeptIdAdded(dept)) return;
|
resultListModel.addElement(object);
|
tmpListModel.addElement(object);
|
resultList.add("department:"+dept.getName());
|
}
|
}
|
}
|
private boolean checkUserIdAdded(UserObject obj){
|
boolean res = false;
|
int size = resultListModel.getSize();
|
for(int i = 0; i < size; i++){
|
if(resultListModel.get(i) instanceof UserObject){
|
res = obj.getId().equals(((UserObject)resultListModel.get(i)).getId());
|
if(res) break;
|
}
|
}
|
return res;
|
}
|
private void removeUserFromUserList(boolean batch){
|
Object[] selectedIndices = userList.getSelectedValues();
|
if(!batch){
|
selectedIndices = new Object[]{userList.getSelectedValue()};
|
}
|
for(int i =0;i<selectedIndices.length;i++){
|
resultListModel.removeElement(selectedIndices[i]);
|
resultList.remove(selectedIndices[i]);
|
}
|
}
|
private void initTaskList(){
|
ProcessCustomClientDelegate delegate = new ProcessCustomClientDelegate();
|
try {
|
taskListModel.clear();
|
String jbpmDeploymentId = delegate.getDeploymentIdByExecutionId(executionId);
|
String[] allTaskNames = delegate.getAllTaskNames(jbpmDeploymentId);
|
for(int i=0;i<allTaskNames.length;i++){
|
if(!allTaskNames[i].equals(taskName)){
|
taskListModel.addElement(allTaskNames[i]);
|
}
|
}
|
if(taskListModel.size()>0){
|
initUserTree(rootNode, "root");
|
initRoleTree(rootNode, "root");
|
initDepartTree(rootNode, "root");
|
}
|
} catch (VCIException e) {
|
e.printStackTrace();
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
}
|
private boolean checkRoleIdAdded(RoleObject obj){
|
boolean res = false;
|
int size = resultListModel.getSize();
|
for(int i = 0; i < size; i++){
|
if(resultListModel.get(i) instanceof RoleObject){
|
res = obj.getId().equals(((RoleObject)resultListModel.get(i)).getId());
|
if(res) break;
|
}else{
|
res = obj.getName().equals(resultListModel.get(i));
|
if(res) break;
|
}
|
}
|
return res;
|
}
|
private boolean checkDeptIdAdded(DeptObject obj){
|
boolean res = false;
|
int size = resultListModel.getSize();
|
for(int i = 0; i < size; i++){
|
if(resultListModel.get(i) instanceof DeptObject){
|
res = obj.getId().equals(((DeptObject)resultListModel.get(i)).getId());
|
if(res) break;
|
}else{
|
res = obj.getName().equals(resultListModel.get(i));
|
if(res) break;
|
}
|
}
|
return res;
|
}
|
}
|