private void AddVerticle() { var line = (SelectedObject as Line); Point newVerticlePoint = Clicks.Last(); var newLine = (line.ParentGraphicObject as Poligon).InsertLine(line, newVerticlePoint); GraphicObjects.Add(newLine.Guid, newLine); GraphicObjects.Add(newLine.StartVerticle.Guid, newLine.StartVerticle); Redraw(); }
//private readonly Action _graphicObjectSelected; //private readonly Action _verticleSelected; //private readonly Func<int, bool> _lineSelected; //private readonly Action _nullSelected; //private readonly Action _circleSelected; private void DrawCircle() { var circle = new Circle(Clicks.Last(), Radius, Drawing, GuidMapLogic, Width); GraphicObjects.Add(circle.Guid, circle); circle.DrawItself(); circle.DrawOnGuidMap(); //GuidMapLogic.SetOnMap(circle); Clicks.Clear(); }
DocumentEvents saveEvent;//DocumentEvents object used for saving events /// <summary> /// Initialization of UI and editing related events and members /// </summary> /// <param name="textView"></param> /// <param name="mcb"></param> /// <param name="cs"></param> public CoProCommandFilter(IWpfTextView textView, CoProNetwork mcb, GraphicObjects cs) { m_textView = textView; m_adornmentLayer = m_textView.GetAdornmentLayer("MultiEditLayer"); m_added = false; m_textView.LayoutChanged += m_textView_LayoutChanged; cb = mcb; gobj = cs; //crts.DTE2.Events.TextEditorEvents.LineChanged += new _dispTextEditorEvents_LineChangedEventHandler(); events = gobj.DTE2.Events; saveEvent = events.DocumentEvents; saveEvent.DocumentSaved += new _dispDocumentEvents_DocumentSavedEventHandler(my_DocWasSaved); cb.NewCaret += new NewCaretEventHandler(my_NewCaret); cb.ChangeCaret += new ChangeCaretEventHandler(my_ChangedCaret); cb.EditorDisc += new EditorDisconnectedEventHandler(my_EditorDisc); cb.NewText += new NewTextEventHandler(my_AddedText); cb.RemovedText += new RemovedTextEventHandler(my_RemovedText); cb.SaveEvent += new SaveEventHandler(my_Save); cb.AddAllEditors += new AddCurrentEditorsEventHandler(my_AddEditors); cb.ItemRemoved += new ItemRemovedEventHandler(my_RemovedItem); cb.ItemAdded += new NewItemAddedEventHandler(my_ItemAdded); textView.Caret.PositionChanged += new EventHandler<CaretPositionChangedEventArgs>(my_PositionChanged); textView.TextBuffer.Changed += TextBuffer_Changed; InitBrushes(); uiDisp = Dispatcher.CurrentDispatcher; ITextDocument textDoc; var rc = m_textView.TextBuffer.Properties.TryGetProperty<ITextDocument>( typeof(ITextDocument), out textDoc); filename = gobj.DTE2.Solution.FullName; filename = filename.Substring(filename.LastIndexOf('\\') + 1); filename = filename.Split('.')[0]; filename = textDoc.FilePath.Substring(textDoc.FilePath.IndexOf(filename)); if (cb.IsAdmin) { cb.AdminEvent += my_AdminCallback; } if (isFirstTime) { isFirstTime = false; } else { if (!cb.IsAdmin) { cb.UpdateSpecificFile(filename); } } filename = filename.Substring(filename.LastIndexOf('\\') + 1); cb.IntializePosition(filename, m_textView.Caret.Position.BufferPosition.Position, cb.Name); currBufferSize = m_textView.TextSnapshot.Length; }
private void DrawLine() { if (Clicks.Count == 2) { var line = new Line(Clicks[0], Clicks[1], Width, Drawing, GuidMapLogic); line.DrawItself(); GraphicObjects.Add(line.Guid, line); GraphicObjects.Add(line.StartVerticle.Guid, line.StartVerticle); GraphicObjects.Add(line.EndVerticle.Guid, line.EndVerticle); line.DrawOnGuidMap(); Clicks.Clear(); } }
private void StartDrawingPolygon() { if (Clicks.Count == 1) { Poligon poligon = new Poligon(Drawing, GuidMapLogic); CurrentPolygon = poligon; GraphicObjects.Add(poligon.Guid, poligon); return; } var line = new Line(Clicks[Clicks.Count - 2], Clicks.Last(), Width, Drawing, GuidMapLogic, CurrentPolygon); CurrentPolygon.AddLine(line); line.DrawItself(); }
private void DeleteObject() { if (SelectedObject.GraphicObjectType == GraphicObjectType.Verticle) { Verticle verticle = (SelectedObject as Verticle); Line line = (verticle.ParentGraphicObject as Line); Poligon poligon = line.ParentGraphicObject != null ? line.ParentGraphicObject as Poligon : null; if (poligon == null) { return; } else { var lineToDelete = poligon.DeleteVerticle(verticle); GraphicObjects.Remove(lineToDelete.Guid); GraphicObjects.Remove(verticle.Guid); } } else if (SelectedObject.GraphicObjectType == GraphicObjectType.Line) { Line line = (SelectedObject as Line); if (line.ParentGraphicObject == null) { GraphicObjects.Remove(line.StartVerticle.Guid); GraphicObjects.Remove(line.EndVerticle.Guid); GraphicObjects.Remove(line.Guid); } else { Poligon poligon = line.ParentGraphicObject as Poligon; poligon.Lines.ForEach(x => GraphicObjects.Remove(x.Guid)); poligon.Verticies.ForEach(x => GraphicObjects.Remove(x.Guid)); GraphicObjects.Remove(poligon.Guid); } } else if (SelectedObject.GraphicObjectType == GraphicObjectType.Circle) { GraphicObjects.Remove(SelectedObject.Guid); } SelectedObject = null; Redraw(); }
private void SetConcrentic() { Guid mapGuid = GuidMapLogic.GuidMap[Clicks.Last().X + Clicks.Last().Y *Drawing.Width]; GraphicObject graphicObject = null; //Guid mapGuiFirstCircle = GuidMapLogic.GuidMap[Clicks.First().X + Clicks.First().Y * Drawing.Width]; if (mapGuid != Guid.Empty) { ConnectedCircle connectedCircle; graphicObject = GraphicObjects[mapGuid]; if (GraphicObjects[mapGuid].GraphicObjectType == GraphicObjectType.Circle) { ConnectedCircles.Add(GraphicObjects[mapGuid] as Circle); } if (graphicObject.GraphicObjectType == GraphicObjectType.Circle) { var firstCircle = ConnectedCircles.FirstOrDefault(); var circle = ConnectedCircles.LastOrDefault(); if (ConnectedCircles.Count > 1) { if (firstCircle.ParentGraphicObject == null) { connectedCircle = new ConnectedCircle(firstCircle, circle, Drawing, GuidMapLogic); firstCircle.ParentGraphicObject = connectedCircle; circle.ParentGraphicObject = connectedCircle; circle.Center = firstCircle.Center; GraphicObjects.Add(connectedCircle.Guid, connectedCircle); } else { circle.Center = firstCircle.Center; (firstCircle.ParentGraphicObject as ConnectedCircle).AddCircle(circle); } } } } Redraw(); }
private void StopDrawPolygon() { if (Clicks.Count > 2) { var line = new Line(Clicks.Last(), Clicks.First(), Width, Drawing, GuidMapLogic, CurrentPolygon); CurrentPolygon.AddLastLine(line); line.DrawItself(); CurrentPolygon .Lines.ForEach(poligonLine => GraphicObjects.Add(poligonLine.Guid, poligonLine)); CurrentPolygon .Verticies.ForEach(poligonVerticle => GraphicObjects.Add(poligonVerticle.Guid, poligonVerticle)); CurrentPolygon.DrawOnGuidMap(); //GuidMapLogic.SetOnMap(CurrentPolygon); } _buttonControl.StopDrawingPoligon(); Clicks.Clear(); }