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 getConditionMap(){ Map conditionMap = new HashMap(); return conditionMap; } protected ClientBusinessObject[] getFolderContextMappings(ClientBusinessObject cbo) throws VCIError{ Map 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 conditionMap){ QueryTemplate qt = new QueryTemplate(); qt.setType("btm"); qt.setBtmType(btmType); qt.setId("id"); List clauseList = new ArrayList(); clauseList.add("*"); qt.setClauseList(clauseList); Condition condition = OQTool.getCondition(conditionMap); qt.setCondition(condition); return qt; } }