void populateCanvasFromLoad(MaskDAGXML xmldat) { cleanCanvas(); newCanvas(); for (int i = 0; i < xmldat.mNodes.Count; i++) { Type t = xmldat.mNodes[i].GetType(); MaskDAGGraphNode val = null; try { System.Reflection.ConstructorInfo ci = t.GetConstructor(new Type[] { typeof(GraphCanvas) }); val = ((MaskDAGGraphNode)ci.Invoke(new object[] { this })); } catch (Exception e) { e.ToString(); return; } val.load(xmldat.mNodes[i]); addCanvasNode(val); } //load our connections now for (int i = 0; i < xmldat.mConnections.Count; i++) { CanvasNode start = findConnectionNode(xmldat.mConnections[i].mOwnerDeviceID, xmldat.mConnections[i].mConnectionName); CanvasNode end = findConnectionNode(xmldat.mConnections[i].mNeighborDeviceID, xmldat.mConnections[i].mNeighborConnectionName); if (start == null || end == null) continue; addConnection(start, end); } }
public override bool saveCanvasToDisk(string filename) { MaskDAGXML xmldat = prepCanvasForSave(); EditorCore.Controls.Micro.BaseLoader<MaskDAGXML>.Save(filename, xmldat); return true; }
public override bool loadCanvasFromDisk(string filename) { MaskDAGXML xmldat = EditorCore.Controls.Micro.BaseLoader<MaskDAGXML>.Load(filename); if(xmldat == null) { MessageBox.Show("Could not load " + filename + ". An error occured"); return false; } populateCanvasFromLoad(xmldat); return true; }
//general functions MaskDAGXML prepCanvasForSave() { MaskDAGXML xmldat = new MaskDAGXML(); for (int i = 0; i < mNodes.Count; i++) if (mNodes[i].mDepthLayer == 0) xmldat.mNodes.Add(mNodes[i] as MaskDAGGraphNode); //generate connection records for (int i = 0; i < mNodes.Count; i++) { MaskDAGGraphNode dnode = (mNodes[i] as MaskDAGGraphNode); if (dnode != null) xmldat.mConnections.AddRange(dnode.generateConnectionLists()); } return xmldat; }
public override bool loadCanvasFromMemoryStream(MemoryStream ms) { MaskDAGXML xmldat = null; try { XmlSerializer s = new XmlSerializer(typeof(MaskDAGXML), new Type[] { }); xmldat = ((MaskDAGXML)s.Deserialize(ms)); populateCanvasFromLoad(xmldat); } catch (System.Exception ex) { ex.ToString(); return false; } return true; }
public override bool saveCanvasToMemoryStream(MemoryStream ms) { try { MaskDAGXML xmldat = prepCanvasForSave(); XmlSerializer s = new XmlSerializer(typeof(MaskDAGXML), new Type[] { }); XmlTextWriter xmlTextWriter = new XmlTextWriter(ms, Encoding.UTF8); s.Serialize(xmlTextWriter, xmldat); ms = (MemoryStream)xmlTextWriter.BaseStream; ms.Seek(0, SeekOrigin.Begin); } catch (System.Exception ex) { ex.ToString(); return false; } return true; }