package com.vci.client.framework.systemConfig.stafforgmanage;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.vci.client.LogonApplication;
import com.vci.client.common.objects.UserObject;
import com.vci.client.framework.delegate.RightManagementClientDelegate;
import com.vci.client.framework.systemConfig.object.PasswordStrategyObject;
import com.vci.client.logon.base.BaseJDialog;
import com.vci.client.ui.exception.VCIException;
import com.vci.client.ui.image.BundleImage;
import com.vci.client.ui.locale.LocaleDisplay;
import com.vci.client.ui.swing.VCIOptionPane;
/**
*
Title: 为人员设置密级
* Description:
* Copyright: Copyright (c) 2012
* Company: VCI
* @author wangxl
* @time 2012-5-23
* @version 1.0
*/
public class PasswordStrategySetingDialog extends BaseJDialog{
private static final long serialVersionUID = 1L;
private JLabel secretLevelLabel = new JLabel();
private JComboBox secretPsdComBox = new JComboBox();
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 UserTablePanel userPanel;
private List userList;
public PasswordStrategySetingDialog(UserTablePanel userPanel ,List userList){
super(LogonApplication.frame);
this.userList = userList;
this.userPanel = userPanel;
this.setModal(true);
init();
}
/**
* 初始化界面
*/
private void init() {
JLabel titleLabel = new JLabel();
titleLabel.setText("设置密码策略");
titleLabel.setIcon(new BundleImage().createImageIcon ("folder_images.gif"));
JPanel bottomPanel = new JPanel();
bottomPanel.add(conformBut);
bottomPanel.add(cancelBut);
JPanel contentPanel = initCenterContentPanel();
JPanel midPanel = new JPanel();
midPanel.setLayout(new BorderLayout());
midPanel.add(contentPanel, BorderLayout.CENTER);
this.setLayout(new BorderLayout());
this.add(titleLabel, BorderLayout.NORTH);
this.add(midPanel, BorderLayout.CENTER);
this.add(bottomPanel, BorderLayout.SOUTH);
// int x = (int)(this.getParent().getLocationOnScreen().getX()) + 200;
// int y = (int)(this.getParent().getLocationOnScreen().getY()) + 80;
// this.setLocation(x , y);
// this.setSize(400, 200);
initDialogSize(400, 200);
this.setVisible(true);
}
private JPanel initCenterContentPanel() {
JPanel contentPanel = new JPanel();
contentPanel.setLayout(null);
secretLevelLabel.setText("密码策略:");
secretLevelLabel.setBounds(60, 30, 60, 25);
secretPsdComBox.setBounds(130, 30, 150, 25);
initPasswordStrategy();
conformBut.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
addButton_actionPerformed();
}
});
cancelBut.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
cancelCreate();
}
});
contentPanel.add(secretLevelLabel);
contentPanel.add(secretPsdComBox);
return contentPanel;
}
private void addButton_actionPerformed() {
String passwordStrategyId = "";
if (secretPsdComBox.getSelectedItem() instanceof PasswordStrategyObject){
passwordStrategyId = ((PasswordStrategyObject)secretPsdComBox.getSelectedItem()).getId() == null ? "" : ((PasswordStrategyObject)secretPsdComBox.getSelectedItem()).getId() ;
}
String[] userIds = new String[userList.size()];
for (int i = 0 ; i < userList.size() ; i ++){
userIds[i] = userList.get(i).getId();
}
try{
new RightManagementClientDelegate(LogonApplication.getUserEntityObject())
.saveUserPasswordStrateg(userIds,passwordStrategyId);
}catch(VCIException e) {
VCIOptionPane.showError(LogonApplication.frame,"RMIPFramework", e);
return ;
}
userPanel.tablePanel.refreshTableData();
this.dispose();
}
public void cancelCreate(){
this.dispose();
}
/**
* Description: 初始化
*
* @author wangxl
* @time 2012-5-23
*/
private void initPasswordStrategy() {
try {
//增加了一个空的密码策略选项
// secretPsdComBox.addItem(new PasswordStrategyObject());
PasswordStrategyObject[] objs = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).fetchAllPasswordStrategy();
int size = objs.length;
for (int i = 0; i < size; i++) {
secretPsdComBox.addItem(objs[i]);
}
if (userList.size() == 1){
PasswordStrategyObject userPasswordStrategyObj = new RightManagementClientDelegate(LogonApplication.getUserEntityObject())
.fetchPasswordStrategyByUserId(userList.get(0).getId());
if (userPasswordStrategyObj != null){
int count = secretPsdComBox.getItemCount();
for (int i = 0 ; i < count ; i++){
PasswordStrategyObject secObj = (PasswordStrategyObject)secretPsdComBox.getItemAt(i);
if (userPasswordStrategyObj.getId().equals(secObj.getId())){
secretPsdComBox.setSelectedIndex(i);
break;
}
}
}
}
} catch (VCIException e) {
VCIOptionPane.showError(LogonApplication.frame,"RMIPFramework", e);
return ;
}
}
}