public void DeselectMultipleObjects() { TcpListener ServerSocket = new TcpListener(IPAddress.Parse("127.0.0.1"), 1000); ServerSocket.Start(); PrivateObject canvas = new PrivateObject(typeof(Canvas)); RectangleBlue blueObj = new RectangleBlue(50, 50, true); CmdAddRectangleBlue commandAddBlue = new CmdAddRectangleBlue(); commandAddBlue.Execute(blueObj); Canvas.Objects.Add(blueObj); RectangleBlue blueObj2 = new RectangleBlue(250, 70, true); CmdAddRectangleBlue commandAddBlue2 = new CmdAddRectangleBlue(); commandAddBlue2.Execute(blueObj2); Canvas.Objects.Add(blueObj2); RectangleRed redObj = new RectangleRed(450, 100, true); CmdAddRectangleRed commandAddRed = new CmdAddRectangleRed(); commandAddRed.Execute(redObj); Canvas.Objects.Add(redObj); object[] paramsSelectClick = new object[] { null, null }; canvas.Invoke("btnSelect_Click", paramsSelectClick); object[] paramsMouseClick3 = new object[] { null, new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0) }; canvas.Invoke("pnlCenter_MouseClick", paramsMouseClick3); NUnit.Framework.Assert.IsFalse(blueObj.Selected); NUnit.Framework.Assert.IsFalse(blueObj2.Selected); NUnit.Framework.Assert.IsFalse(redObj.Selected); }
private void DeleteRectRed(RectangleRed Rect) { CmdDeleteRectangleRed CmdDeleteRectRed = new CmdDeleteRectangleRed(); CmdDeleteRectRed.Execute(Rect); CmdDeleteRectRed.hierarchyID = Rect.HierarchyID; }
public void TestTwoObjectsSelect() { Canvas canvas = new Canvas(true); Guid rectObjId = Guid.NewGuid(); Rectangle_Object rectObjRed = new RectangleRed(0, 0, false, false, false, rectObjId, 0, 0, false, false); Rectangle_Object rectObjBlue = new RectangleBlue(50, 20, false, false, false, rectObjId, 0, 0, false, false); CmdAddRectangleRed cmdAddRectRed = new CmdAddRectangleRed(); CmdAddRectangleBlue cmdAddRectBlue = new CmdAddRectangleBlue(); cmdAddRectRed.Execute(rectObjRed); Canvas.Objects.Add(rectObjRed); cmdAddRectBlue.Execute(rectObjBlue); Canvas.Objects.Add(rectObjBlue); canvas.IsChecked_btnSelectProp = true; canvas.IsChecked_btnRectRedProp = false; canvas.IsChecked_btnRectBlueProp = false; canvas.pnlCenter_MouseClickWrapper(55, 25, 1, 0); Assert.IsTrue(rectObjBlue.Selected); Assert.IsFalse(rectObjRed.Selected); canvas.pnlCenter_MouseClickWrapper(10, 10, 1, 0); Assert.IsTrue(rectObjRed.Selected); }
private void MoveRectRed(RectangleRed Rect) { CmdMoveRectangleRed CmdMoveRect = new CmdMoveRectangleRed(); CmdMoveRect.Execute(Rect); CmdMoveRect.hierarchyID = Rect.HierarchyID; }
private void DeleteRectRed_Inverse(RectangleRed Rect) { CmdDeleteRectangleRed CmdDeleteRect = new CmdDeleteRectangleRed(); CmdDeleteRect.Unexecute(Rect); Objects.Add(Rect); CmdDeleteRect.hierarchyID = Rect.HierarchyID; }
private void DrawRectRed_Inverse(RectangleRed Rect) { CmdAddRectangleRed CmdAddRect = new CmdAddRectangleRed(); CmdAddRect.Unexecute(Rect); CmdAddRect.hierarchyID = Rect.HierarchyID; Objects.Remove(Rect); }
//COMMANDS------------------------------------------------------------------ private void DrawRectRed(RectangleRed Rect) { CmdAddRectangleRed CmdAddRect = new CmdAddRectangleRed(); CmdAddRect.Execute(Rect); CmdAddRect.hierarchyID = Rect.HierarchyID; Objects.Add(Rect); }
private void SelectRectangleRed(RectangleRed Rect) { CmdSelectRectangleRed CmdSelectRect = new CmdSelectRectangleRed(); CmdSelectRect.ID_Command = Guid.NewGuid(); Rect.Username = Username; Rect.Selected = true; CmdSelectRect.Execute(Rect); Selected.Add(Rect); }
public static void Moving(string x, string y) { if (Selected[0].Name == "Rectangle Red") { int HelperX = 0; int HelperY = 0; for (int i = Objects.Count - 1; i >= 0; i--) { if (Objects[i].Selected) { HelperX = Objects[i].X; HelperY = Objects[i].Y; } } RectangleRed Rec = new RectangleRed(int.Parse(x), int.Parse(y), HelperX, HelperY); Rec.Moved = true; Rec.Username = Username; Rec.HierarchyID = Selected[0].HierarchyID; CmdMoveRectangleRed CmdMoveRec = new CmdMoveRectangleRed(); CmdMoveRec.ID_Command = Guid.NewGuid(); CmdMoveRec.Execute(Rec); CmdMoveRec.hierarchyID = Rec.HierarchyID; BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream data = new MemoryStream()) { bf.Serialize(data, CmdMoveRec); ServerStream.Write(data.ToArray(), 0, data.ToArray().Length); ServerStream.Flush(); } Selected.Clear(); } else if (Selected[0].Name == "Rectangle Blue") { int HelperX = 0; int HelperY = 0; for (int i = Objects.Count - 1; i >= 0; i--) { if (Objects[i].Selected) { HelperX = Objects[i].X; HelperY = Objects[i].Y; } } RectangleBlue Rec = new RectangleBlue(int.Parse(x), int.Parse(y), HelperX, HelperY); Rec.Moved = true; Rec.Username = Username; CmdMoveRectangleBlue CmdMoveRec = new CmdMoveRectangleBlue(); CmdMoveRec.ID_Command = Guid.NewGuid(); CmdMoveRec.Execute(Rec); CmdMoveRec.hierarchyID = Rec.HierarchyID; BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream data = new MemoryStream()) { bf.Serialize(data, CmdMoveRec); ServerStream.Write(data.ToArray(), 0, data.ToArray().Length); ServerStream.Flush(); } Selected.Clear(); } }
private void btnDelete_Click(object sender, EventArgs e) { this.IsChecked_btnRectRed = false; this.IsChecked_btnRectBlue = false; this.IsChecked_btnSelect = false; if (Selected.Count == 1) { for (int i = 0; i < Objects.Count; i++) { if (Selected[0] == Objects[i]) { Objects[i].Moved = false; Objects[i].Deleted = true; if (Objects[i].Name == "Rectangle Red") { CmdDeleteRectangleRed CmdDeleteEventOne = new CmdDeleteRectangleRed(); Rect_Red = (RectangleRed)Objects[i]; Rect_Red.Username = Username; CmdDeleteEventOne.ID_Command = Guid.NewGuid(); CmdDeleteEventOne.Execute(Rect_Red); CmdDeleteEventOne.hierarchyID = Rect.HierarchyID; Command_manager = Manager.SaveCommand(CmdDeleteEventOne, CmdDeleteEventOne.isUndo, CmdDeleteEventOne.isRedo); BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream data = new MemoryStream()) { bf.Serialize(data, CmdDeleteEventOne); ServerStream_priv.Write(data.ToArray(), 0, data.ToArray().Length); ServerStream_priv.Flush(); } } else if (Objects[i].Name == "Rectangle Blue") { CmdDeleteRectangleBlue CmdDeleteEventTwo = new CmdDeleteRectangleBlue(); Rect_Blue = (RectangleBlue)Objects[i]; Rect_Blue.Username = Username; CmdDeleteEventTwo.ID_Command = Guid.NewGuid(); CmdDeleteEventTwo.Execute(Rect_Blue); CmdDeleteEventTwo.hierarchyID = Rect.HierarchyID; Command_manager = Manager.SaveCommand(CmdDeleteEventTwo, CmdDeleteEventTwo.isUndo, CmdDeleteEventTwo.isRedo); BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream data = new MemoryStream()) { bf.Serialize(data, CmdDeleteEventTwo); ServerStream_priv.Write(data.ToArray(), 0, data.ToArray().Length); ServerStream_priv.Flush(); } } else if (Objects[i].Name == "Relation") { CmdDeleteRelation CmdDeleteRelation = new CmdDeleteRelation(); Rel = (Relation)Objects[i]; Rel.Username = Username; CmdDeleteRelation.ID_Command = Guid.NewGuid(); CmdDeleteRelation.Execute(Rel); CmdDeleteRelation.hierarchyID = Rel.HierarchyID; Command_manager = Manager.SaveCommand(CmdDeleteRelation, CmdDeleteRelation.isUndo, CmdDeleteRelation.isRedo); BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream data = new MemoryStream()) { bf.Serialize(data, CmdDeleteRelation); ServerStream_priv.Write(data.ToArray(), 0, data.ToArray().Length); ServerStream_priv.Flush(); } } Selected.Clear(); break; } } } }
//---------------------------------------------------------------------------- private void pnlCenter_MouseClick(object sender, MouseEventArgs e) { if (this.IsChecked_btnRectRed) { int x = e.Location.X; int y = e.Location.Y; Rect_Red = new RectangleRed(x, y); Rect_Red.Username = Username; Rect_Red.HierarchyID[0] = Canvas_ID; Rect_Red.HierarchyID[1] = Guid.NewGuid(); CmdAddRectangleRed CmdAddRect = new CmdAddRectangleRed(); CmdAddRect.username = Username; CmdAddRect.ID_Command = Guid.NewGuid(); CmdAddRect.Execute(Rect_Red); CmdAddRect.hierarchyID = Rect_Red.HierarchyID; CmdAddRect.eventList = Rect_Red.EventList; Command_manager = Manager.SaveCommand(CmdAddRect, CmdAddRect.isUndo, CmdAddRect.isRedo); BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream data = new MemoryStream()) { bf.Serialize(data, CmdAddRect); ServerStream_priv.Write(data.ToArray(), 0, data.ToArray().Length); ServerStream_priv.Flush(); } } else if (this.IsChecked_btnRectBlue) { int x = e.Location.X; int y = e.Location.Y; Rect_Blue = new RectangleBlue(x, y); CmdAddRectangleBlue CmdAddRect = new CmdAddRectangleBlue(); Rect_Blue.Username = Username; Rect_Blue.HierarchyID[0] = Canvas_ID; Rect_Blue.HierarchyID[1] = Guid.NewGuid(); CmdAddRect.ID_Command = Guid.NewGuid(); CmdAddRect.eventList = Rect_Blue.EventList; CmdAddRect.Execute(Rect_Blue); CmdAddRect.hierarchyID = Rect_Blue.HierarchyID; Command_manager = Manager.SaveCommand(CmdAddRect, CmdAddRect.isUndo, CmdAddRect.isRedo); BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream data = new MemoryStream()) { bf.Serialize(data, CmdAddRect); ServerStream_priv.Write(data.ToArray(), 0, data.ToArray().Length); ServerStream_priv.Flush(); } } else if (this.IsChecked_btnSelect) { int x = e.Location.X; int y = e.Location.Y; if (this.CheckUnselection(x, y, Objects)) { for (int i = Objects.Count - 1; i >= 0; i--) { if (Objects[i].Name == "Relation") { Point Start = GetNearestPoint(Objects[i].EventList[0], Objects[i].EventList[1].Center()); Point End = GetNearestPoint(Objects[i].EventList[1], Objects[i].EventList[0].Center()); bool helper = CheckSelectionLine(x, y, End.X, End.Y, Start.X, Start.Y); if (helper) { SelectRelation((Relation)Objects[i]); break; } } else if (Objects[i].Name == "Label") { bool helper = this.CheckSelection(x, y, Objects[i].X, Objects[i].Y, Objects[i].X + 75, Objects[i].Y + 15); if (helper) { SelectLabelEvent((Objects.Label)Objects[i]); break; } } else { bool helper = this.CheckSelection(x, y, Objects[i].X, Objects[i].Y, Objects[i].X + 150, Objects[i].Y + 70); if (helper) { if (Objects[i].Name == "Rectangle Red") { SelectRectangleRed((RectangleRed)Objects[i]); break; } else if (Objects[i].Name == "Rectangle Blue") { SelectRectangleBlue((RectangleBlue)Objects[i]); break; } } } } } else { for (int i = Objects.Count - 1; i >= 0; i--) { Objects[i].Unselect(pnlCenter); Objects[i].Selected = false; Selected.Clear(); } } } }
private void MoveRectangleRed_Invoker(RectangleRed Rect) { MoveRectanglRed MoveRect = new MoveRectanglRed(MoveRectRed); Invoke(MoveRect, Rect); }
private void DeleteRectangleRed_Invoker_Inverse(RectangleRed Rect) { DeleteRectangleRed_Inverse DeleteRect = new DeleteRectangleRed_Inverse(DeleteRectRed_Inverse); Invoke(DeleteRect, Rect); }
private void DeleteRectangleRed_Invoker(RectangleRed Rect) { DeleteRectangleRed DeleteRect = new DeleteRectangleRed(DeleteRectRed); Invoke(DeleteRect, Rect); }
private void DrawRectangleRed_Invoker_Inverse(RectangleRed Rect) { DrawRectangleRed_Inverse DrawRect = new DrawRectangleRed_Inverse(DrawRectRed_Inverse); Invoke(DrawRect, Rect); }
private void GetContent() { while (true) { ServerStream_priv = ClientSocket.GetStream(); byte[] inStream = new byte[10025]; int n = 0; n = ServerStream_priv.Read(inStream, 0, 10025); if (n != 0) { byte[] data = inStream; BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream(data)) { object obj = bf.Deserialize(ms); if (obj.GetType() == typeof(Undo_Redo.UndoRedoWrapper)) { this.Undo_command = (Undo_Redo.UndoRedoWrapper)obj; if (Undo_command.Command.Username != Username) { Undo_command = Manager.SaveCommand(Undo_command.Command, Undo_command.Command.IsUndo, Undo_command.Command.IsRedo); } if (Manager.Counter > 1) { if (Counter > 2) { CmdLargeRepair cmdLargeRepair = new CmdLargeRepair(); cmdLargeRepair.isLargeRepair = true; cmdLargeRepair.ID_Command = Guid.NewGuid(); cmdLargeRepair.username = Username; BinaryFormatter bf1 = new BinaryFormatter(); using (MemoryStream data1 = new MemoryStream()) { bf1.Serialize(data1, cmdLargeRepair); ServerStream_priv.Write(data1.ToArray(), 0, data1.ToArray().Length); ServerStream_priv.Flush(); } } else if (Manager.Commands[Manager.Counter - 1].ID_prevCommand != Undo_command.ID_prevCommand) { Manager.Swap(Manager.Commands[Manager.Counter - 2], Manager.Commands[Manager.Counter - 1], Manager.Commands); Counter++; } } this.Rect = Undo_command.Command; if (Rect.EventName == "Rectangle Red") { this.Rect_Red = new RectangleRed(Rect.X, Rect.Y, Rect.Selected, Rect.Deleted, Rect.Moved, Rect.Username, Rect.MovingHelperX, Rect.MovingHelperY, Rect.IsUndo, Rect.IsRedo); Rect_Red.HierarchyID = Rect.HierarchyID; Rect_Red.EventList = Rect.EventList; if (Rect_Red.IsUndo && Rect_Red.Deleted) { DeleteRectangleRed_Invoker_Inverse(this.Rect_Red); } else if (Rect_Red.IsUndo) { DrawRectangleRed_Invoker_Inverse(this.Rect_Red); } else if (Rect_Red.Moved) { MoveRectangleRed_Invoker(this.Rect_Red); } else if (Rect_Red.Deleted) { DeleteRectangleRed_Invoker(this.Rect_Red); } else if (Rect_Red.Selected) { SelectRectangleRed(this.Rect_Red); } else { DrawRectRed(this.Rect_Red); } } else if (Rect.EventName == "Rectangle Blue") { this.Rect_Blue = new RectangleBlue(Rect.X, Rect.Y, Rect.Selected, Rect.Deleted, Rect.Moved, Rect.Username, Rect.MovingHelperX, Rect.MovingHelperY, Rect.IsUndo, Rect.IsRedo); Rect_Blue.HierarchyID = Rect.HierarchyID; Rect_Blue.EventList = Rect.EventList; if (Rect_Blue.IsUndo && Rect_Blue.Deleted) { DeleteRectangleBlue_Invoker_Inverse(this.Rect_Blue); } else if (Rect_Blue.IsUndo) { DrawRectangleBlue_Invoker_Inverse(this.Rect_Blue); } else if (Rect_Blue.Moved) { MoveRectangleBlue_Invoker(this.Rect_Blue); } else if (Rect_Blue.Deleted) { DeleteRectangleBlue_Invoker(this.Rect_Blue); } else if (Rect_Blue.Selected) { SelectRectangleBlue(this.Rect_Blue); } else { DrawRectBlue(this.Rect_Blue); } } else if (Rect.EventName == "Relation") { this.Rel = new Relation(Rect.Start, Rect.End, Rect.Selected, Rect.Deleted, Rect.Moved, Rect.Username, Rect.IsUndo, Rect.IsRedo); Rel.EventList.Add(Rect.EventList[0]); Rel.EventList.Add(Rect.EventList[1]); Rel.HierarchyID = Rect.HierarchyID; if (Rel.IsUndo && Rel.Deleted) { DeleteRelation_Invoker_Inverse(Rel); } else if (Rel.IsUndo) { DrawRelation_Invoker_Inverse(Rel); } else if (Rel.Deleted) { DeleteRelation_Invoker(Rel); } else if (Rel.Moved) { MoveRelation_Invoker(Rel); } else { DrawRelation(Rel); } } else if (Rect.EventName == "Label") { this.Lab = new Objects.Label(Rect.X, Rect.Y, Rect.Selected, Rect.Deleted, Rect.Moved, Rect.Username, Rect.MovingHelperX, Rect.MovingHelperY, Rect.IsUndo, Rect.IsRedo); Lab.HierarchyID = Rect.HierarchyID; Lab.EventList = Rect.EventList; if (Lab.IsUndo && Lab.Deleted) { DeleteLabel_Invoker_Inverse(this.Lab); } else if (Lab.IsUndo) { DrawLabel_Invoker_Inverse(this.Lab); } else if (Lab.Deleted) { DeleteLabel_Invoker(this.Lab); } else if (Lab.Selected) { SelectLabelEvent(this.Lab); } else { DrawLabel(this.Lab); } } } else { Console.WriteLine("This is large repair!"); Manager.Commands = (Undo_Redo.UndoRedoWrapper[])obj; } } } else { break; } } }