protected override void SaveNode(XmlDocument xmlDoc, XmlElement dynEl, SaveContext context) { //Debug.WriteLine(pd.Object.GetType().ToString()); XmlElement outEl = xmlDoc.CreateElement("ID"); outEl.SetAttribute("value", Symbol); dynEl.AppendChild(outEl); outEl = xmlDoc.CreateElement("Name"); outEl.SetAttribute("value", NickName); dynEl.AppendChild(outEl); outEl = xmlDoc.CreateElement("Description"); outEl.SetAttribute("value", Description); dynEl.AppendChild(outEl); outEl = xmlDoc.CreateElement("Inputs"); foreach (var input in InPortData.Select(x => x.NickName)) { var inputEl = xmlDoc.CreateElement("Input"); inputEl.SetAttribute("value", input); outEl.AppendChild(inputEl); } dynEl.AppendChild(outEl); outEl = xmlDoc.CreateElement("Outputs"); foreach (var output in OutPortData.Select(x => x.NickName)) { var outputEl = xmlDoc.CreateElement("Output"); outputEl.SetAttribute("value", output); outEl.AppendChild(outputEl); } dynEl.AppendChild(outEl); }
protected override void SerializeCore(XmlElement element, SaveContext context) { base.SerializeCore(element, context); //Base implementation must be called if (context == SaveContext.Undo) { XmlElementHelper helper = new XmlElementHelper(element); helper.SetAttribute("functionId", Symbol); helper.SetAttribute("functionName", NickName); helper.SetAttribute("functionDesc", Description); XmlDocument xmlDoc = element.OwnerDocument; foreach (var input in InPortData.Select(x => x.NickName)) { var inputEl = xmlDoc.CreateElement("functionInput"); inputEl.SetAttribute("inputValue", input); element.AppendChild(inputEl); } foreach (var input in OutPortData.Select(x => x.NickName)) { var outputEl = xmlDoc.CreateElement("functionOutput"); outputEl.SetAttribute("outputValue", input); element.AppendChild(outputEl); } } }
protected override void SerializeCore(XmlElement element, SaveContext context) { base.SerializeCore(element, context); //Base implementation must be called Controller.SerializeCore(element, context); var xmlDoc = element.OwnerDocument; var outEl = xmlDoc.CreateElement("Name"); outEl.SetAttribute("value", NickName); element.AppendChild(outEl); outEl = xmlDoc.CreateElement("Description"); outEl.SetAttribute("value", Description); element.AppendChild(outEl); outEl = xmlDoc.CreateElement("Inputs"); foreach (string input in InPortData.Select(x => x.NickName)) { XmlElement inputEl = xmlDoc.CreateElement("Input"); inputEl.SetAttribute("value", input); outEl.AppendChild(inputEl); } element.AppendChild(outEl); outEl = xmlDoc.CreateElement("Outputs"); foreach (string output in OutPortData.Select(x => x.NickName)) { XmlElement outputEl = xmlDoc.CreateElement("Output"); outputEl.SetAttribute("value", output); outEl.AppendChild(outputEl); } element.AppendChild(outEl); }
protected override void SaveNode(XmlDocument xmlDoc, XmlElement nodeElement, SaveContext context) { Controller.SaveNode(xmlDoc, nodeElement, context); var outEl = xmlDoc.CreateElement("Name"); outEl.SetAttribute("value", NickName); nodeElement.AppendChild(outEl); outEl = xmlDoc.CreateElement("Description"); outEl.SetAttribute("value", Description); nodeElement.AppendChild(outEl); outEl = xmlDoc.CreateElement("Inputs"); foreach (string input in InPortData.Select(x => x.NickName)) { XmlElement inputEl = xmlDoc.CreateElement("Input"); inputEl.SetAttribute("value", input); outEl.AppendChild(inputEl); } nodeElement.AppendChild(outEl); outEl = xmlDoc.CreateElement("Outputs"); foreach (string output in OutPortData.Select(x => x.NickName)) { XmlElement outputEl = xmlDoc.CreateElement("Output"); outputEl.SetAttribute("value", output); outEl.AppendChild(outputEl); } nodeElement.AppendChild(outEl); }
/// <summary> /// Return if the custom node instance is in sync with its definition. /// It may be out of sync if .dyf file is opened and updated and then /// .dyn file is opened. /// </summary> /// <returns></returns> public bool IsInSyncWithDefinition() { if (Definition.Parameters != null) { if (Definition.Parameters.Count() != InPortData.Count() || !Definition.Parameters.SequenceEqual(InPortData.Select(p => p.NickName))) { return(false); } } if (Definition.ReturnKeys != null) { if (Definition.ReturnKeys.Count() != OutPortData.Count() || !Definition.ReturnKeys.SequenceEqual(OutPortData.Select(p => p.NickName))) { return(false); } } return(true); }