package com.vci.client.uif.actions.client.folder;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import com.vci.client.bof.ClientBusinessObject;
|
import com.vci.client.common.oq.OQTool;
|
import com.vci.client.oq.QTClient;
|
import com.vci.client.uif.actions.client.UIFUtils;
|
import com.vci.client.uif.engine.common.IDataNode;
|
import com.vci.common.qt.object.Condition;
|
import com.vci.common.qt.object.QueryTemplate;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.omd.data.BusinessObject;
|
/**
|
* 文件夹导航控制处理类
|
* @author xiongchao
|
*
|
*/
|
public class FolderNavigatoryController {
|
/**
|
* 返回目标上下文
|
* @param obj
|
* @return 目标上下文
|
*/
|
public String getContextName(Object obj){
|
String res = "";
|
ClientBusinessObject cbo = getFolderCBO(obj);
|
if(cbo != null){
|
try {
|
ClientBusinessObject[] cbos = getFolderContextMappings(cbo);
|
if(cbos != null && cbos.length > 0){
|
res = cbos[0].getAttributeValue("context");
|
}
|
} catch (VCIError e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
}
|
return res;
|
}
|
|
protected ClientBusinessObject getFolderCBO(Object obj){
|
ClientBusinessObject cbo = null;
|
if(obj instanceof IDataNode){
|
IDataNode dataNode = (IDataNode)obj;
|
if(dataNode.getMaterObject() instanceof ClientBusinessObject){
|
cbo = (ClientBusinessObject)dataNode.getMaterObject();
|
}
|
}
|
return cbo;
|
}
|
|
protected Map<String, String> getConditionMap(){
|
Map<String, String> conditionMap = new HashMap<String, String>();
|
return conditionMap;
|
}
|
|
protected ClientBusinessObject[] getFolderContextMappings(ClientBusinessObject cbo) throws VCIError{
|
Map<String, String> conditionMap = getConditionMap();
|
conditionMap.put("ownedfolder", cbo.getAttributeValue("oid"));
|
QueryTemplate qt = getQueryTemplate("folderctxmapping", conditionMap);
|
BusinessObject[] bos = QTClient.getService().findBTMObjects(qt.getId(), OQTool.qtTOXMl(qt).asXML());
|
ClientBusinessObject[] cbos = UIFUtils.convertBOs(bos);
|
return cbos;
|
}
|
|
protected QueryTemplate getQueryTemplate(String btmType, Map<String, String> conditionMap){
|
QueryTemplate qt = new QueryTemplate();
|
qt.setType("btm");
|
qt.setBtmType(btmType);
|
qt.setId("id");
|
List<String> clauseList = new ArrayList<String>();
|
clauseList.add("*");
|
qt.setClauseList(clauseList);
|
Condition condition = OQTool.getCondition(conditionMap);
|
qt.setCondition(condition);
|
return qt;
|
}
|
}
|