package com.vci.client.uif.engine.client.renderer;
|
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Map;
|
|
import com.vci.client.common.objects.UserObject;
|
import com.vci.client.portal.utility.PRMItem;
|
import com.vci.client.uif.engine.common.UserObjectMap;
|
import com.vci.corba.common.VCIError;
|
|
/**
|
* Table中用户名列自定义显示处理类
|
* @author xiongchao
|
*
|
*/
|
public class UserNameInTableCellRenderer extends CustomColumnRenderer{
|
|
public UserNameInTableCellRenderer(){
|
super();
|
}
|
|
@Override
|
public void getCustomValue(String columnName, Map<String, PRMItem> prmMap,
|
List<Map<String, String>> cols) throws VCIError {
|
// 尝试检查key中是否有参数,如果有则截取参数(用户名所在属性的key)
|
String param = "";
|
int paramIndex = columnName.indexOf("?");
|
if(paramIndex > 0){
|
param = columnName.substring(paramIndex + 1);
|
columnName = columnName.substring(0, paramIndex);
|
}
|
Iterator<Map<String, String>> itor = cols.iterator();
|
PRMItem prm = prmMap.get(columnName);
|
String columForRebuild = prm.getItemValue();
|
// 如果用户名参数不为空,则按定义的
|
if(param != null && !"".equals(param)){
|
columForRebuild = param;
|
}
|
while (itor.hasNext()) {
|
Map<String, String> map = itor.next();
|
String accoutNum = map.get(prm.getItemField()); // 优先根据属性定义的名称从valuemap中取值
|
if(accoutNum == null || accoutNum.equals("")){
|
accoutNum = map.get(columForRebuild); // 如果没有取到值,则按传入的key从valuemap中取值
|
if(accoutNum == null || accoutNum.equals("")){
|
continue;
|
}
|
}
|
|
UserObject useObj = UserObjectMap.getInstance().getUserObjectByName(accoutNum);
|
if(useObj == null){
|
map.put(columnName, accoutNum);
|
continue;
|
}
|
|
//通过账号获取用户名。
|
String trueName = useObj.getTrueName();
|
String showName = "";
|
//构建新的字符串
|
if(trueName != null && !trueName.equals("")){
|
showName = accoutNum +"("+ trueName +")";
|
}else{
|
showName = accoutNum;
|
}
|
//将新的字符串put进map。
|
map.put(columnName, showName);
|
}
|
}
|
|
}
|