示例#1
0
        public void LoadState(out CanvasModel cm, out WorkspaceModel wm)
        {
            string dataPath = ".\\data";

            string path = dataPath + "\\canvasstate.xml";

            if (File.Exists(path))
            {
                XmlSerializer x = new XmlSerializer(typeof(CanvasModel));
                CanvasModel   tempModel;

                using (XmlReader xReader = XmlReader.Create(path))
                {
                    tempModel = (CanvasModel)x.Deserialize(xReader);
                }

                foreach (CCanvas c in tempModel.allCanvases)
                {
                    c.LoadFromFile(dataPath);
                }

                cm = tempModel;
            }
            else
            {
                cm = new CanvasModel();
            }

            path = dataPath + "\\workspacestate.xml";
            if (File.Exists(path))
            {
                XmlSerializer  x = new XmlSerializer(typeof(WorkspaceModel));
                WorkspaceModel tempModel;

                using (XmlReader xReader = XmlReader.Create(path))
                {
                    tempModel = (WorkspaceModel)x.Deserialize(xReader);
                }

                foreach (Workspace ws in tempModel.allWorkspaces)
                {
                    foreach (SketchThumbnail s in ws.Sketches)
                    {
                        CCanvas ancestor = cm[s.canvasID];
                        s.thumbnail = ancestor.getThumbnail();
                        s.canvas    = ancestor;
                    }
                }

                wm = tempModel;

                foreach (Workspace ws in _wsModel.allWorkspaces)
                {
                    ws.LoadNotesFromFile(dataPath);
                }
            }
            else
            {
                wm = new WorkspaceModel();
                wm.Initialize();
            }
        }