public override void OnRefresh() { FactorTargets.OnRefresh(); //ApsimFile.Component comp = Controller.ApsimData.Find(NodePath); if (Table != null) { Table.Clear(); Table.Columns.Clear(); } LoadManagerVariables(); }
public override void OnSave() { FactorTargets.OnSave(); XmlDocument doc = new XmlDocument(); doc.LoadXml(FactorTargets.GetData()); Data.InnerXml = doc.DocumentElement.InnerXml; if (Table != null) { XmlNode variablesNode = Data.SelectSingleNode("//vars"); if (variablesNode == null) { variablesNode = Data.AppendChild(Data.OwnerDocument.CreateElement("vars")); } variablesNode.RemoveAll(); if (Table.Rows.Count >= 10000) { string[] values = DataTableUtility.GetColumnAsStrings(Table, Table.Columns[0].ColumnName); string csvValue = ""; foreach (string value in values) { if (value != "") { if (csvValue != "") { csvValue += ","; } csvValue += value; } else { break; } } XmlNode varNode = variablesNode.AppendChild(Data.OwnerDocument.CreateElement(Table.Columns[0].ColumnName)); varNode.InnerText = csvValue; } else { foreach (DataRow row in Table.Rows) { if ((bool)row[0]) { XmlNode varNode = variablesNode.AppendChild(Data.OwnerDocument.CreateElement(row[1].ToString())); varNode.InnerText = row[3].ToString(); } } } } }
public override bool OnDropData(StringCollection SourcePaths, string FullXML) { //if there are no children, then add the droppednodes as targets //don't add to targets if there is existing children //don't add to targets if the source is from the Factorial Tree ApsimFile.Component thisComp = Controller.ApsimData.Find(NodePath); //if (thisComp.ChildNodes.Count == 0) { FactorTargets.AddTargets(SourcePaths); } thisComp.Add(FullXML); OnRefresh(); return(true); }
protected override void OnLoad() { FactorTargets.OnLoad(Controller, NodePath, Data.OuterXml); }