private void LoadFile() { var openFileDialog = new OpenFileDialog(); openFileDialog.Title = "Load File"; openFileDialog.CheckFileExists = true; openFileDialog.CheckPathExists = true; openFileDialog.DefaultExt = "txt"; openFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"; openFileDialog.FilterIndex = 2; openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == DialogResult.OK && System.IO.File.Exists(openFileDialog.FileName) && System.IO.Path.GetExtension(openFileDialog.FileName) == GlobalConstants.DefaultFileExtension) { using (var fileStream = File.Open(openFileDialog.FileName, FileMode.Open)) using (var streamReader = new StreamReader(fileStream)) { var stringBuilder = new StringBuilder(); var line = streamReader.ReadLine(); while (line != null) { stringBuilder.AppendLine(line); line = streamReader.ReadLine(); } var stringReporesentation = stringBuilder.ToString(); if (stringReporesentation.StartsWith("{\"$type\"")) { JsonSerializerSettings settings = JSONSaveBehaviourWorker.GetJSONSettings(); var shapes = JsonConvert.DeserializeObject <List <Shape> >(stringReporesentation, settings); shapes.ForEach(s => s.UniqueIdentifier = Guid.NewGuid()); dialogProcessor.ShapeList[dialogProcessor.CurrentTab].AddRange(shapes); } else { dialogProcessor.ShapeList[dialogProcessor.CurrentTab].AddRange(CustomLoadFile(stringBuilder.ToString())); } } } }
private void ViewPortMouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if (ButtonMultiMove.Checked) { dialogProcessor.MultiSelection = TraverseOverSelectedMatrix(false).ToList(); dialogProcessor.IsDragging = true; dialogProcessor.LastLocation = e.Location; } if (ButtonMultiSelect.Checked) { dialogProcessor.MultiSelectFlag = true; } dialogProcessor.OnMouseDownPoint = e.Location; dialogProcessor.Selection = dialogProcessor.ContainsPoint(e.Location); if (ButtonMainNavigator.Checked && dialogProcessor.Selection != null) { dialogProcessor.IsDragging = true; dialogProcessor.LastLocation = e.Location; } if (ButtonFillColor.Checked && dialogProcessor.Selection != null) { dialogProcessor.Selection.FillColor = dialogProcessor.Color; } if (ButtonBorderColor.Checked && dialogProcessor.Selection != null) { dialogProcessor.Selection.BorderColor = dialogProcessor.Color; } if (ButtonDelete.Checked && dialogProcessor.Selection != null) { dialogProcessor.ShapeList[dialogProcessor.CurrentTab].Remove(dialogProcessor.Selection); } if (ButtonDrawLine.Checked) { dialogProcessor.DrawTemporaryLine = true; } if (ButtonDrawRectangle.Checked) { dialogProcessor.DrawTemporaryRectangle = true; } if (ButtonDrowTriangle.Checked) { dialogProcessor.DrawTemporaryTriangle = true; } if (ButtonDrawEllipse.Checked) { dialogProcessor.DrawTemporaryEllipse = true; } if (ButtonDrawReuleauxTriangle.Checked) { dialogProcessor.DrawTemporaryReuleauxTriangle = true; } if (ButtonDrawEnvelope.Checked) { dialogProcessor.DrawTemporaryEnvelope = true; } if (ButtonDrawGenericCircle.Checked) { dialogProcessor.DrawTemporaryGenericCircle = true; } if (ButtonCopy.Checked && dialogProcessor.Selection != null) { dialogProcessor.DrawTemporaryCopyShape = true; dialogProcessor.LastLocation = e.Location; JsonSerializerSettings settings = JSONSaveBehaviourWorker.GetJSONSettings(); var serialized = JsonConvert.SerializeObject(dialogProcessor.Selection, settings); var copyOfSelection = JsonConvert.DeserializeObject <Shape>(serialized, settings); copyOfSelection.UniqueIdentifier = Guid.NewGuid(); copyOfSelection.TemporaryFlag = true; dialogProcessor.SelectionCopy = copyOfSelection; dialogProcessor.ShapeList[dialogProcessor.CurrentTab].Add(copyOfSelection); } if (ButtonPlus.Checked && dialogProcessor.Selection != null) { dialogProcessor.Selection.Enlarge(); } if (ButtonMinus.Checked && dialogProcessor.Selection != null) { var selectionGuid = dialogProcessor.Selection.UniqueIdentifier; dialogProcessor.Selection.Shrink(); } RerenderMainCanvas(); }