package com.vci.client.uif.actions.client;
|
|
import java.awt.Component;
|
|
import com.vci.client.common.objects.UserObject;
|
import com.vci.client.framework.delegate.RightManagementClientDelegate;
|
import com.vci.client.portal.utility.PRMItem;
|
import com.vci.client.ui.exception.VCIException;
|
import com.vci.client.ui.swing.components.VCIJOptionPane;
|
import com.vci.client.ui.swing.components.VCIJDialog.DialogResult;
|
import com.vci.client.uif.engine.client.SelectorUserDialog;
|
import com.vci.client.uif.engine.client.controls.BaseCustomControl;
|
import com.vci.client.uif.engine.client.custom.AbstractCustomAttributeInteceptor;
|
import com.vci.client.uif.engine.client.objopt.ObjectAddEditPanel;
|
import com.vci.corba.common.VCIError;
|
import com.vci.mw.ClientContextVariable;
|
|
/**
|
* 7.1 Selectoruse 选择负责人 按钮
|
* 按钮配置在系统通用弹出对话框中,按钮任务执行成功后刷新对话框FORM中相应的字段。
|
* 如果选择对话框是按人员选择,则querycondition过滤条件不起作用,如果是角色或部门过滤条件,
|
* 则使用querycondition作为顶级查询其下的所有相关人员。
|
* querycondition支出动态过滤条件,使用${dept}
|
* 7.1.1 实现类
|
* plm617.action.SelectorUserAction
|
* 7.1.2 按钮参数
|
* querytype:选择对话框类型:0显示完整选择框 1按人员选择 2按角色选择 3按部门选择
|
* querycondition:不同选择条件下的相应过滤条件 (CURRENTUSER.GROUPNUM:当前用户所属部门);
|
* target:FORM中的目标属性名
|
*/
|
public class SelectorUserAction extends AbstractCustomAttributeInteceptor{
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1001463110330445893L;
|
|
public SelectorUserAction(){
|
super();
|
}
|
public SelectorUserAction(PRMItem item) {
|
super(item);
|
}
|
|
@Override
|
public String getCustomAttributeSaveValue(PRMItem prm,
|
Component parentComponent) throws VCIError {
|
//获取登录用户所在的部门编号
|
String oldValue = "";
|
if(parentComponent instanceof ObjectAddEditPanel){
|
ObjectAddEditPanel oaep = (ObjectAddEditPanel)parentComponent;
|
Object ctrl = oaep.getCtrlComptMap().get(prm.getItemField());
|
if(ctrl != null && ctrl instanceof BaseCustomControl){
|
BaseCustomControl bcc = (BaseCustomControl)ctrl;
|
oldValue = bcc.getValue();
|
}
|
}
|
String groupID = "";
|
String[] groupIds = ClientContextVariable.getInvocationInfo().groupIDs;
|
if(groupIds != null && groupIds.length > 0){
|
groupID = groupIds[0];
|
}
|
SelectorUserDialog eid = new SelectorUserDialog(parentComponent,groupID);
|
UserObject serObject = eid.getUserObject();
|
if(eid.getDialogResult() == DialogResult.CANCEL && !oldValue.equals("")){
|
serObject = getUserObjectByName(oldValue);
|
}
|
//用户账号##VCI##用户姓名 存储值##VCI##显示值
|
String value = serObject.getUserName()+SPLIT_CHAR+serObject.getTrueName()+"("+serObject.getUserName()+")";
|
return value;
|
}
|
|
@Override
|
public String getCustomAttributeDisplayValue(String attrVal, PRMItem prm)
|
throws VCIError {
|
UserObject userObj = getUserObjectByName(attrVal);
|
if(userObj == null) return "";
|
return userObj.getTrueName();
|
}
|
|
private UserObject getUserObjectByName(String userName){
|
//根据存储的值,通过查询,得到显示的值
|
UserObject userObj = null;
|
try {
|
userObj = new RightManagementClientDelegate().getUserObjectByUserName(userName);
|
} catch (VCIException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
VCIJOptionPane.showError(ClientContextVariable.getFrame(), "查询责任人显示值发生错误" + e.toString());
|
}
|
return userObj;
|
}
|
|
}
|