public void Save(FractalDocument document) { if (document == null) { return; } using (XmlTextWriter tw = new XmlTextWriter(_filePath, Encoding.ASCII)) { FractalTransformationPersister ftp = new FractalTransformationPersister(tw); tw.WriteStartDocument(); tw.WriteStartElement("fractals"); foreach (var fractal in document.Fractals) { tw.WriteStartElement("fractal"); tw.WriteAttributeString("name", fractal.Name); foreach (var t in fractal.Tansformations) { t.Accept(ftp); } tw.WriteEndElement(); } tw.WriteEndElement(); tw.WriteEndDocument(); } }
private FractalDocument _document;//Model of the application public MainViewPresenter( IMainView mainView, TrackBarControlPanelView trackBarControlPanelView, NumbersControlPanelView numbersControlPanelView, FractalDataGridView fractalDataGridView, FractalEditorView fractalEditorView, IDimensionCalculatorFactory dimensionCalculatorFactory) { if (mainView == null) { throw new ArgumentNullException("mainView"); } if (trackBarControlPanelView == null) { throw new ArgumentNullException("trackBarControlPanelView"); } if (numbersControlPanelView == null) { throw new ArgumentNullException("numbersControlPanelView"); } if (fractalDataGridView == null) { throw new ArgumentNullException("fractalDataGridView"); } if (fractalEditorView == null) { throw new ArgumentNullException("fractalEditorView"); } if (dimensionCalculatorFactory == null) { throw new ArgumentNullException("dimensionCalculatorFactory"); } _mainView = mainView; _trackBarControlPanelView = trackBarControlPanelView; _numbersControlPanelView = numbersControlPanelView; _fractalDataGridView = fractalDataGridView; _fractalEditorView = fractalEditorView; _numberViewPresenter = new ControlPanelViewPresenter(_numbersControlPanelView); _trackBarsViewPresenter = new ControlPanelViewPresenter(_trackBarControlPanelView); _dataGridPresenter = new FractalDataGridViewPresenter(_fractalDataGridView); _editorViewPresenter = new FractalEditorViewPresenter(_fractalEditorView); _dimensionCalculatorFactory = dimensionCalculatorFactory; _mainView.SelectedChanged += new SelectedFractalEventHandler(SelectedFractalChanged); _document = FractalDocument.GetInstance(); _mainView.Load += new EventHandler(_mainView_Load); _document.Changed += new EventHandler(_document_Changed); }
//Save logic goes here public void NewDocument() { if (_document.IsDirty) { DialogResult result = _mainView.AskSaving(); if (result == DialogResult.Yes) { SaveDocument(); } else if (result == DialogResult.Cancel) { return; } } FractalDocument.GetInstance().New(); }
public bool AddFractalToDocument(out string whyNot) { whyNot = ""; string xmlFractal = _view.XmlFractal; try { FractalDocument.GetInstance().LoadFractalFromXml(xmlFractal); return(true); } catch (FractalCompilerException e) { whyNot = e.Message; } catch (Exception e) { whyNot = e.Message; } return(false); }