Beispiel #1
0
        private void mnuImport_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "FlowSharp (*.fsd)|*.fsd";
            DialogResult res = ofd.ShowDialog();

            if (res == DialogResult.OK)
            {
                BaseController        canvasController = serviceManager.Get <IFlowSharpCanvasService>().ActiveController;
                string                importFilename   = ofd.FileName;
                string                data             = File.ReadAllText(importFilename);
                List <GraphicElement> els = Persist.Deserialize(canvasController.Canvas, data);
                List <GraphicElement> selectedElements = canvasController.SelectedElements.ToList();

                canvasController.UndoStack.UndoRedo("Import",
                                                    () =>
                {
                    canvasController.DeselectCurrentSelectedElements();
                    canvasController.AddElements(els);
                    canvasController.Elements.ForEach(el => el.UpdatePath());
                    canvasController.SelectElements(els);
                    canvasController.Canvas.Invalidate();
                },
                                                    () =>
                {
                    canvasController.DeselectCurrentSelectedElements();
                    els.ForEach(el => canvasController.DeleteElement(el));
                    canvasController.SelectElements(selectedElements);
                });
            }
        }
        protected void LoadFileIntoCanvas(string filename, string canvasName, BaseController canvasController)
        {
            canvasController.Filename   = filename;     // set now, in case of relative image files, etc...
            canvasController.CanvasName = canvasName;
            string data = File.ReadAllText(filename);
            List <GraphicElement> els = Persist.Deserialize(canvasController.Canvas, data);

            canvasController.Clear();
            canvasController.UndoStack.ClearStacks();
            ElementCache.Instance.ClearCache();
            ServiceManager.Get <IFlowSharpMouseControllerService>().ClearState();
            canvasController.AddElements(els);
            canvasController.Elements.ForEach(el => el.UpdatePath());
            canvasController.Canvas.Invalidate();
        }