package com.vci.client.framework.systemConfig.stafforgmanage;
|
|
import java.awt.BorderLayout;
|
import java.awt.FlowLayout;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.util.HashMap;
|
import java.util.LinkedHashMap;
|
import java.util.LinkedList;
|
import java.util.Map;
|
|
import javax.swing.JButton;
|
import javax.swing.JPanel;
|
import javax.swing.border.TitledBorder;
|
|
import org.apache.poi.ss.formula.functions.T;
|
|
import com.vci.client.LogonApplication;
|
import com.vci.client.common.VCIBasePanel;
|
import com.vci.client.common.objects.RoleObject;
|
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.rightConfig.object.FunctionObject;
|
import com.vci.client.framework.specialrole.ModuleInterface.IModuleShow;
|
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;
|
import com.vci.client.ui.util.UIHelper;
|
import com.vci.mw.ClientContextVariable;
|
/**
|
* <p>Title:RoleTablePanel </p>
|
* <p>Description: 角色管理界面</p>
|
* <p>Copyright: Copyright (c) 2012</p>
|
* <p>Company: VCI</p>
|
* @author wangxl
|
* @time 2012-5-11
|
* @version 1.0
|
*/
|
public class RoleTablePanel extends VCIBasePanel implements IModuleShow{
|
|
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 VCIJButton btnDisplay = VCISwingUtil.createVCIJButton("", "统计","统计","group.gif",null);
|
private VCIJButton rightButton = VCISwingUtil.createVCIJButton("", "分配成员","分配成员", "user.gif" ,null);
|
private VCIJButton btnImport = VCISwingUtil.createVCIJButton("", "导入角色","导入角色", "usertask.gif" ,null);
|
private RightManagementClientDelegate rightDel = new RightManagementClientDelegate(LogonApplication.getUserEntityObject());
|
private String userName = LogonApplication.getUserEntityObject().getUserName();
|
|
private String logonUserId = "",logonRoleId;
|
private String moduleName = "";
|
private String iconName,moduleShowInfo ;
|
|
// private SpecialRoleObject specialRoleObject = new SpecialRoleObject();
|
// public SpecialRoleObject getSpecialRoleObject() {
|
// return specialRoleObject;
|
// }
|
//
|
// public void setSpecialRoleObject(SpecialRoleObject specialRoleObject) {
|
// this.specialRoleObject = specialRoleObject;
|
// }
|
public String getLogonUserId() {
|
return logonUserId;
|
}
|
public void setLogonUserId(String logonUserId) {
|
this.logonUserId = logonUserId;
|
}
|
public String getLogonRoleId() {
|
return logonRoleId;
|
}
|
public void setLogonRoleId(String logonRoleId) {
|
this.logonRoleId = logonRoleId;
|
}
|
public void setModuleName(String moduleName) {
|
this.moduleName = moduleName;
|
}
|
public void setIconName(String iconName) {
|
this.iconName = iconName;
|
}
|
public void setModuleShowInfo(String moduleShowInfo) {
|
this.moduleShowInfo = moduleShowInfo;
|
}
|
private LinkedList<VCIJButton> selfCustomButtons = new LinkedList<VCIJButton>();
|
{
|
selfCustomButtons.add(addButton);
|
selfCustomButtons.add(editButton);
|
selfCustomButtons.add(deleteButton);
|
|
UserObject user = LogonApplication.getUserObject();
|
if (RightControlUtil.isAdminOrDeveloperOrRoot(user.getUserName()) || RightControlUtil.isThreeAdmin(RightControlUtil.ThreeAdminEnum.SECADMIN))
|
selfCustomButtons.add(rightButton);
|
|
selfCustomButtons.add(btnDisplay);
|
selfCustomButtons.add(btnImport);
|
}
|
|
|
public RoleTablePanel(FunctionObject funcObj){
|
super(funcObj);
|
init();
|
// checkPermission();
|
}
|
private void init() {
|
//LogonApplication.getUserEntityObject().setModules(this.getClass().getName());
|
LogonApplication.getUserEntityObject().setModules(this.getModuleName());//"角色管理");
|
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);
|
checkRight(RightControlUtil.FREEZE, rightButton);
|
checkRight(RightControlUtil.DISCARD, btnDisplay);
|
}
|
|
class MyDataProvider extends AbstractVCIJTableDataProvider<RoleObject>{
|
|
@Override
|
public RoleObject[] getDatas(int pageNo, int pageSize) {
|
RoleObject[] roleObjs = null;
|
try {
|
roleObjs = new RightManagementClientDelegate(LogonApplication.getUserEntityObject())
|
.fetchRoleInfoByUserName(pageNo,pageSize,userName);
|
} catch (VCIException e) {
|
VCIOptionPane.showError(LogonApplication.frame,"RMIPFramework", e);
|
return null;
|
}
|
return roleObjs;
|
}
|
|
@Override
|
public VCIJTableNode<RoleObject> getNewRowNode(RoleObject dataObj) {
|
VCIJTableNode<RoleObject> node = new VCIJTableNode<RoleObject>(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() {
|
try {
|
total = new RightManagementClientDelegate(LogonApplication.getUserEntityObject())
|
.getRoleTotalByUserName(userName);
|
} catch (VCIException e) {
|
e.printStackTrace();
|
VCIOptionPane.showError(LogonApplication.frame,"RMIPFramework", e);
|
}
|
return this.total;
|
}
|
|
}
|
|
MyDataProvider dataProvider = new MyDataProvider();
|
VCIJTablePanel<RoleObject> tablePanel = new VCIJTablePanel<RoleObject>(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);
|
//add by caill 2016.1.20
|
tablePanel.setShowExport(true);
|
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();
|
}
|
});
|
|
rightButton.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent arg0) {
|
rightButton_conform();
|
}
|
});
|
|
btnDisplay.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent arg0) {
|
btnDisplay_conform();
|
}
|
});
|
//add by caill start 2016.1.20为角色管理添加导入功能
|
btnImport.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {
|
ImportData();
|
tablePanel.refreshTableData(); //刷新界面
|
}});
|
//add by caill end
|
}
|
//add by caill start 2016.1.20 创建角色导入的界面
|
private void ImportData(){
|
RolesImportDialog eid = new RolesImportDialog(this);
|
eid.init();
|
eid.setSize(UIHelper.DIALOG_DEFAULT_WIDTH, UIHelper.DIALOG_DEFAULT_HEIGHT);
|
eid.setLocationRelativeTo(ClientContextVariable.getFrame());
|
eid.setVisible(true);
|
}
|
//add by caill end
|
/**
|
* 添加事件
|
*/
|
private void addButton_conform(){
|
new RoleDialog(this,"addRole");
|
}
|
|
/**
|
* 修改事件
|
*/
|
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;
|
}
|
RoleObject obj = tablePanel.getSelectedRowObjects().get(0);
|
try {
|
UserObject fetchUserInfoByName = rightDel.fetchUserInfoByName(LogonApplication.getUserEntityObject().getUserName());
|
if(fetchUserInfoByName.getUserType()!=0){
|
if(obj.getType()==1){
|
VCIOptionPane.showMessage(this,
|
"当前用户不可以修改三员角色");
|
return;
|
}
|
}
|
} catch (VCIException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
new RoleDialog (this,obj,"editRole");
|
|
}
|
/**
|
* 删除事件
|
*/
|
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++) {
|
RoleObject roleInfo = tablePanel.getSelectedRowObjects().get(i);
|
try {
|
UserObject fetchUserInfoByName = rightDel.fetchUserInfoByName(LogonApplication.getUserEntityObject().getUserName());
|
if(fetchUserInfoByName.getUserType()!=0){
|
if(roleInfo.getType()==1){
|
VCIOptionPane.showMessage(this,
|
"当前用户不可以删除三员角色");
|
return;
|
}
|
}
|
} catch (VCIException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
puids[i] = roleInfo.getId();
|
map.put(roleInfo.getId(), roleInfo.getName());
|
}
|
RightManagementClientDelegate del = new RightManagementClientDelegate(LogonApplication.getUserEntityObject());
|
for(int k=0;k<puids.length;k++) {
|
int count = 0 ;
|
try {
|
count = del.checkRoleIsquotedCount(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.conformdelrole", "RMIPFramework", getLocale()));
|
|
if (ok == 0) {
|
boolean rs=true;
|
try {
|
rs = new RightManagementClientDelegate(LogonApplication.getUserEntityObject()).deleteRole(puids);
|
} catch (VCIException e) {
|
VCIOptionPane.showError(LogonApplication.frame,"RMIPFramework", e);
|
return ;
|
}
|
if (!rs) {
|
return;
|
}
|
}else{
|
return;
|
}
|
tablePanel.refreshTableData();
|
}
|
/**
|
* 分配成员事件
|
*/
|
private void rightButton_conform(){
|
int len = tablePanel.getSelectedRowIndexs().length;
|
if (len == 0){
|
VCIOptionPane.showMessage(this, "请选择角色进行成员分配!");
|
return;
|
}else if (len > 1){
|
VCIOptionPane.showMessage(this, "一次只能对一个角色进行分配人员操作!");
|
return;
|
}else {
|
RoleObject rightRoleObj = tablePanel.getSelectedRowObjects().get(0);
|
RightRoleDialog dialog = new RightRoleDialog(rightRoleObj);
|
dialog.setVisible(true);
|
}
|
}
|
private void btnDisplay_conform(){
|
int len = tablePanel.getSelectedRowIndexs().length;
|
DisplayDialog dialog = null;
|
|
if(len == 0){
|
VCIOptionPane.showMessage(this, "请选择角色!");
|
return;
|
}else if (len > 1){
|
VCIOptionPane.showMessage(this, "最多只能选择一个角色进行统计!");
|
return;
|
}else{
|
RoleObject[] roleObjs = new RoleObject[len];
|
for (int i = 0 ; i < len ; i ++){
|
roleObjs[i] = tablePanel.getSelectedRowObjects().get(i);
|
}
|
dialog = new DisplayDialog(roleObjs);
|
}
|
|
|
dialog.setModal(true);
|
dialog.setVisible(true);
|
}
|
@Override
|
public String getUserID() {
|
return logonUserId;
|
}
|
@Override
|
public String getRoleID() {
|
return logonRoleId;
|
}
|
@Override
|
public JPanel getModuleComponent() {
|
return this;
|
}
|
@Override
|
public String getModuleName() {
|
if (this.getFuncObj() != null && this.getFuncObj().getName() != null)
|
return this.getFuncObj().getName();
|
else if (moduleName != null && !moduleName.isEmpty())
|
return moduleName;
|
else
|
return this.getClass().getName();
|
}
|
@Override
|
public String getIconName() {
|
return iconName;
|
}
|
@Override
|
public String getModuleShowInfo() {
|
return moduleShowInfo;
|
}
|
}
|