// ------------------------------------------------------------------------------------------------ // 描述: // 设计: Skyline(2001.12.29) // 实现: Skyline // 修改: // ------------------------------------------------------------------------------------------------ public JFunctionStub getFunctionByID(String ID, Object OwnerObject) { IFunction IF = null; JFunctionStub FS = null; String FT; try { for (int i = 0; i < FunctionList.size(); i++) { FS = (JFunctionStub) FunctionList.get(i); // System.out.println(FS.FunctionID); FT = FS.FunctionID + "_"; if (FS.FunctionID.equals(ID) || FT.equals(ID)) { if (FS.Function == null) { FS.FunctionClass = Class.forName(FS.ClassName); FS.Function = (IFunction) FS.FunctionClass.newInstance(); FS.Function.InitFunction(FS); } /* else { // modify by liukun 找到了就直接返回吧 20100715 return FS; } */ // if (OwnerObject != null && OwnerObject instanceof Hashtable) { Hashtable OTable = (Hashtable) OwnerObject; JFunctionStub fs = (JFunctionStub) OTable.get(ID); if (fs == null) { fs = new JFunctionStub(); fs.ClassName = FS.ClassName; fs.FunctionClass = FS.FunctionClass; fs.FunctionID = FS.FunctionID; OTable.put(ID, fs); } if (fs.Function == null) { fs.FunctionClass = Class.forName(FS.ClassName); fs.Function = (IFunction) FS.FunctionClass.newInstance(); fs.Function.InitFunction(FS); } FS = fs; } else { /** * 如果不在用户列表中则需要重新初始化函数 不能直接用系统缓存因为系统缓存只在登录时初始 这样对于像BB类函数,缓冲坐标的行为就可能会出错(中间修改过行列) modified * by hufeng 2007.11.20 */ FS.Function = (IFunction) FS.FunctionClass.newInstance(); FS.Function.InitFunction(FS); } return FS; } } } catch (Exception e) { e.printStackTrace(); } return null; }
// ------------------------------------------------------------------------------------------------ // 描述: // 设计: Skyline(2001.12.29) // 实现: Skyline // 修改: // ------------------------------------------------------------------------------------------------ public JFunctionStub getFunctionStub(String FuncTag) { int i, Count; JFunctionStub FS = null; String FT; Count = FunctionList.size(); for (i = 0; i < Count; i++) { FS = (JFunctionStub) FunctionList.get(i); if (FS.FunctionID.equals(FuncTag)) return FS; FT = FS.FunctionID + "_"; if (FT.equals(FuncTag)) return FS; } return null; }
// ------------------------------------------------------------------------------------------------ // 描述: // 设计: Skyline(2001.12.29) // 实现: Skyline // 修改: // ------------------------------------------------------------------------------------------------ public void InitObject(Element PublicElement, Element PrivateElement, String OpFrom) { /* List nodelist;Element RFElement=null;Element node;int i=0;String Name="FunctionManager"; if ( PublicElement == null ) System.out.println("PublicElement=null"); if ( PrivateElement == null ) System.out.println("PrivateElement=null"); RFElement = JActiveDComDM.XMLRegistry.GetElementByName(PublicElement,Name); if ( RFElement == null ) return; InitFunctionConfigXML(RFElement.getAttribute("functionconfig").getValue()); JFunctionStub FS; nodelist = JActiveDComDM.XMLRegistry.BeginEnumerate(RFElement); while ( nodelist != null ) { node = JActiveDComDM.XMLRegistry.Enumerate(nodelist,i); if ( node == null ) break; // if ( node.getNodeType() == node.ELEMENT_NODE ) { RFElement = (Element)node; FS = new JFunctionStub(); FS.FunctionID = RFElement.getAttribute("id").getValue().toUpperCase(); FS.ClassName = RFElement.getAttribute("class").getValue(); FunctionList.add(FS); // } i++; } JActiveDComDM.XMLRegistry.EndEnumerate(); */ Element RFElement = null; Element node; int i = 0; String Name = "FunctionManager"; if (PublicElement == null) System.out.println("PublicElement=null"); if (PrivateElement == null) System.out.println("PrivateElement=null"); RFElement = JActiveDComDM.XMLRegistry.GetElementByName(PublicElement, Name); if (RFElement == null) return; InitFunctionConfigXML(RFElement.getAttribute("functionconfig").getValue()); java.util.List nodelist = PackageStub.getContentVector("fmisReportFunction"); JFunctionStub FS; StubObject so = null; for (i = 0; i < nodelist.size(); i++) { so = (StubObject) nodelist.get(i); FS = new JFunctionStub(); FS.FunctionID = so.getString("id", ""); ; FS.ClassName = so.getString(OpFrom, ""); ; FunctionList.add(FS); } }
/** * 初始化外部函数 * * @param funcList ArrayList */ public void InitExtendFunction(ArrayList funcList) { if (mExtFuncList != null && mExtFuncList.size() != 0) { return; } if (funcList == null || funcList.size() == 0) { return; } mExtFuncList = funcList; // 初始化函数 JExtFuncStub extStub = null; JFunctionStub funcStub = null; for (int i = 0; i < funcList.size(); i++) { extStub = (JExtFuncStub) funcList.get(i); funcStub = new JFunctionStub(); funcStub.setFunctionID(extStub.getFunc()); funcStub.setClassName(extStub.getFuncClass()); FunctionList.add(funcStub); } }