public ManagedFormElement(String ElementName, String ElementTitle, ManagedFormElementType Type, ManagedFormElements Children) : base(ElementName, Type.Class) { m_ChildItems = Children; m_ElementType = Type; Title = ElementTitle; }
private void LoadFormContent() { var FileElem = Container.GetElement(ID + ".0"); var stream = new SerializedList(FileElem.ReadAll()); m_Elements = new ManagedFormElements(); m_Elements.ReadFromList((SerializedList)stream.Items[1]); m_ModuleText = stream.Items[2].ToString(); LoadAttributes((SerializedList)stream.Items[3]); m_DialogDef = new SimpleDialogStub(CreateDialogDefList(stream)); m_Loaded = true; }
private void LoadElements(SerializedList elementsList, MDObjectsCollection <ManagedFormElement> itemsPrototype, int idIndex, string uuid = null) { int itemCount = Int32.Parse(elementsList.Items[idIndex - 1].ToString()); int iterationCount = itemCount * 2; for (int i = 0; i < iterationCount; ++i) { int index = idIndex + i; if (index >= elementsList.Items.Count) { break; } SerializedItem item = elementsList.Items[index]; if (item.GetType() == typeof(SerializedItem)) { uuid = item.ToString(); } else { int offset; SerializedList lst = (SerializedList)item; if (lst.Items[4].ToString() == "0") { offset = 0; } else { offset = 1; } String ElementName; String ElementSubtype; if (uuid == "143c00f7-a42d-4cd7-9189-88e4467dc768" || uuid == "a9f3b1ac-f51b-431e-b102-55a69acdecad") { ElementName = lst.Items[6].ToString(); ElementSubtype = (uuid == "a9f3b1ac-f51b-431e-b102-55a69acdecad") ? lst.Items[5].ToString() : lst.Items[7].ToString(); } else { ElementName = lst.Items[6 + offset].ToString(); ElementSubtype = lst.Items[5 + offset].ToString(); } var ElementClass = ManagedFormElementType.ParseTypeID(uuid); MDObjectsCollection <ManagedFormElement> ChildrenPrototype = null; if (lst.Items.Count > 22 && (ElementClass == FormElementClass.Group || ElementClass == FormElementClass.Grid)) { System.Text.RegularExpressions.Regex RegExp = new System.Text.RegularExpressions.Regex(@"\w{8}-\w{4}-\w{4}-\w{4}-\w{12}"); for (int j = 22; j < lst.Items.Count; ++j) { String content = lst.Items[j].ToString(); if (content.Length == 36 && content != "00000000-0000-0000-0000-000000000000" && RegExp.IsMatch(content)) { // load children ChildrenPrototype = new MDObjectsCollection <ManagedFormElement>(); LoadElements(lst, ChildrenPrototype, j); break; } } } ManagedFormElement element; var ElementType = new ManagedFormElementType(ElementClass, Int32.Parse(ElementSubtype)); if (ChildrenPrototype == null) { element = new ManagedFormElement(ElementName, ElementName, ElementType); } else { ManagedFormElements Children = new ManagedFormElements(ChildrenPrototype); element = new ManagedFormElement(ElementName, ElementName, ElementType, Children); } itemsPrototype.Add(element); } } }