package com.vci.client.framework.common; 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.MouseAdapter; import java.util.Enumeration; import java.util.Vector; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import com.vci.client.LogonApplication; 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.PLDeptInfoDataTreeModel; import com.vci.client.ui.exception.VCIException; import com.vci.client.ui.swing.VCIOptionPane; import com.vci.client.ui.treeTable.InterfaceTreeTableModel; import com.vci.client.ui.treeTable.JTreeTable; import com.vci.client.ui.treeTable.TreeTableModel; /** *

Title:JTIOrganizationMemberBean

*

Description: 人员、组织和角色信息查询选择bean

*

Copyright: Copyright (c) 2004 该软件版权属于北京宏博远达科技有限公司,任何个人和团体未经许可不得使用该软件

*

Company: 北京宏博远达科技有限公司

* @author 胡磊 * @version 1.0 */ public class JTIOrganizationMemberBean extends JPanel { JLabel jSearchLabel = new JLabel(); JTextField jSearchTextField = new JTextField(); JButton jSearchMemberButton = new JButton(); JButton jSearchOraganizationButton = new JButton(); JButton jSearchRoleListButton = new JButton(); JScrollPane jScrollPane1 = new JScrollPane(); JList jResultList = new JList(); JButton jMailListButton = new JButton(); //定义查询列表框的数据模型 DefaultListModel userModel = new DefaultListModel(); DefaultListModel groupModel = new DefaultListModel(); DefaultListModel mailListModel = new DefaultListModel(); DefaultListModel model = new DefaultListModel(); // private JList allUserList = new JList(); //标示当前搜索的状态:(人员、组、角色列表) String flag = ""; JButton jRefreshButton = new JButton(); GridBagLayout gridBagLayout1 = new GridBagLayout(); private PLDeptInfoDataTreeModel treeTableModel = null; private Object transObject = ""; private JTreeTable treeTable = null; private TreeTableModel.TreeTableNode rootNode = null; private String[] columns = { "名称", "编号", "描述" }; DeptObject rootObj; private Class[] classes = { InterfaceTreeTableModel.class, String.class, String.class }; private boolean fromManualExpand = false; public JTIOrganizationMemberBean() { try { jbInit(); /** * 按钮上加载图标 */ initUserModel(); // initGroupModel(); // initRoleModel(); //给列表框设置数据存储模式 jResultList.setModel(model); } catch(Exception ex) { ex.printStackTrace(); } } private void jbInit() throws Exception { jSearchLabel.setText("搜索:"); this.setLayout(gridBagLayout1); jSearchTextField.setText(""); // jSearchMemberButton.setMaximumSize(new Dimension(25,25)); // jSearchMemberButton.setMinimumSize(new Dimension(25,25)); // jSearchMemberButton.setPreferredSize(new Dimension(25,25)); jSearchMemberButton.setToolTipText("成员查询"); jSearchMemberButton.setBorderPainted(true); jSearchMemberButton.setText("成员"); jSearchMemberButton.addActionListener(new JTIOrganizationMemberBean_jSearchMemberButton_actionAdapter(this)); // jSearchOraganizationButton.setMaximumSize(new Dimension(25,25)); // jSearchOraganizationButton.setMinimumSize(new Dimension(25,25)); // jSearchOraganizationButton.setPreferredSize(new Dimension(25,25)); jSearchOraganizationButton.setToolTipText("组织查询"); jSearchOraganizationButton.setText("组织"); jSearchOraganizationButton.addActionListener(new JTIOrganizationMemberBean_jSearchOraganizationButton_actionAdapter(this)); // jSearchRoleListButton.setMaximumSize(new Dimension(25,25)); // jSearchRoleListButton.setMinimumSize(new Dimension(25,25)); // jSearchRoleListButton.setPreferredSize(new Dimension(25,25)); jSearchRoleListButton.setToolTipText("角色查询"); jSearchRoleListButton.setText("角色"); jSearchRoleListButton.addActionListener(new JTIOrganizationMemberBean_jSearchMailListButton_actionAdapter(this)); jMailListButton.setMaximumSize(new Dimension(25,25)); jMailListButton.setMinimumSize(new Dimension(25,25)); jMailListButton.setPreferredSize(new Dimension(25,25)); jMailListButton.setToolTipText("定制邮件列表内容"); jMailListButton.setSelected(false); jMailListButton.setText(""); jMailListButton.addActionListener(new JTIOrganizationMemberBean_jMailListButton_actionAdapter(this)); jResultList.setToolTipText("单击选中的人员"); // jRefreshButton.setMaximumSize(new Dimension(25, 25)); // jRefreshButton.setMinimumSize(new Dimension(25, 25)); // jRefreshButton.setPreferredSize(new Dimension(25, 25)); jRefreshButton.setToolTipText("刷新"); jRefreshButton.setText("刷新"); jRefreshButton.addActionListener(new JTIOrganizationMemberBean_jRefreshButton_actionAdapter(this)); this.setDebugGraphicsOptions(0); this.add(jSearchLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(8, 1, 0, 0), 0, 0)); this.add(jScrollPane1, new GridBagConstraints(0, 1, 5, 1, 1.0, 1.0 ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 1, 0, 2), 137, 108)); this.add(jSearchRoleListButton, new GridBagConstraints(4, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(8, 0, 0, 2), 0, 0)); this.add(jSearchOraganizationButton, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(8, 0, 0, 0), 0, 0)); this.add(jSearchMemberButton, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0 ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(8, 0, 0, 0), 0, 0)); this.add(jSearchTextField, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0 ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(8, 0, 0, 0), 277, 0)); // this.add(jMailListButton, new GridBagConstraints(4, 2, 1, 1, 0.0, 0.0 // ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 1, 2), 0, 0)); this.add(jRefreshButton, new GridBagConstraints(3, 2, 1, 1, 0.0, 0.0 ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 1, 5), 0, 0)); jScrollPane1.getViewport().add(jResultList, null); } /** * 将对话框中的组件显示状态复位 */ public void initComponent() { jSearchTextField.setText(""); model.removeAllElements() ; jResultList.updateUI(); } private void initUserModel() { // jScrollPane1.getViewport().removeAll(); // jScrollPane1.getViewport().add(jResultList, null); flag = "用户"; UserObject[] userInfo = null; try { userInfo = new RightManagementClientDelegate( LogonApplication.getUserEntityObject()) .fetchUserInfoByType(LogonApplication.getUserObject().getUserType()); } catch (Exception e) { } int length = userInfo.length; DefaultListModel alllistModel = new DefaultListModel(); for(int i = 0;i < length;i++) { alllistModel.addElement(userInfo[i]); model.addElement(userInfo[i]); } this.jResultList.setModel(alllistModel); } /** * 初始化组织模型 */ public void initGroupModel() { flag = "组"; DeptObject[] deptInfo = null; try { deptInfo = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchDepartmentInfo(); } catch (Exception e) { } int length = deptInfo.length; DefaultListModel alllistModel = new DefaultListModel(); for(int i = 0;i < length;i++) { alllistModel.addElement(deptInfo[i] + "(" + deptInfo[i].getNum() + ")"); model.addElement(deptInfo[i]); } this.jResultList.setModel(alllistModel); } public void initRoleModel() { flag = "角色列表"; String roleUserName = LogonApplication.getUserEntityObject() .getUserName(); UserObject roleLogonUserInfo; try { roleLogonUserInfo = new RightManagementClientDelegate( LogonApplication.getUserEntityObject()) .fetchUserInfoByName(roleUserName); RoleObject[] roleInfo = new RightManagementClientDelegate( LogonApplication.getUserEntityObject()) .fetchRoleInfoByType(roleLogonUserInfo.getUserType()); int length = roleInfo.length; DefaultListModel alllistModel = new DefaultListModel(); for (int i = 0; i < length; ++i) { alllistModel.addElement(roleInfo[i]); model.addElement(roleInfo[i]); } this.jResultList.setModel(alllistModel); } catch (VCIException e) { VCIOptionPane.showError(LogonApplication.frame, "RMIPFramework"); return; } } /** * 查询用户按钮事件处理 * @param e ActionEvent */ void jSearchMemberButton_actionPerformed(ActionEvent e) { flag = "用户"; String searchtext = jSearchTextField.getText().trim(); model.removeAllElements(); DefaultListModel allListModel = (DefaultListModel) JTIOrganizationMemberBean.this.jResultList .getModel(); allListModel.removeAllElements(); JTIOrganizationMemberBean.this.initUserModel(); if (!("".equals(searchtext))) { int size = JTIOrganizationMemberBean.this.jResultList.getModel() .getSize(); allListModel = new DefaultListModel(); for (int i = 0; i < size; ++i) { UserObject userObject = (UserObject) JTIOrganizationMemberBean.this.jResultList .getModel().getElementAt(i); if ((userObject.getTrueName().contains(searchtext)) || (userObject.getUserName().contains(searchtext))) { allListModel.addElement(userObject); } } JTIOrganizationMemberBean.this.jResultList.setModel(allListModel); } } /** * 角色查找按钮事件的处理 * @param e ActionEvent */ void jSearchRoleListButton_actionPerformed(ActionEvent e) { flag = "角色列表"; String searchtext = jSearchTextField.getText().trim(); model.removeAllElements(); DefaultListModel allListModel = (DefaultListModel) JTIOrganizationMemberBean.this.jResultList .getModel(); allListModel.removeAllElements(); JTIOrganizationMemberBean.this.initRoleModel(); if (!("".equals(searchtext))) { int size = JTIOrganizationMemberBean.this.jResultList.getModel() .getSize(); allListModel = new DefaultListModel(); for (int i = 0; i < size; ++i) { RoleObject roleObject = (RoleObject) JTIOrganizationMemberBean.this.jResultList .getModel().getElementAt(i); if ((roleObject.getName().contains(searchtext))) { allListModel.addElement(roleObject); } } JTIOrganizationMemberBean.this.jResultList.setModel(allListModel); } } /** * 根据用户名称,取得用户的PUID * @param userName String 用户名称 * @return String 用户的PUID */ public String getUserPUID(String userName) { boolean isExistInModel = false; if (userModel.size() <1) { initUserModel(); } Enumeration enUsers = userModel.elements(); UserObjectInfo obj = new UserObjectInfo(); while( enUsers.hasMoreElements() ) { obj = (UserObjectInfo) enUsers.nextElement(); if (userName.equalsIgnoreCase(obj.text)) { isExistInModel = true; break; } } if(isExistInModel) return obj.topuid(); else return ""; } public Object[] getUserNamePuid(String userName) { boolean isExistInModel = false; Object[] object = new Object[2]; object[0] = ""; object[1] = ""; if (userModel.size() <1) { initUserModel(); } Enumeration enUsers = userModel.elements(); UserObjectInfo obj = new UserObjectInfo(); while( enUsers.hasMoreElements() ) { obj = (UserObjectInfo) enUsers.nextElement(); if (userName.equalsIgnoreCase(obj.text)) { isExistInModel = true; break; } } if(isExistInModel) { object[0] = obj.topuid(); object[1] = obj.toString(); return object; } else return null; } //add by zdh public Object[] getPuidbyUserName(String sUserName){ boolean exist = false; Object[] object = new Object[2]; String userName = ""; String puid = ""; if(sUserName.indexOf("(")>-1){ userName = sUserName.substring(0,sUserName.indexOf("(")); } if(exist){ object[0] = puid; object[1] = sUserName; return object; } else return null; } /** * 组织按钮事件的处理 * @param e ActionEvent */ void jSearchOraganizationButton_actionPerformed(ActionEvent e) { flag = "组"; String searchtext = jSearchTextField.getText().trim(); model.removeAllElements(); DefaultListModel allListModel = (DefaultListModel) JTIOrganizationMemberBean.this.jResultList .getModel(); allListModel.removeAllElements(); JTIOrganizationMemberBean.this.initGroupModel(); if (!("".equals(searchtext))) { int size = JTIOrganizationMemberBean.this.jResultList.getModel() .getSize(); allListModel = new DefaultListModel(); for (int i = 0; i < size; ++i) { String deptObject = (String) JTIOrganizationMemberBean.this.jResultList .getModel().getElementAt(i); if ((deptObject.contains(searchtext))) { allListModel.addElement(deptObject); } } JTIOrganizationMemberBean.this.jResultList.setModel(allListModel); } // 获取组织树 // DeptingTreeDialog dialog = DeptingTreeDialog.getInstance(); // jScrollPane1.getViewport().add(dialog.getTreePanel(), null); } /** * 取得组内的成员 * @param groupName String 组名称 * @return Vector */ public Vector returnUserOfGroup(String groupName) throws java.lang.NullPointerException { Vector vec = new Vector(); boolean isInGroups = false; String puid=""; UserObjectInfo obj = new UserObjectInfo(); if(groupModel.size()<1) { initGroupModel(); } Enumeration enGroup = groupModel.elements(); while(enGroup.hasMoreElements()) { obj =(UserObjectInfo) enGroup.nextElement(); if(groupName.equalsIgnoreCase(obj.toString ())) { isInGroups = true; puid = obj.topuid(); break; } } if (isInGroups) { getUsersOfGroup(puid, vec); return vec; } else throw new java.lang.NullPointerException("系统中没有指定的组信息,请确定组: "+groupName+" 存在"); } public void getUsersOfGroup(String groupID,Vector usersOfGroup) { // int indexlength = OrgTransmission.GroupMembers.length; // for(int i=0;i0 ) { if (flag.equalsIgnoreCase("用户")) { str=""; str = "用户:"+str + user[0].toString(); } else if(flag.equalsIgnoreCase("组")) { str=""; str = "组织:"+str + user[0].toString(); // DeptObject deptObj = (DeptObject) user[0]; // str = "组织:"+str + deptObj.getName() + "(" + deptObj.getNum() + ")"; } else if(flag.equalsIgnoreCase("角色列表")) { str=""; str = "角色:"+str + user[0].toString(); } else { } } return str; } /** * 刷新按钮方法 * @param e */ void jRefreshButton_actionPerformed(ActionEvent e) { this.initUserModel(); this.initGroupModel(); this.initRoleModel(); if( flag.equals("用户")) { this.jSearchMemberButton_actionPerformed(e); } else if( flag.equals("组")) { this.jSearchOraganizationButton_actionPerformed(e); } else if(flag.equals("角色列表")) { jSearchRoleListButton_actionPerformed(e); } else{ } } } class JTIOrganizationMemberBean_jSearchMemberButton_actionAdapter implements java.awt.event.ActionListener { JTIOrganizationMemberBean adaptee; JTIOrganizationMemberBean_jSearchMemberButton_actionAdapter(JTIOrganizationMemberBean adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jSearchMemberButton_actionPerformed(e); } } /** *

Title:UserObject

*

Description: 人员、组织和邮件地址信息的封装类

*

Copyright: Copyright (c) 2004 该软件版权属于北京宏博远达科技有限公司,任何个人和团体未经许可不得使用该软件

*

Company: 北京宏博远达科技有限公司

* @author 胡磊 * @version 1.0 */ class UserObjectInfo { public String text; public String id; /** * Insert the method's description here. * Creation date: (2001-12-18 9:18:36) * @param text java.lang.String */ /** * 人员、组织和邮件地址信息的封装类的构造函数 * @param text String 人员、组织和邮件地址名称信息 */ public UserObjectInfo() { this.text=""; this.id =""; } public UserObjectInfo(String text) { this.text = text; this.id = ""; } /** * Insert the method's description here. * Creation date: (2001-12-18 9:17:46) * @param text java.lang.String * @param id java.lang.String */ /** * 人员、组织和邮件地址信息的封装类的构造函数 * @param text String 人员、组织和邮件地址名称信息 * @param id String 人员、组织和邮件地址名称的PUID */ public UserObjectInfo(String text, String id) { this.text = text; this.id = id; } /** * 返回人员、组织和邮件地址信息的名称 * @return String 返回人员、组织和邮件地址信息的名称 */ public String toString() { return text; } /** * 返回人员、组织和邮件地址信息的PUID * @return String 返回人员、组织和邮件地址信息的PUID */ public String topuid() { return id; } } class JTIOrganizationMemberBean_jSearchOraganizationButton_actionAdapter implements java.awt.event.ActionListener { JTIOrganizationMemberBean adaptee; JTIOrganizationMemberBean_jSearchOraganizationButton_actionAdapter(JTIOrganizationMemberBean adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jSearchOraganizationButton_actionPerformed(e); } } class JTIOrganizationMemberBean_jSearchMailListButton_actionAdapter implements java.awt.event.ActionListener { JTIOrganizationMemberBean adaptee; JTIOrganizationMemberBean_jSearchMailListButton_actionAdapter(JTIOrganizationMemberBean adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jSearchRoleListButton_actionPerformed(e); } } class JTIOrganizationMemberBean_jMailListButton_actionAdapter implements java.awt.event.ActionListener { JTIOrganizationMemberBean adaptee; JTIOrganizationMemberBean_jMailListButton_actionAdapter(JTIOrganizationMemberBean adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jMailListButton_actionPerformed(e); } } class JTIOrganizationMemberBean_jRefreshButton_actionAdapter implements java.awt.event.ActionListener { JTIOrganizationMemberBean adaptee; JTIOrganizationMemberBean_jRefreshButton_actionAdapter(JTIOrganizationMemberBean adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jRefreshButton_actionPerformed(e); } }