package com.vci.client.workflow.editor.user;
|
|
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.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import javax.swing.DefaultListModel;
|
import javax.swing.JButton;
|
import javax.swing.JList;
|
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.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.logon.client.LogonFrame;
|
import com.vci.client.ui.exception.VCIException;
|
import com.vci.client.ui.locale.LocaleDisplay;
|
import com.vci.client.ui.swing.KJButton;
|
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;
|
|
public class FowardUser extends VCIJDialog {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1L;
|
|
private UserObject userInfo;
|
private String userName = LogonFrame.userName;
|
private VCIBaseTree rightManagementTree;
|
private TransmitTreeObject transmitTreeObject = new TransmitTreeObject();
|
private VCIBaseTreeModel treeModel;
|
|
private JList list;
|
private DefaultListModel listModel;
|
private List<UserObject> userObjectlist = new ArrayList<UserObject>();
|
|
private KJButton okBtn = new KJButton(this.getI18nString("btnOk"), "ok.gif");
|
private KJButton cancelBtn = new KJButton(this.getI18nString("btnCancel"), "cancel.gif");
|
|
private JButton roleButton = new JButton("角色");
|
private JButton departButton = new JButton("部门");
|
|
public FowardUser() {
|
|
super(LogonApplication.frame, true);
|
|
JPanel panel = new JPanel();
|
JPanel topPanel = new JPanel();
|
topPanel.add(roleButton);
|
topPanel.add(departButton);
|
getContentPane().add(topPanel, BorderLayout.NORTH);
|
getContentPane().add(panel, BorderLayout.CENTER);
|
panel.setLayout(new BorderLayout(0, 0));
|
|
JPanel panel_3 = new JPanel();
|
panel.add(panel_3, BorderLayout.SOUTH);
|
|
panel_3.add(okBtn);
|
|
okBtn.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent arg0) {
|
int[] selectedIndices = list.getSelectedIndices();
|
|
if(selectedIndices.length == 0){
|
VCIOptionPane.showMessage(LogonApplication.frame, getI18nString("message"));
|
return;
|
}
|
|
for (int i : selectedIndices) {
|
UserObject object = (UserObject) listModel.get(i);
|
userObjectlist.add(object);
|
}
|
dispose();
|
}
|
});
|
|
cancelBtn.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent arg0) {
|
listModel = null;
|
dispose();
|
}
|
});
|
panel_3.add(cancelBtn);
|
|
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);
|
// initTree(rootNode, "root");
|
// initDepartTree(rootNode, "root");
|
roleButton.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
rootNode.removeAllChildren();
|
initTree(rootNode, "root");
|
treeModel.reload();
|
listModel.clear();
|
}
|
});
|
|
departButton.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
rootNode.removeAllChildren();
|
initDepartTree(rootNode, "root");
|
treeModel.reload();
|
listModel.clear();
|
}
|
});
|
|
rightManagementTree = new VCIBaseTree(treeModel, new RightManagementTreeCellRenderer());
|
scrollPane.setViewportView(rightManagementTree);
|
|
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 = 1;
|
gbc_panel_4.gridy = 0;
|
panel_1.add(panel_4, gbc_panel_4);
|
panel_4.setLayout(new BorderLayout(0, 0));
|
|
JScrollPane scrollPane_1 = new JScrollPane();
|
panel_4.add(scrollPane_1);
|
listModel = new DefaultListModel();
|
list = new JList(listModel);
|
list.setBackground(Color.WHITE);
|
scrollPane_1.setViewportView(list);
|
|
scrollPane_1.setPreferredSize(listDim);
|
init();
|
pack();
|
}
|
|
private void init() {
|
rightManagementTree.addTreeSelectionListener(new TreeSelectionListener() {
|
public void valueChanged(TreeSelectionEvent e) {
|
rightManagementTree_valueChanged(e);
|
}
|
});
|
|
/**
|
* 树的展开事件
|
*/
|
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 RoleObject) {
|
RoleObject role = (RoleObject) object;
|
if (role.getId().equals("root")) {
|
try {
|
RoleObject[] roleInfos = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchRoleInfoByType(userInfo.getUserType());
|
|
for (RoleObject roleObject : roleInfos) {
|
treeModel.insertNodeInto(new VCIBaseTreeNode(roleObject.getName(), roleObject), selectNode, selectNode.getChildCount());
|
}
|
|
} catch (VCIException re) {
|
// VCIOptionPane.showError(LogonApplication.frame, LocaleDisplay.getI18nString(String.valueOf(re.code), "RMIPFramework", getLocale()));
|
return;
|
}
|
}
|
|
}
|
if (object instanceof DeptObject){
|
try {
|
DeptObject[] DeptInfos = null;
|
if (((DeptObject) object).getId().equals("root")){
|
DeptInfos= new RightManagementClientDelegate(LogonApplication.getUserEntityObject())
|
.fetchDepartmentInfoRoot();
|
|
}else{
|
DeptInfos = new RightManagementClientDelegate(LogonApplication.getUserEntityObject())
|
.fetchDepartmentInfoByParentId(((DeptObject) object).getId());
|
}
|
int len = DeptInfos.length;
|
for (int i = 0; i < len; i++) {
|
treeModel.insertNodeInto(new VCIBaseTreeNode(DeptInfos[i].getName(), DeptInfos[i]),selectNode,selectNode.getChildCount());
|
}
|
|
} catch (VCIException re) {
|
// VCIOptionPane.showError(LogonApplication.frame,
|
// LocaleDisplay.getI18nString(String.valueOf(re.code), "RMIPFramework", getLocale()));
|
return;
|
}
|
}
|
}
|
}
|
|
public void treeCollapsed(TreeExpansionEvent arg0) {
|
|
}
|
});
|
transmitTreeObject.setTreeModel(treeModel);
|
transmitTreeObject.setTree(rightManagementTree);
|
|
}
|
|
private void rightManagementTree_valueChanged(TreeSelectionEvent e) {
|
|
TreePath treePath = e.getPath();
|
VCIBaseTreeNode selectNode = (VCIBaseTreeNode) treePath.getLastPathComponent();
|
transmitTreeObject.setCurrentTreeNode(selectNode);
|
Object object = selectNode.getObj();
|
if (object instanceof RoleObject) {
|
RoleObject role = (RoleObject) object;
|
try {
|
if("root".equals(role.getId())){
|
return;
|
}
|
UserObject[] selectRole = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).selectRole(role.getId());
|
// 更新右边JLIST
|
listModel.removeAllElements();
|
for (UserObject userObject : selectRole) {
|
listModel.addElement(userObject);
|
}
|
|
} catch (VCIException e1) {
|
e1.printStackTrace();
|
}
|
}
|
if(object instanceof DeptObject){
|
DeptObject DeptObject = (DeptObject) object;
|
if("root".equals(DeptObject.getId())){
|
return;
|
}
|
UserObject[] selectRole;
|
try {
|
selectRole = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).getUserByDeptId(DeptObject.getId());
|
// 更新右边JLIST
|
listModel.removeAllElements();
|
for (UserObject userObject : selectRole) {
|
listModel.addElement(userObject);
|
}
|
} catch (VCIException e1) {
|
e1.printStackTrace();
|
}
|
|
|
}
|
}
|
|
/**
|
* <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, LocaleDisplay.getI18nString(String.valueOf(e.code), "RMIPFramework", getLocale()));
|
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, LocaleDisplay.getI18nString(String.valueOf(e.code), "RMIPFramework", getLocale()));
|
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 String getI18nString(String spCode) {
|
return ClientHelper.getI18nStringForWorkflow(this.getClass().getName() + "." + spCode, this.getLocale());
|
}
|
|
public List<UserObject> getUserObjectlist() {
|
return userObjectlist;
|
}
|
|
public JList getList() {
|
return list;
|
}
|
|
public void setList(JList list) {
|
this.list = list;
|
}
|
|
public DefaultListModel getListModel() {
|
return listModel;
|
}
|
|
public void setListModel(DefaultListModel listModel) {
|
this.listModel = listModel;
|
}
|
|
|
}
|