public static FunctionElement createElement(FunctionsManager managerT,String title) { manager = managerT; element = new FunctionElement(manager); SmallDialog_FunctionsConfig dialog = new SmallDialog_FunctionsConfig(title); dialog.ShowDialog(); return element; }
//设置地图单元 public static void configElement(FunctionElement elementT, String title) { if (elementT == null) { Console.WriteLine("error in configElement"); return; } manager = (FunctionsManager)elementT.parent; element = elementT; SmallDialog_FunctionsConfig dialog = new SmallDialog_FunctionsConfig(title); dialog.textBox_name.Text = element.name; dialog.textBox_Commet.Text = element.commet; dialog.showParamsList(); dialog.ShowDialog(); }
//转移引用 public void changeUseInfor(FunctionElement destFunctionElement) { //TriggerPacksManager triggersManager = ((FunctionsManager)parent).form_main.triggersManager; //for (int i = 0; i < triggersManager.getElementCount(); i++) //{ // TriggerPackElement triggerPack = (TriggerPackElement)triggersManager.getElement(i); // for (int j = 0; j < triggerPack.sentences_Trigger.getElementCount(); j++) // { // Sentence sentence = (Sentence)triggerPack.sentences_Trigger.getElement(j); // if (sentence.functionElement != null && sentence.functionElement.Equals(this)) // { // sentence.functionElement = destFunctionElement; // } // } // for (int j = 0; j < triggerPack.sentences_Context.getElementCount(); j++) // { // Sentence sentence = (Sentence)triggerPack.sentences_Context.getElement(j); // if (sentence.functionElement != null && sentence.functionElement.Equals(this)) // { // sentence.functionElement = destFunctionElement; // } // } // for (int j = 0; j < triggerPack.triggersManager.getElementCount(); j++) // { // Trigger trigger = (Trigger)triggerPack.triggersManager.getElement(j); // for (int k = 0; k < trigger.sentences_Context.getElementCount(); k++) // { // Sentence sentence = (Sentence)trigger.sentences_Context.getElement(k); // if (sentence.functionElement != null && sentence.functionElement.Equals(this)) // { // sentence.functionElement = destFunctionElement; // } // } // for (int k = 0; k < trigger.sentences_Executions.getElementCount(); k++) // { // Sentence sentence = (Sentence)trigger.sentences_Executions.getElement(k); // if (sentence.functionElement != null && sentence.functionElement.Equals(this)) // { // sentence.functionElement = destFunctionElement; // } // } // } //} }
//克隆 public override ObjectElement clone() { FunctionElement newInstance = new FunctionElement((FunctionsManager)parent); baseCloneTo(newInstance); newInstance.commet = commet+""; ArrayList newArray = (ArrayList)newInstance.value; ArrayList currentArray=(ArrayList)value; for (int i = 0; i < currentArray.Count; i++) { newArray.Add((int)currentArray[i]); } return newInstance; }
//判断是否相等 public bool equalsFunctionElement(FunctionElement destElement) { if (destElement == null || value == null || destElement.value==null) { return false; } if (name == null || destElement.name == null || !destElement.name.Equals(name)) { return false; } ArrayList paramsArrayLocal = (ArrayList)value; ArrayList paramsArrayDest = (ArrayList)destElement.value; if (paramsArrayDest.Count != paramsArrayLocal.Count) { return false; } for (int i = 0; i < paramsArrayLocal.Count; i++) { byte byteLocal = (byte)paramsArrayLocal[i]; byte byteDest = (byte)paramsArrayDest[i]; if (byteLocal != byteDest) { return false; } } return true; }
//读写 #region SerializeAble Members public void ReadObject(System.IO.Stream s) { short len = 0; len = IOUtil.readShort(s); for (int i = 0; i < len; i++) { FunctionElement element = new FunctionElement(this); element.ReadObject(s); addElement(element); } }