package com.vci.client.framework.systemConfig.stafforgmanage;
|
|
import java.awt.BorderLayout;
|
import java.awt.FlowLayout;
|
import java.awt.event.ActionEvent;
|
import java.util.HashMap;
|
import java.util.LinkedHashMap;
|
import java.util.LinkedList;
|
import java.util.Map;
|
|
import javax.swing.JPanel;
|
import javax.swing.border.TitledBorder;
|
|
import com.vci.client.LogonApplication;
|
import com.vci.client.common.VCIBasePanel;
|
import com.vci.client.framework.delegate.RightManagementClientDelegate;
|
import com.vci.client.framework.rightConfig.object.FunctionObject;
|
import com.vci.client.framework.systemConfig.object.CombinationObject;
|
import com.vci.client.framework.util.RightControlUtil;
|
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.VCIOptionPane;
|
import com.vci.client.ui.swing.VCISwingUtil;
|
import com.vci.client.ui.swing.components.VCIJButton;
|
import com.vci.client.ui.swing.components.VCIJPanel;
|
import com.vci.client.ui.swing.components.table.AbstractVCIJTableDataProvider;
|
import com.vci.client.ui.swing.components.table.VCIJTableNode;
|
import com.vci.client.ui.swing.components.table.VCIJTablePanel;
|
/**
|
* 密码组合方式管理界面
|
* <p>Title: </p>
|
* <p>Description: </p>
|
* <p>Copyright: Copyright (c) 2012</p>
|
* <p>Company: VCI</p>
|
* @author wangxl
|
* @time 2013-1-3
|
* @version 1.0
|
*/
|
public class CombinationTablePanel extends VCIBasePanel {
|
|
private static final long serialVersionUID = 1L;
|
|
private VCIJButton addButton = VCISwingUtil.createVCIJButton("",LocaleDisplay.getI18nString("rmip.stafforg.operate.add", "RMIPFramework", getLocale()) ,LocaleDisplay.getI18nString("rmip.stafforg.operate.add", "RMIPFramework", getLocale()) , "create.gif",null);
|
private VCIJButton editButton = VCISwingUtil.createVCIJButton("",LocaleDisplay.getI18nString("rmip.stafforg.operate.modify", "RMIPFramework", getLocale()) ,LocaleDisplay.getI18nString("rmip.stafforg.operate.modify", "RMIPFramework", getLocale()) , "modify.gif",null);
|
private VCIJButton deleteButton = VCISwingUtil.createVCIJButton("",LocaleDisplay.getI18nString("rmip.stafforg.operate.delete", "RMIPFramework", getLocale()) ,LocaleDisplay.getI18nString("rmip.stafforg.operate.delete", "RMIPFramework", getLocale()), "delete.gif" ,null);
|
private String userName = LogonApplication.getUserEntityObject().getUserName();
|
private LinkedList<VCIJButton> selfCustomButtons = new LinkedList<VCIJButton>();
|
{
|
selfCustomButtons.add(addButton);
|
selfCustomButtons.add(editButton);
|
selfCustomButtons.add(deleteButton);
|
}
|
|
public CombinationTablePanel(FunctionObject funcObj){
|
super(funcObj);
|
init();
|
checkPermission();
|
}
|
private void init() {
|
LogonApplication.getUserEntityObject().setModules(this.getClass().getName());
|
initComponents();
|
initAction();//初始化按钮点击事件
|
}
|
private void initComponents() {
|
setLayout(new BorderLayout());
|
add(initTablePanel(), BorderLayout.CENTER);
|
}
|
|
private void checkPermission(){
|
checkRight(RightControlUtil.CREATE, addButton);
|
checkRight(RightControlUtil.UPDATE, editButton);
|
checkRight(RightControlUtil.DELETE, deleteButton);
|
}
|
|
class MyDataProvider extends AbstractVCIJTableDataProvider<CombinationObject>{
|
|
@Override
|
public CombinationObject[] getDatas(int pageIndex, int pageSize) {
|
CombinationObject[] combinationObjs = null;
|
try {
|
combinationObjs = new RightManagementClientDelegate(LogonApplication.getUserEntityObject())
|
.fetchCombinationsToPage(pageIndex,pageSize);
|
} catch (VCIException e) {
|
VCIOptionPane.showError(LogonApplication.frame,"RMIPFramework", e);
|
return null;
|
}
|
return combinationObjs;
|
}
|
|
@Override
|
public VCIJTableNode<CombinationObject> getNewRowNode(CombinationObject dataObj) {
|
VCIJTableNode<CombinationObject> node = new VCIJTableNode<CombinationObject>(dataObj);
|
node.setPropertyValue(getSpecialColumns()[0], dataObj.getName());
|
node.setPropertyValue(getSpecialColumns()[1], dataObj.getDescription());
|
return node;
|
}
|
|
@Override
|
public String[] getSpecialColumns() {
|
return "名称, 描述".split(",");
|
}
|
|
@Override
|
public int getTotal() {
|
int num = 0 ;
|
CombinationObject[] combinationObjs = null;
|
try {
|
combinationObjs = new RightManagementClientDelegate(LogonApplication.getUserEntityObject())
|
.fetchAllCombinations();
|
} catch (VCIException e) {
|
VCIOptionPane.showError(LogonApplication.frame,"RMIPFramework", e);
|
return 0;
|
}
|
if(combinationObjs !=null){
|
num = combinationObjs.length;
|
}
|
return num;
|
}
|
|
}
|
|
MyDataProvider dataProvider = new MyDataProvider();
|
VCIJTablePanel<CombinationObject> tablePanel = new VCIJTablePanel<CombinationObject>(dataProvider);
|
private VCIJPanel tablePanel(){
|
int startIndex = dataProvider.getDataColumnStartIndex();
|
LinkedHashMap<Integer, Integer> widthMaps = new LinkedHashMap<Integer, Integer>();
|
widthMaps.put(startIndex++, 250);widthMaps.put(startIndex++, 250);widthMaps.put(startIndex++, 250);
|
tablePanel.setColumnWidthMaps(widthMaps);
|
tablePanel.setCustomButtonFlowAlign(FlowLayout.CENTER);
|
tablePanel.setCustomButtons(selfCustomButtons);
|
tablePanel.setShowPaging(true);
|
tablePanel.setPageButtonFlowAlign(FlowLayout.CENTER);
|
tablePanel.setShowExport(false);
|
tablePanel.buildTablePanel();
|
tablePanel.refreshTableData();
|
return tablePanel;
|
}
|
|
|
private JPanel initTablePanel(){
|
|
JPanel pal = new JPanel();
|
pal.setLayout(new BorderLayout());
|
pal.setBorder(new TitledBorder("密码组合方式"));
|
pal.add(tablePanel(), BorderLayout.CENTER);
|
pal.setVisible(true);
|
return pal;
|
}
|
|
/**
|
* 事件
|
*/
|
private void initAction(){
|
addButton.addActionListener(new java.awt.event.ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
addButton_conform();
|
}
|
});
|
|
editButton.addActionListener(new java.awt.event.ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
editButton_conform();
|
}
|
});
|
|
deleteButton.addActionListener(new java.awt.event.ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
deleteButton_conform();
|
}
|
});
|
|
}
|
|
/**
|
* 添加事件
|
*/
|
private void addButton_conform(){
|
new CombinationDialog(this,"addCombination");
|
}
|
|
/**
|
* 修改事件
|
*/
|
private void editButton_conform(){
|
|
int len = tablePanel.getSelectedRowIndexs().length;
|
if(len == 0){
|
VCIOptionPane.showMessage(this,
|
"请选择密码组合方式再进行修改操作!");
|
return;
|
}
|
if (len > 1){
|
VCIOptionPane.showMessage(this,
|
LocaleDisplay.getI18nString("rmip.stafforg.operate.deptedit2", "RMIPFramework", getLocale()));
|
return;
|
}
|
CombinationObject obj = tablePanel.getSelectedRowObjects().get(0);
|
new CombinationDialog (this,obj,"editCombination");
|
|
}
|
/**
|
* 删除事件
|
*/
|
private void deleteButton_conform(){
|
int len = tablePanel.getSelectedRowIndexs().length;
|
if(len == 0){
|
VCIOptionPane.showMessage(this,
|
"请选择要删除的对象!");
|
return;
|
}
|
String[] puids = new String[len];
|
|
Map<String, String> map = new HashMap<String, String>();
|
for (int i = 0; i < len; i++) {
|
CombinationObject combinationInfo = tablePanel.getSelectedRowObjects().get(i);
|
puids[i] = combinationInfo.getId();
|
map.put(combinationInfo.getId(), combinationInfo.getName());
|
}
|
/**
|
* 删除前,检验密码组合方式是否被密码策略引用,若被引用,不能进行删除。
|
*/
|
RightManagementClientDelegate del = new RightManagementClientDelegate(LogonApplication.getUserEntityObject());
|
for(int k=0;k<puids.length;k++) {
|
int count = 0 ;
|
try {
|
count = del.checkCombinationIsquotedCount(puids[k]);
|
if(count > 0) {
|
VCIOptionPane.showMessageDialog(LogonApplication.frame, "组合方式:"+map.get(puids[k]) +"已经被引用,不能对其进行删除操作!");
|
return;
|
}
|
|
} catch (VCIException e) {
|
e.printStackTrace();
|
VCIOptionPane.showError(LogonApplication.frame,"RMIPFramework", e);
|
return ;
|
}
|
}
|
|
int ok=VCIOptionPane.showQuestion(LogonApplication.frame,
|
LocaleDisplay.getI18nString("rmip.stafforg.operate.pwdgroupdelete", "RMIPFramework", getLocale()));
|
|
if (ok == 0) {
|
boolean rs=true;
|
try {
|
rs = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).deleteCombination(puids);
|
} catch (VCIException e) {
|
VCIOptionPane.showError(LogonApplication.frame,"RMIPFramework", e);
|
return ;
|
}
|
if (!rs) {
|
return;
|
}
|
}else{
|
return;
|
}
|
tablePanel.refreshTableData();
|
}
|
}
|