package com.vci.client.uif.engine.client.tree; import java.util.HashMap; import java.util.Map; import com.vci.client.omd.provider.ApProvider; import com.vci.client.omd.provider.EnumProvider; import com.vci.client.omd.statepool.StatePoolStart; import com.vci.corba.common.VCIError; import com.vci.corba.omd.etm.EnumChild; import com.vci.corba.omd.etm.EnumItem; import com.vci.corba.omd.stm.StatePool; import com.vci.omd.objects.OtherInfo; /** * @Title :TreePanelUtil.java * @Description : * @Copyright :宏博远达科技有限公司 * @Author :平台与规划部/ZhongGY/E-mail:zhonggy@vci-tech.com * @Date :2015-6-26 * @Version :1 * @Other :产生注释:Alt+Shift+J */ public class TreePanelUtil { /** * @Title :getEnumAttrDisplayValue * @Description : * @param attrName * @param attrValue * @return */ public static String getEnumAttrDisplayValue(String attrName,String attrValue) { String displayValue = ""; if (attrName == null || attrValue == null || attrName.trim().equals("") || attrValue.trim().equals("")) { return displayValue; } try { attrName = attrName.toLowerCase(); if (attrName.indexOf("f_oid.") > -1) { attrName = attrName.replaceAll("f_oid.", ""); } if (attrName.indexOf("t_oid.") > -1) { attrName = attrName.replaceAll("t_oid.", ""); } String enumAttrMetaName = getEnumAttrMetaName(attrName); if ( !enumAttrMetaName.equals("")) { // 枚举类型属性值获取 displayValue = getEnumAttrVauleName(enumAttrMetaName,attrValue); } } catch (Exception e) { } return displayValue; } private static Map allEnumAttrMetaNames; private static String getEnumAttrMetaName(String attrName) { String emunAttrMetaName = ""; if (attrName.equalsIgnoreCase("parttype")) { attrName = "parttype"; } if (allEnumAttrMetaNames == null) { allEnumAttrMetaNames = new HashMap(); } if (!allEnumAttrMetaNames.containsKey(attrName)) { try { OtherInfo otherInfo = OtherInfo.getOtherInfoByText(ApProvider.getAbItemByName(attrName).other); allEnumAttrMetaNames.put(attrName, otherInfo.getEnumName()); } finally { if (!allEnumAttrMetaNames.containsKey(attrName)) { allEnumAttrMetaNames.put(attrName, ""); } } } emunAttrMetaName = allEnumAttrMetaNames.get(attrName); return emunAttrMetaName; } private static Map> allEnumAttrIDAndNames; private static String getEnumAttrVauleName(String enumAttrMetaName,String enumAttrValue) { String enumAtrrValueName = ""; if (allEnumAttrIDAndNames == null) { allEnumAttrIDAndNames = new HashMap>(); } Map enumIDAndNamesMap; if (!allEnumAttrIDAndNames.containsKey(enumAttrMetaName)) { enumIDAndNamesMap = new HashMap(); allEnumAttrIDAndNames.put(enumAttrMetaName, enumIDAndNamesMap); EnumItem[] allEnumItems = EnumProvider.getInstance().getAllEnums(); for (int i = 0; i < allEnumItems.length; i++) { EnumItem item = allEnumItems[i]; if (enumAttrMetaName.equalsIgnoreCase(item.name)) { for (int j = 0; j < item.children.length; j++) { EnumChild enumChild = item.children[j]; if (!enumIDAndNamesMap.containsKey(enumChild.value)) { enumIDAndNamesMap.put(enumChild.value, enumChild.name); } } break; } } } enumIDAndNamesMap = allEnumAttrIDAndNames.get(enumAttrMetaName); if (enumIDAndNamesMap != null && enumIDAndNamesMap.containsKey(enumAttrValue)) { enumAtrrValueName = enumIDAndNamesMap.get(enumAttrValue); } return enumAtrrValueName; } public final static String LCSTATUS = "lcstatus"; private static Map statePoolsMap = null; public static String getLifeCycleStatusDisplay(String key,String value) { String lifeCycleStatusDisplay = ""; try { if (statePoolsMap == null) { statePoolsMap = getAllStatusInfo(); } if (!key.equalsIgnoreCase(LCSTATUS) && !key.toLowerCase().endsWith("." + LCSTATUS)) { return lifeCycleStatusDisplay; } if (statePoolsMap.containsKey(value)) { lifeCycleStatusDisplay = statePoolsMap.get(value).tag; } } catch (Exception e) { } return lifeCycleStatusDisplay; } /** * 获取所有的生命周期状态 * @return */ private static Map getAllStatusInfo() { Map statePoolsMap = new HashMap(); try { StatePool[] statePools = StatePoolStart.getService().getStatePools(); for(StatePool sp:statePools){ statePoolsMap.put(sp.name, sp); } } catch (VCIError e) { e.printStackTrace(); } return statePoolsMap; } }