package com.vci.client.workflow.task;
|
|
import java.awt.BorderLayout;
|
import java.awt.Color;
|
import java.awt.Dimension;
|
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.LinkedList;
|
import java.util.List;
|
|
import javax.swing.ButtonGroup;
|
import javax.swing.ComboBoxModel;
|
import javax.swing.DefaultCellEditor;
|
import javax.swing.DefaultComboBoxModel;
|
import javax.swing.DefaultListModel;
|
import javax.swing.JButton;
|
import javax.swing.JComboBox;
|
import javax.swing.JDialog;
|
import javax.swing.JLabel;
|
import javax.swing.JList;
|
import javax.swing.JPanel;
|
import javax.swing.JRadioButton;
|
import javax.swing.JScrollPane;
|
import javax.swing.JTable;
|
import javax.swing.JTextField;
|
import javax.swing.event.TreeExpansionEvent;
|
import javax.swing.event.TreeExpansionListener;
|
import javax.swing.event.TreeSelectionEvent;
|
import javax.swing.event.TreeSelectionListener;
|
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.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.tree.VCIBaseTree;
|
import com.vci.client.ui.tree.VCIBaseTreeModel;
|
import com.vci.client.ui.tree.VCIBaseTreeNode;
|
import com.vci.client.workflow.delegate.EventConfClientDelegate;
|
import com.vci.client.workflow.delegate.ProcessCustomClientDelegate;
|
import com.vci.client.workflow.editor.ui.CustomClassTableModel;
|
import com.vci.client.workflow.editor.ui.PropertyObject;
|
import com.vci.corba.common.VCIError;
|
|
/**
|
* This code was edited or generated using CloudGarden's Jigloo
|
* SWT/Swing GUI Builder, which is free for non-commercial
|
* use. If Jigloo is being used commercially (ie, by a corporation,
|
* company or business for any purpose whatever) then you
|
* should purchase a license for each developer using Jigloo.
|
* Please visit www.cloudgarden.com for details.
|
* Use of Jigloo implies acceptance of these licensing terms.
|
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
|
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
|
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
|
*/
|
/**
|
* 任务指派
|
* @author liudi
|
*
|
* 2013-7-5
|
*/
|
public class AppointTaskDialog extends JDialog {
|
private JLabel curTaskNameLab;
|
private JScrollPane tableScrollPane;
|
private JButton cancelBtn;
|
private JButton okBtn;
|
private JTable eventTable;
|
private JLabel eventLab;
|
private JComboBox appointTaskCombo;
|
private JLabel appointTaskLab;
|
private JTextField curTaskNameText;
|
private JButton deleteBtn;
|
private JButton addBtn;
|
private JTextField jtfAddPerson;
|
private JLabel jlAddPerson;
|
private JButton btnAddPerson;
|
|
private String curtTaskName;
|
private String executionId;
|
|
private String eventType = "appoint";
|
|
private UserObject userInfo;
|
private String userName = LogonApplication.getUserEntityObject().getUserName();
|
private VCIBaseTree rightManagementTree;
|
private TransmitTreeObject transmitTreeObject = new TransmitTreeObject();
|
private VCIBaseTreeModel treeModel;
|
|
private JList list;
|
private DefaultListModel listModel;
|
private JList userList;
|
private JList roleList;
|
private JList deptList;
|
|
private DefaultListModel userListModel;
|
private DefaultListModel roleListModel;
|
private DefaultListModel deptListModel;
|
|
//存放用户信息
|
private List<UserObject> userObjectlist = new ArrayList<UserObject>();
|
//存放角色信息
|
private List<RoleObject> roleObjectlist = new ArrayList<RoleObject>();
|
//存放部门信息
|
private List<DeptObject> deptObjectlist = new ArrayList<DeptObject>();
|
|
// private KJButton okBtn = new KJButton(this.getI18nString("btnOk"), "ok.gif");
|
// private KJButton cancelBtn = new KJButton(this.getI18nString("btnCancel"), "cancel.gif");
|
|
private JRadioButton userButton = new JRadioButton("成员");
|
// private JRadioButton roleButton = new JRadioButton("角色");
|
// private JRadioButton departButton = new JRadioButton("部门");
|
JScrollPane scrollPane_1 = new JScrollPane();
|
// JScrollPane scrollPane_2 = new JScrollPane();
|
//选中某一按钮,记录下所选按钮的对象名称
|
private String radioChoseFlag = "user";
|
|
/**
|
* Auto-generated main method to display this
|
* JPanel inside a new JFrame.
|
*/
|
public AppointTaskDialog(String taskName,String executionId) {
|
super(LogonApplication.frame,true);
|
this.curtTaskName = taskName;
|
this.executionId = executionId;
|
initGUI();
|
displayCenter();
|
setVisible(true);
|
}
|
/**
|
*显示在屏幕中央
|
*/
|
private void displayCenter() {
|
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
Dimension frameSize = this.getSize();
|
if (frameSize.height > screenSize.height) {
|
frameSize.height = screenSize.height;
|
}
|
if (frameSize.width > screenSize.width) {
|
frameSize.width = screenSize.width;
|
}
|
this.setLocation((screenSize.width - frameSize.width) / 2,
|
(screenSize.height - frameSize.height) / 2);
|
this.setModal(true);
|
}
|
private void initGUI() {
|
try {
|
this.setTitle("任务指派 ");
|
this.setSize(new java.awt.Dimension(470, 750));
|
setLayout(new BorderLayout());
|
|
JScrollPane contentJsp = new JScrollPane();
|
JPanel mainPanel = new JPanel();
|
mainPanel.setLayout(new BorderLayout());
|
JScrollPane viewImgePanel = new JScrollPane();
|
ViewExecutionImagePanel viewPanel = new ViewExecutionImagePanel(executionId, curtTaskName);
|
viewImgePanel.getViewport().add(viewPanel);
|
|
mainPanel.add(viewImgePanel,BorderLayout.NORTH);
|
|
JPanel contentPanel = new JPanel();
|
// JScrollPane jsp = new JScrollPane();
|
JPanel jsp = new JPanel();
|
jsp.setLayout(new BorderLayout());
|
contentPanel.setLayout(null);
|
JPanel panelLeft = new JPanel();
|
JPanel panelRight = new JPanel();
|
panelRight = getUserSelectionPanel();
|
// panelLeft.setLayout(new BorderLayout());
|
// panelLeft.add(jsp,BorderLayout.CENTER);
|
// panelLeft.add(panelRight,BorderLayout.EAST);
|
jsp.add(contentPanel,BorderLayout.CENTER);
|
jsp.add(panelRight,BorderLayout.EAST);
|
mainPanel.add(jsp);
|
add(mainPanel,BorderLayout.CENTER);
|
{
|
curTaskNameLab = new JLabel();
|
contentPanel.add(curTaskNameLab);
|
curTaskNameLab.setText("当前任务名称:");
|
curTaskNameLab.setBounds(72, 53, 85, 17);
|
}
|
{
|
curTaskNameText = new JTextField();
|
curTaskNameText.setText(curtTaskName);
|
curTaskNameText.setEditable(false);
|
contentPanel.add(curTaskNameText);
|
curTaskNameText.setBounds(183, 49, 152, 24);
|
}
|
{
|
appointTaskLab = new JLabel();
|
contentPanel.add(appointTaskLab);
|
appointTaskLab.setText("指派任务名称:");
|
appointTaskLab.setBounds(72, 105, 85, 17);
|
}
|
{
|
ComboBoxModel appointTaskComboModel =
|
new DefaultComboBoxModel();
|
appointTaskCombo = new JComboBox();
|
contentPanel.add(appointTaskCombo);
|
appointTaskCombo.setModel(appointTaskComboModel);
|
appointTaskCombo.setBounds(183, 101, 152, 24);
|
String deployId = new ProcessCustomClientDelegate(LogonApplication.getUserEntityObject()).getDeploymentIdByExecutionId(executionId);
|
String[] taskNames = new ProcessCustomClientDelegate(LogonApplication.getUserEntityObject()).getAllTaskNames(deployId);
|
for(String taskName : taskNames){
|
if(!curtTaskName.equals(taskName)){
|
appointTaskCombo.addItem(taskName);
|
}
|
}
|
}
|
{
|
eventLab = new JLabel();
|
contentPanel.add(eventLab);
|
eventLab.setText("指派任务事件");
|
eventLab.setBounds(72, 153, 132, 17);
|
}
|
{
|
tableScrollPane = new JScrollPane();
|
contentPanel.add(tableScrollPane);
|
tableScrollPane.setBounds(72, 176, 268, 143);
|
{
|
tableScrollPane.setViewportView(getCustomProperty());
|
}
|
}
|
{
|
okBtn = new JButton();
|
contentPanel.add(okBtn);
|
okBtn.setText("确定");
|
okBtn.setBounds(128, 343, 62, 24);
|
okBtn.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
ProcessCustomClientDelegate clientDelagate = new ProcessCustomClientDelegate(LogonApplication.getUserEntityObject());
|
String tagActivityName = (String) appointTaskCombo.getSelectedItem();
|
int rowCount = eventTable.getRowCount();
|
String[] classNames = new String[rowCount];
|
for(int i=0;i<rowCount;i++){
|
String valueAt = (String) eventTable.getModel().getValueAt(i, 0);
|
PropertyObject[] eventTypes = getEventTypes(eventType);
|
for(int p =0;p<eventTypes.length;p++){
|
String className = eventTypes[p].getValue();
|
String classValue = "";
|
String initEventClass = "";
|
classValue = eventTypes[p].getProperty();
|
/*initEventClass = EventProperties.getStringProperty("workflow.event.type." + classValue
|
+ ".class");*/
|
//add by caill start 2016.4.8 通过corba连接服务端
|
try {
|
initEventClass = new EventConfClientDelegate().getStringProperty("workflow.event.type." + classValue
|
+ ".class");
|
} catch (VCIError en) {
|
// TODO Auto-generated catch block
|
en.printStackTrace();
|
}
|
//add by caill end
|
if(valueAt.equals(className)){
|
classNames[i] = initEventClass;
|
}
|
}
|
}
|
//选择的候选人数组
|
|
if(userListModel.size() == 0){
|
VCIOptionPane.showMessage(LogonApplication.frame, "请选择候选人!");
|
return;
|
}
|
String[] userNames = new String[userListModel.size()];
|
userObjectlist.clear();
|
for (int i =0;i<userListModel.size();i++) {
|
Object object = userListModel.get(i);
|
UserObject obj = (UserObject)object;
|
userNames[i] = new String();
|
userNames[i] = obj.getUserName();
|
}
|
boolean appointTask = clientDelagate.appointTask(curtTaskName, tagActivityName, classNames, executionId, userNames );
|
if(appointTask){
|
VCIOptionPane.showMessage(LogonApplication.frame, "指派成功");
|
}else{
|
VCIOptionPane.showMessage(LogonApplication.frame, "指派失败");
|
}
|
dispose();
|
}
|
});
|
}
|
{
|
cancelBtn = new JButton();
|
contentPanel.add(cancelBtn);
|
contentPanel.add(getJButton1());
|
contentPanel.add(getJButton2());
|
cancelBtn.setText("关闭");
|
cancelBtn.setBounds(232, 343, 62, 24);
|
cancelBtn.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
dispose();
|
}
|
});
|
addBtn.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
CustomClassTableModel model = (CustomClassTableModel)eventTable.getModel();
|
model.addRow();
|
}
|
});
|
|
deleteBtn.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
int[] selectedRows = eventTable.getSelectedRows();
|
CustomClassTableModel model = (CustomClassTableModel)eventTable.getModel();
|
model.deleteRow(selectedRows);
|
}
|
});
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
private JTable getCustomProperty() {
|
if(eventTable == null) {
|
eventTable = new JTable(new CustomClassTableModel());
|
eventTable.setRowHeight(20);
|
|
Dimension size = eventTable.getTableHeader().getPreferredSize();
|
size.height = 22;
|
eventTable.getTableHeader().setPreferredSize(size);
|
// customTable.setPreferredScrollableViewportSize(new Dimension(300, 50));
|
|
|
JComboBox c = new JComboBox(getEventTypes(eventType));//
|
eventTable.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(c));
|
}
|
return eventTable;
|
}
|
private PropertyObject[] getEventTypes(String eventType) {
|
/*String[] types = EventProperties.getStringProperty("workflow.event.type."+eventType).split(",");*/
|
//add by caill start 2016.4.8 通过corba连接服务端
|
String[] types = null;
|
try {
|
types = new EventConfClientDelegate().getStringProperty("workflow.event.type."+eventType).split(",");
|
} catch (VCIError e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
//add by caill end
|
List<PropertyObject> taskTypes = new ArrayList<PropertyObject>();
|
taskTypes.add(new PropertyObject("", ""));
|
for (int i = 0; i < types.length; i++) {
|
if("".equals(types[i].trim())) continue;
|
/*taskTypes.add(new PropertyObject(types[i],
|
EventProperties.getStringProperty("workflow.event.type.appoint." + types[i])));*/
|
//add by caill start 2016.4.8 通过corba连接服务端
|
try {
|
taskTypes.add(new PropertyObject(types[i],
|
new EventConfClientDelegate().getStringProperty("workflow.event.type.appoint." + types[i])));
|
} catch (VCIError e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
//add by caill end
|
}
|
return taskTypes.toArray(new PropertyObject[0]);
|
}
|
private String getI18nForEvent(String key) {
|
return LocaleDisplay.getI18nString(key, "RMIPWorkflow", getLocale());
|
}
|
|
private JButton getJButton1() {
|
if(addBtn == null) {
|
addBtn = new JButton();
|
addBtn.setText("添加");
|
addBtn.setBounds(346, 198, 62, 24);
|
}
|
return addBtn;
|
}
|
|
private JButton getJButton2() {
|
if(deleteBtn == null) {
|
deleteBtn = new JButton();
|
deleteBtn.setText("删除");
|
deleteBtn.setBounds(346, 228, 62, 24);
|
}
|
return deleteBtn;
|
}
|
private JPanel getUserSelectionPanel(){
|
JPanel mainPanel = new JPanel();
|
mainPanel.setLayout(new BorderLayout());
|
JPanel panel = new JPanel();
|
JPanel topPanel = new JPanel();
|
ButtonGroup bgroup = new ButtonGroup();
|
bgroup.add(userButton);
|
// bgroup.add(roleButton);
|
// bgroup.add(departButton);
|
userButton.setSelected(true);
|
topPanel.add(userButton);
|
// topPanel.add(roleButton);
|
// roleButton.setSelected(true);
|
// topPanel.add(departButton);
|
mainPanel.add(topPanel, BorderLayout.NORTH);
|
mainPanel.add(panel, BorderLayout.CENTER);
|
panel.setLayout(new BorderLayout(0, 0));
|
|
JPanel panel_1 = new JPanel();
|
panel.add(panel_1, BorderLayout.CENTER);
|
GridBagLayout gbl_panel_1 = new GridBagLayout();
|
panel_1.setLayout(gbl_panel_1);
|
|
JPanel panel_2 = new JPanel();
|
GridBagConstraints gbc_panel_2 = new GridBagConstraints();
|
gbc_panel_2.weighty = 1.0;
|
gbc_panel_2.weightx = 1.0;
|
gbc_panel_2.insets = new Insets(0, 0, 0, 5);
|
gbc_panel_2.fill = GridBagConstraints.BOTH;
|
gbc_panel_2.gridx = 0;
|
gbc_panel_2.gridy = 0;
|
panel_1.add(panel_2, gbc_panel_2);
|
panel_2.setLayout(new BorderLayout(0, 0));
|
Dimension listDim = new Dimension(150, 200);
|
JScrollPane scrollPane = new JScrollPane();
|
panel_2.add(scrollPane);
|
scrollPane.setPreferredSize(listDim);
|
|
final VCIBaseTreeNode rootNode = new VCIBaseTreeNode(LocaleDisplay.getI18nString("rmip.stafforg.menu.staffOrg", "RMIPFramework", getLocale()), "root");
|
treeModel = new VCIBaseTreeModel(rootNode);
|
initUserTree(rootNode, "root");
|
// initTree(rootNode, "root");
|
// initDepartTree(rootNode, "root");
|
userButton.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
rootNode.removeAllChildren();
|
initUserTree(rootNode, "root");
|
treeModel.reload();
|
// int size = userListModel.getSize();
|
// for(int i=0;i<size;i++){
|
// UserObject object = (UserObject) userListModel.getElementAt(i);
|
// userListModel.addElement(object);
|
// }
|
radioChoseFlag = "user";
|
scrollPane_1.setViewportView(userList);
|
}
|
});
|
// roleButton.addActionListener(new ActionListener() {
|
//
|
// public void actionPerformed(ActionEvent e) {
|
// rootNode.removeAllChildren();
|
// userListModel.removeAllElements();
|
// initTree(rootNode, "root");
|
// treeModel.reload();
|
//// int size = roleListModel.getSize();
|
//// for(int i=0;i<size;i++){
|
//// RoleObject object = (RoleObject) roleListModel.getElementAt(i);
|
//// roleListModel.addElement(object);
|
//// }
|
// radioChoseFlag = "user";
|
// scrollPane_1.setViewportView(userList);
|
//
|
//
|
// }
|
// });
|
//
|
// departButton.addActionListener(new ActionListener() {
|
//
|
// public void actionPerformed(ActionEvent e) {
|
// rootNode.removeAllChildren();
|
// userListModel.removeAllElements();
|
// initDepartTree(rootNode, "root");
|
// treeModel.reload();
|
//// int size = deptListModel.getSize();
|
//// for(int i=0;i<size;i++){
|
//// DeptObject object = (DeptObject) deptListModel.getElementAt(i);
|
//// deptListModel.addElement(object);
|
//// }
|
// radioChoseFlag = "user";
|
// scrollPane_1.setViewportView(userList);
|
// }
|
// });
|
|
rightManagementTree = new VCIBaseTree(treeModel, new RightManagementTreeCellRenderer());
|
scrollPane.setViewportView(rightManagementTree);
|
|
JPanel panel_5 = new JPanel();
|
GridBagConstraints gbc_panel_5 = new GridBagConstraints();
|
gbc_panel_5.weightx = 1.0;
|
gbc_panel_5.weighty = 1.0;
|
gbc_panel_5.insets = new Insets(0, 0, 0, 5);
|
gbc_panel_5.fill = GridBagConstraints.NONE;
|
gbc_panel_5.gridx = 1;
|
gbc_panel_5.gridy = 0;
|
panel_1.add(panel_5, gbc_panel_5);
|
panel_5.setLayout(new BorderLayout(0, 0));
|
JButton rightChose = new JButton(">>");
|
panel_5.add(rightChose,BorderLayout.NORTH);
|
JButton liftRight = new JButton("<<");
|
panel_5.add(liftRight);
|
|
JPanel panel_4 = new JPanel();
|
GridBagConstraints gbc_panel_4 = new GridBagConstraints();
|
gbc_panel_4.weightx = 1.0;
|
gbc_panel_4.weighty = 1.0;
|
gbc_panel_4.insets = new Insets(0, 0, 0, 5);
|
gbc_panel_4.fill = GridBagConstraints.BOTH;
|
gbc_panel_4.gridx = 2;
|
gbc_panel_4.gridy = 0;
|
panel_1.add(panel_4, gbc_panel_4);
|
panel_4.setLayout(new BorderLayout(0, 0));
|
panel_4.add(scrollPane_1);
|
listModel = new DefaultListModel();
|
list = new JList(listModel);
|
list.setBackground(Color.WHITE);
|
|
userListModel = new DefaultListModel();
|
roleListModel = new DefaultListModel();
|
deptListModel = new DefaultListModel();
|
userList = new JList(userListModel);
|
roleList = new JList(roleListModel);
|
deptList = new JList(deptListModel);
|
scrollPane_1.setViewportView(userList);
|
scrollPane_1.setPreferredSize(listDim);
|
|
rightChose.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
addToUserListFromTreeNode(true);
|
}
|
});
|
liftRight.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
removeUserFromUserList(true);
|
}
|
});
|
userList.addMouseListener(new MouseAdapter() {
|
public void mouseClicked(MouseEvent e) {
|
if(e.getClickCount() != 2) return;
|
removeUserFromUserList(false);
|
}
|
});
|
roleList.addMouseListener(new MouseAdapter() {
|
public void mouseClicked(MouseEvent e) {
|
if(e.getClickCount() != 2) return;
|
removeUserFromUserList(false);
|
}
|
});
|
deptList.addMouseListener(new MouseAdapter() {
|
public void mouseClicked(MouseEvent e) {
|
if(e.getClickCount() != 2) return;
|
removeUserFromUserList(false);
|
}
|
});
|
|
init();
|
pack();
|
return mainPanel;
|
}
|
private void init() {
|
rightManagementTree.addMouseListener(new MouseAdapter() {
|
public void mouseClicked(MouseEvent e) {
|
if(e.getClickCount() != 2) return;
|
TreePath path = rightManagementTree.getPathForLocation(e.getX(), e.getY());
|
if(path == null) return;
|
if(path != null && !(path.getLastPathComponent() instanceof VCIBaseTreeNode)) return;
|
VCIBaseTreeNode clickedNode = (VCIBaseTreeNode)path.getLastPathComponent();
|
if(clickedNode.getLevel()<3) return;
|
transmitTreeObject.setCurrentTreeNode(clickedNode);
|
addToUserListFromTreeNode(false);
|
}
|
});
|
rightManagementTree.addTreeSelectionListener(new TreeSelectionListener() {
|
public void valueChanged(TreeSelectionEvent e) {
|
// rightManagementTree_valueChanged(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")) {
|
UserObject[] userInfos;
|
try {
|
userInfos = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchUserInfo();
|
for (UserObject userObject : userInfos) {
|
treeModel.insertNodeInto(new VCIBaseTreeNode(userObject.toString(), userObject), selectNode, selectNode.getChildCount());
|
}
|
} catch (VCIException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
// 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) {
|
// treeModel.insertNodeInto(new VCIBaseTreeNode(roleObject.getName(), roleObject), selectNode, selectNode.getChildCount());
|
// }
|
//
|
// } catch (VCIError e) {
|
// e.printStackTrace();
|
// }
|
// }
|
//// else{
|
//// try {
|
//// UserObject[] userObj = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchUsersByRoleId(role.getId());
|
//// for(UserObject userobj:userObj){
|
//// treeModel.insertNodeInto(new VCIBaseTreeNode(userobj.toString(), userobj),selectNode, selectNode.getChildCount());
|
//// }
|
//// } catch (VCIException e) {
|
//// VCIOptionPane.showError(LogonApplication.frame, "RMIPFramework", e);
|
//// e.printStackTrace();
|
//// }
|
//// }
|
// }
|
// if (object instanceof DeptObject){
|
// try {
|
// DeptObject[] DeptInfos = null;
|
// if (((DeptObject) object).getId().equals("root")){
|
// DeptInfos= new RightManagementClientDelegate(LogonApplication.getUserEntityObject())
|
// .fetchDeptInfoRoot();
|
// if (DeptInfos == null){
|
// return;
|
// }
|
// int len = DeptInfos.length;
|
// for (int i = 0; i < len; i++) {
|
// treeModel.insertNodeInto(new VCIBaseTreeNode(DeptInfos[i].getName(), DeptInfos[i]),selectNode,selectNode.getChildCount());
|
// }
|
// }else if(((DeptObject) object).getId().equals("")){
|
// DeptInfos = new RightManagementClientDelegate(LogonApplication.getUserEntityObject())
|
// .fetchDeptInfoByParentId(((DeptObject) object).getId());
|
// if (DeptInfos == null){
|
// return;
|
// }
|
// int len = DeptInfos.length;
|
// for (int i = 0; i < len; i++) {
|
// treeModel.insertNodeInto(new VCIBaseTreeNode(DeptInfos[i].getName(), DeptInfos[i]),selectNode,selectNode.getChildCount());
|
// }
|
// }else{
|
//// try {
|
// UserObject[] userObj = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).getUserByDeptList(((DeptObject) object).getId());
|
// for (UserObject userobj : userObj) {
|
// treeModel.insertNodeInto(new VCIBaseTreeNode(userobj.toString(), userobj), selectNode, selectNode.getChildCount());
|
// }
|
//// }catch (VCIException e) {
|
//// VCIOptionPane.showError(LogonApplication.frame, "RMIPFramework", e);
|
//// e.printStackTrace();
|
//// }
|
// }
|
// } catch (VCIException e) {
|
// VCIOptionPane.showError(LogonApplication.frame, "RMIPFramework", e);
|
// return;
|
// } catch (VCIError e) {
|
// e.printStackTrace();
|
// }
|
// }
|
}
|
}
|
|
public void treeCollapsed(TreeExpansionEvent arg0) {
|
|
}
|
});
|
transmitTreeObject.setTreeModel(treeModel);
|
transmitTreeObject.setTree(rightManagementTree);
|
|
}
|
private void initUserTree(VCIBaseTreeNode rootNode, String puid) {
|
// try {
|
// userInfo = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchUserInfoByName(userName);
|
// } catch (VCIException e) {
|
// VCIOptionPane.showError(LogonApplication.frame,"RMIPFramework", e);
|
// return;
|
// }
|
UserObject userObject = new UserObject();
|
userObject.setId("root");
|
VCIBaseTreeNode userNode = new VCIBaseTreeNode(LocaleDisplay.getI18nString("rmip.stafforg.menu.staff", "RMIPFramework", getLocale()), userObject);
|
rootNode.add(userNode);
|
|
}
|
/**
|
* <p>
|
* Description: 初始化人员组织结构树
|
* </p>
|
*
|
* @author wangxl
|
* @time 2011-5-31
|
* @param rootNode
|
* @param puid
|
*/
|
private void initTree(VCIBaseTreeNode rootNode, String puid) {
|
// try {
|
// userInfo = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchUserInfoByName(userName);
|
// } catch (VCIException e) {
|
// VCIOptionPane.showError(LogonApplication.frame, "RMIPFramework", e);
|
// return;
|
// }
|
RoleObject roleObject = new RoleObject();
|
roleObject.setId("root");
|
VCIBaseTreeNode roleNode = new VCIBaseTreeNode(LocaleDisplay.getI18nString("rmip.stafforg.menu.role", "RMIPFramework", getLocale()), roleObject);
|
rootNode.add(roleNode);
|
|
}
|
|
/**
|
* 初始化部门树
|
* @param rootNode
|
* @param puid
|
*/
|
private void initDepartTree(VCIBaseTreeNode rootNode, String puid) {
|
// try {
|
// userInfo = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchUserInfoByName(userName);
|
// } catch (VCIException e) {
|
// VCIOptionPane.showError(LogonApplication.frame, "RMIPFramework",e);
|
// 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;
|
userListModel.addElement(object);
|
}
|
if (object instanceof RoleObject) {
|
RoleObject role = (RoleObject) object;
|
if("root".equals(role.getId())){
|
continue;
|
}
|
if(checkRoleIdAdded(role)) return;
|
roleListModel.addElement(object);
|
}
|
if (object instanceof DeptObject) {
|
DeptObject dept = (DeptObject) object;
|
if("root".equals(dept.getId())){
|
continue;
|
}
|
if(checkDeptIdAdded(dept)) return;
|
deptListModel.addElement(object);
|
}
|
}
|
}
|
private boolean checkUserIdAdded(UserObject obj){
|
boolean res = false;
|
int size = userListModel.getSize();
|
for(int i = 0; i < size; i++){
|
if(userListModel.get(i) instanceof UserObject){
|
res = obj.getId().equals(((UserObject)userListModel.get(i)).getId());
|
if(res) break;
|
}
|
}
|
return res;
|
}
|
private boolean checkRoleIdAdded(RoleObject obj){
|
boolean res = false;
|
int size = roleListModel.getSize();
|
for(int i = 0; i < size; i++){
|
if(roleListModel.get(i) instanceof RoleObject){
|
res = obj.getId().equals(((RoleObject)roleListModel.get(i)).getId());
|
if(res) break;
|
}
|
}
|
return res;
|
}
|
private boolean checkDeptIdAdded(DeptObject obj){
|
boolean res = false;
|
int size = deptListModel.getSize();
|
for(int i = 0; i < size; i++){
|
if(deptListModel.get(i) instanceof DeptObject){
|
res = obj.getId().equals(((DeptObject)deptListModel.get(i)).getId());
|
if(res) break;
|
}
|
}
|
return res;
|
}
|
private void removeUserFromUserList(boolean batch){
|
if(radioChoseFlag.equals("user")){
|
Object[] selectedIndices = userList.getSelectedValues();
|
if(!batch){
|
selectedIndices = new Object[]{userList.getSelectedValue()};
|
}
|
for(int i =0;i<selectedIndices.length;i++){
|
userListModel.removeElement(selectedIndices[i]);
|
}
|
}
|
if(radioChoseFlag.equals("role")){
|
Object[] selectedIndices = roleList.getSelectedValues();
|
if(!batch){
|
selectedIndices = new Object[]{roleList.getSelectedValue()};
|
}
|
for(int i =0;i<selectedIndices.length;i++){
|
roleListModel.removeElement(selectedIndices[i]);
|
}
|
}
|
if(radioChoseFlag.equals("depart")){
|
Object[] selectedIndices = deptList.getSelectedValues();
|
if(!batch){
|
selectedIndices = new Object[]{deptList.getSelectedValue()};
|
}
|
for(int i =0;i<selectedIndices.length;i++){
|
deptListModel.removeElement(selectedIndices[i]);
|
}
|
}
|
}
|
}
|