예제 #1
0
        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()));
                        }
                    }
            }
        }
예제 #2
0
        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();
        }