package com.vci.client.auth2.view;
|
|
import java.awt.BorderLayout;
|
import java.awt.Dimension;
|
import java.awt.Rectangle;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseListener;
|
import java.util.Locale;
|
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 javax.swing.ListModel;
|
import javax.swing.border.TitledBorder;
|
import javax.swing.table.DefaultTableModel;
|
|
import com.vci.client.LogonApplication;
|
import com.vci.client.common.objects.UserEntityObject;
|
import com.vci.client.common.objects.UserObject;
|
import com.vci.client.framework.delegate.RightManagementClientDelegate;
|
import com.vci.client.framework.systemConfig.stafforgmanage.ListLabelCellRenderForRightRole;
|
import com.vci.client.logon.base.BaseJDialog;
|
import com.vci.client.ui.image.BundleImage;
|
import com.vci.client.ui.locale.LocaleDisplay;
|
import com.vci.client.ui.swing.VCIOptionPane;
|
import com.vci.corba.common.VCIError;
|
|
public class UserSelectView extends BaseJDialog {
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 211987245249865484L;
|
private static UserSelectView instance;
|
private JButton conformBut = new JButton(LocaleDisplay.getI18nString(
|
"rmip.stafforg.operate.conform", "RMIPFramework", getLocale()));
|
private JButton cancelBut = new JButton(LocaleDisplay.getI18nString(
|
"rmip.stafforg.operate.cancel", "RMIPFramework", getLocale()));
|
private JList allUserList = new JList();
|
private JList choosedUserList = new JList();
|
private UserObject logonUserInfo = LogonApplication.getUserObject();
|
private JTextField searceText = new JTextField();
|
private DefaultTableModel parentModel = new DefaultTableModel();
|
public static UserSelectView getInstance(){
|
if(instance==null){
|
instance =new UserSelectView();
|
}
|
return instance;
|
}
|
private UserSelectView() {
|
super(LogonApplication.frame);
|
|
setModal(true);
|
init();
|
}
|
|
private void init() {
|
JLabel titleLabel = new JLabel();
|
titleLabel.setText("主体添加用户");
|
titleLabel.setIcon(new BundleImage().createImageIcon("role.png"));
|
JPanel bottomPanel = new JPanel();
|
bottomPanel.add(this.conformBut);
|
bottomPanel.add(this.cancelBut);
|
|
JPanel contentPanel = initCenterContentPanel();
|
initUser();
|
JPanel midPanel = new JPanel();
|
midPanel.setLayout(new BorderLayout());
|
JTextField jTextField1 = new JTextField();
|
JTextField jTextField2 = new JTextField();
|
jTextField1.setPreferredSize(new Dimension(63, 2));
|
jTextField2.setPreferredSize(new Dimension(63, 2));
|
midPanel.add(jTextField1, "North");
|
midPanel.add(jTextField2, "South");
|
midPanel.add(contentPanel, "Center");
|
|
setLayout(new BorderLayout());
|
add(titleLabel, "North");
|
add(midPanel, "Center");
|
add(bottomPanel, "South");
|
|
initDialogSize(600, 450);
|
}
|
|
@SuppressWarnings("unchecked")
|
private JPanel initCenterContentPanel() {
|
JPanel contentPanel = new JPanel();
|
contentPanel.setLayout(null);
|
|
JScrollPane jspAllRole = new JScrollPane();
|
jspAllRole.getViewport().add(this.allUserList);
|
|
JLabel searchName = new JLabel("用户");
|
JButton queryBtn = new JButton("查询");
|
searchName.setBounds(new Rectangle(100, 10, 90, 26));
|
this.searceText.setBounds(new Rectangle(160, 10, 180, 26));
|
queryBtn.setBounds(new Rectangle(370, 10, 60, 26));
|
queryBtn.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent arg0) {
|
DefaultListModel allListModel = (DefaultListModel) UserSelectView.this.allUserList
|
.getModel();
|
String queryStr = UserSelectView.this.searceText.getText()
|
.trim();
|
allListModel.removeAllElements();
|
UserSelectView.this.initUser();
|
if (!("".equals(queryStr))) {
|
int size = UserSelectView.this.allUserList.getModel()
|
.getSize();
|
allListModel = new DefaultListModel();
|
for (int i = 0; i < size; ++i) {
|
UserObject userObject = (UserObject) UserSelectView.this.allUserList
|
.getModel().getElementAt(i);
|
if ((userObject.getTrueName().contains(queryStr))
|
|| (userObject.getUserName().contains(queryStr))) {
|
allListModel.addElement(userObject);
|
}
|
}
|
UserSelectView.this.allUserList.setModel(allListModel);
|
}
|
}
|
});
|
contentPanel.add(searchName);
|
contentPanel.add(this.searceText);
|
contentPanel.add(queryBtn);
|
|
jspAllRole.setPreferredSize(new Dimension(210, 300));
|
jspAllRole.setBounds(new Rectangle(30, 50, 210, 300));
|
jspAllRole.setBorder(new TitledBorder("未选择用户"));
|
this.allUserList.setCellRenderer(new ListLabelCellRenderForRightRole());
|
|
JScrollPane jspChooseRole = new JScrollPane();
|
jspChooseRole.getViewport().add(this.choosedUserList);
|
jspChooseRole.setPreferredSize(new Dimension(210, 300));
|
jspChooseRole.setBounds(new Rectangle(330, 50, 210, 300));
|
jspChooseRole.setBorder(new TitledBorder("已选择用户"));
|
this.choosedUserList
|
.setCellRenderer(new ListLabelCellRenderForRightRole());
|
|
DefaultListModel selectListModel = new DefaultListModel();
|
|
// old
|
Vector<Vector<String>> oldUsers = (Vector<Vector<String>>) getParentModel()
|
.getDataVector();
|
|
ListModel listModel = this.allUserList.getModel();
|
UserObject[] selectUserObjs = new UserObject[oldUsers.size()];
|
if (oldUsers != null && oldUsers.size() > 0) {
|
for (int i = 0; i < oldUsers.size(); i++) {
|
String id = oldUsers.get(i).get(0);
|
for (int j = 0; j < listModel.getSize(); j++) {
|
UserObject user = (UserObject) listModel.getElementAt(j);
|
if (user.getId().equals(id)) {
|
selectUserObjs[i] = user;
|
}
|
}
|
}
|
for (int i = 0; i < selectUserObjs.length; ++i) {
|
selectListModel.addElement(selectUserObjs[i]);
|
}
|
}
|
|
// String roleId = this.rightRoleObj.getId();
|
// int userType = this.logonUserInfo.getUserType();
|
// try {
|
// UserObject[] selectUserObjs = new
|
// RightManagementClientDelegate().fetchUserInfoByRoleId(roleId,
|
// userType);
|
// if (selectUserObjs.length != 0)
|
// for (int i = 0; i < selectUserObjs.length; ++i)
|
// selectListModel.addElement(selectUserObjs[i]);
|
// }
|
// catch (VCIException e1)
|
// {
|
// VCIOptionPane.showError(LogonApplication.frame, "RMIPFramework", e1);
|
// }
|
|
this.choosedUserList.setModel(selectListModel);
|
JButton addButton = new JButton(">>");
|
addButton.setBounds(260, 100, 50, 25);
|
|
JButton removeButton = new JButton("<<");
|
removeButton.setBounds(260, 250, 50, 25);
|
addButton.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
UserSelectView.this.addButton_actionPerformed();
|
}
|
});
|
removeButton.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
UserSelectView.this.removeButton_actionPerformed();
|
}
|
});
|
this.conformBut.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
UserSelectView.this.conformCreate();
|
}
|
});
|
this.cancelBut.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
UserSelectView.this.cancelCreate();
|
}
|
});
|
contentPanel.add(jspChooseRole);
|
contentPanel.add(jspAllRole);
|
contentPanel.add(addButton);
|
contentPanel.add(removeButton);
|
return contentPanel;
|
}
|
|
private void initUser() {
|
try {
|
UserObject[] userInfo = null;
|
try {
|
userInfo = new RightManagementClientDelegate(
|
LogonApplication.getUserEntityObject())
|
.fetchUserInfoByType(this.logonUserInfo.getUserType());
|
} catch (Exception e) {
|
throw new VCIError("UserSelect-00001",new String []{e.getMessage()});
|
}
|
int length = userInfo.length;
|
DefaultListModel alllistModel = new DefaultListModel();
|
DefaultListModel selectlistModel = (DefaultListModel) this.choosedUserList
|
.getModel();
|
int selectLenth = selectlistModel.getSize();
|
for (int i = 0; i < length; ++i) {
|
if (userInfo[i].getStatus() == 1) {
|
continue;
|
}
|
boolean hasSelect = false;
|
for (int j = 0; j < selectLenth; ++j) {
|
UserObject selectUserInfo = (UserObject) selectlistModel
|
.get(j);
|
if (selectUserInfo.getId().equals(userInfo[i].getId())) {
|
hasSelect = true;
|
break;
|
}
|
}
|
if (!(hasSelect)) {
|
alllistModel.addElement(userInfo[i]);
|
}
|
}
|
this.allUserList.setModel(alllistModel);
|
} catch (VCIError e) {
|
VCIOptionPane.showError(LogonApplication.frame, "RMIPFramework");
|
return;
|
}
|
}
|
|
private void addButton_actionPerformed() {
|
Object[] objs = this.allUserList.getSelectedValues();
|
if ((objs == null) || (objs.length == 0)) {
|
VCIOptionPane.showMessageDialog(this, "请选择要增加的成员!");
|
return;
|
}
|
int len = objs.length;
|
UserObject[] addUserInfo = new UserObject[len];
|
for (int i = 0; i < len; ++i) {
|
addUserInfo[i] = ((UserObject) objs[i]);
|
}
|
DefaultListModel selectListModel = (DefaultListModel) this.choosedUserList
|
.getModel();
|
DefaultListModel allListModel = (DefaultListModel) this.allUserList
|
.getModel();
|
|
int size = selectListModel.getSize();
|
for (int i = 0; i < size; ++i) {
|
UserObject entity = (UserObject) selectListModel.getElementAt(i);
|
for (int j = 0; j < len; ++j) {
|
if (entity.getId().equals(addUserInfo[j].getId())) {
|
VCIOptionPane.showMessageDialog(this, "要增加的成员已经存在,请重新选择!");
|
return;
|
}
|
}
|
}
|
for (int i = 0; i < len; ++i) {
|
selectListModel.addElement(addUserInfo[i]);
|
allListModel.removeElement(addUserInfo[i]);
|
}
|
}
|
|
private void removeButton_actionPerformed() {
|
Object[] objs = this.choosedUserList.getSelectedValues();
|
if ((objs == null) || (objs.length == 0)) {
|
VCIOptionPane.showMessageDialog(this, "请选择要移除的成员!");
|
return;
|
}
|
int len = objs.length;
|
UserObject[] deleteUser = new UserObject[len];
|
for (int i = 0; i < len; ++i) {
|
deleteUser[i] = ((UserObject) objs[i]);
|
}
|
DefaultListModel listModel = (DefaultListModel) this.choosedUserList
|
.getModel();
|
DefaultListModel allListModel = (DefaultListModel) this.allUserList
|
.getModel();
|
for (int i = 0; i < listModel.size(); ++i) {
|
UserObject entity = (UserObject) listModel.getElementAt(i);
|
for (int j = 0; j < len; ++j)
|
if (entity.getId().equals(deleteUser[j].getId())) {
|
listModel.removeElement(entity);
|
allListModel.addElement(entity);
|
--i;
|
break;
|
}
|
}
|
}
|
|
public UserObject[] getSelectedUserObj() {
|
DefaultListModel listModel = (DefaultListModel) this.choosedUserList
|
.getModel();
|
int size = listModel.size();
|
UserObject[] userInfo = new UserObject[size];
|
for (int i = 0; i < size; ++i) {
|
userInfo[i] = ((UserObject) listModel.get(i));
|
}
|
return userInfo;
|
}
|
|
public void conformCreate() {
|
|
UserObject[] selectedUserObj = getSelectedUserObj();
|
getParentModel().setRowCount(selectedUserObj.length);
|
for (int i = 0; i < selectedUserObj.length; i++) {
|
getParentModel().setValueAt((Object) selectedUserObj[i].getUserName(), i,
|
0);
|
getParentModel().setValueAt(
|
(Object) selectedUserObj[i].getTrueName(), i, 1);
|
}
|
// if (null != oldUsers && oldUsers.size() > 0) {
|
// getParentModel().setRowCount(
|
// selectedUserObj.length + oldUsers.size());
|
// for (int j = 0; j < oldUsers.size(); j++) {
|
// for(int n=0;n<newUsers.size();n++){
|
// if (!newUsers.get(n).get(0).equals(oldUsers.get(j).get(0))) {
|
// newUsers.add(oldUsers.get(j));
|
// }
|
// }
|
//
|
// // userInfo.add(((Vector)oldUsers.get(j)).get(0));
|
// // userInfo.add(((Vector)oldUsers.get(j)).get(1));
|
// }
|
// // newUsers.addAll(oldUsers);
|
// } else {
|
// getParentModel().setRowCount(selectedUserObj.length);
|
// }
|
// for (int m = 0; m < newUsers.size(); m++) {
|
// getParentModel().setValueAt((Object) newUsers.get(m).get(0), m, 0);
|
// getParentModel().setValueAt((Object) newUsers.get(m).get(1), m, 1);
|
// }
|
|
// getParentModel().setValueAt(aValue, row, column)
|
// String[] userIds = new String[selectedUserObj.length];
|
// for (int i = 0; i < selectedUserObj.length; ++i){
|
// userIds[i] = selectedUserObj[i].getId();
|
// }
|
|
// try {
|
// new RightManagementClientDelegate(
|
// LogonApplication.getUserEntityObject()).saveRight(roleId,
|
// userIds);
|
// } catch (VCIException e) {
|
// VCIOptionPane.showError(LogonApplication.frame, "RMIPFramework", e);
|
// return;
|
// }
|
dispose();
|
}
|
|
public void cancelCreate() {
|
dispose();
|
}
|
|
@SuppressWarnings("deprecation")
|
public static void main(String[] args) {
|
UserEntityObject ueo = new UserEntityObject();
|
ueo.setIp("192.168.0.50");
|
ueo.setUserName("eddieliu");
|
com.vci.client.LogonApplication.userEntityObject = ueo;
|
UserObject user = new UserObject();
|
user.setUserType((short)2);
|
com.vci.client.LogonApplication.userObject = user;
|
JPanel panel = new JPanel();
|
|
JFrame f = new JFrame();
|
|
// panel.add(dialog);
|
f.add(panel);
|
|
JButton conformBut = new JButton(LocaleDisplay.getI18nString(
|
"rmip.stafforg.operate.conform", "RMIPFramework",
|
Locale.getDefault()));
|
panel.add(conformBut);
|
conformBut.addMouseListener(new MouseListener() {
|
|
@Override
|
public void mouseReleased(MouseEvent e) {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public void mousePressed(MouseEvent e) {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public void mouseExited(MouseEvent e) {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public void mouseEntered(MouseEvent e) {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public void mouseClicked(MouseEvent e) {
|
// TODO Auto-generated method stub
|
UserSelectView dialog = new UserSelectView();
|
dialog.setVisible(true);
|
}
|
});
|
|
f.show();
|
}
|
|
public DefaultTableModel getParentModel() {
|
return parentModel;
|
}
|
|
public void setParentModel(DefaultTableModel parentModel) {
|
this.parentModel = parentModel;
|
}
|
|
}
|