private void DeleteLab(Objects.Label Lab) { CmdDeleteLabel CmdDeleteLabel = new CmdDeleteLabel(); CmdDeleteLabel.Execute(Lab); CmdDeleteLabel.hierarchyID = Lab.HierarchyID; }
private void DeleteLab_Inverse(Objects.Label Lab) { CmdDeleteLabel CmdDeleteLabel = new CmdDeleteLabel(); CmdDeleteLabel.Unexecute(Lab); CmdDeleteLabel.hierarchyID = Lab.HierarchyID; }
private void DrawLab_Inverse(Objects.Label Lab) { CmdAddLabel CmdAddLabel = new CmdAddLabel(); CmdAddLabel.Unexecute(Lab); CmdAddLabel.hierarchyID = Lab.HierarchyID; Objects.Remove(Lab); }
private void DrawLabel(Objects.Label Lab) { CmdAddLabel CmdAddLabel = new CmdAddLabel(); CmdAddLabel.Execute(Lab); CmdAddLabel.hierarchyID = Lab.HierarchyID; Objects.Add(Lab); }
private void SelectLabelEvent(Objects.Label e1) { CmdSelectLabel CmdSelectLabel = new CmdSelectLabel(); CmdSelectLabel.ID_Command = Guid.NewGuid(); e1.Username = Username; e1.Selected = true; CmdSelectLabel.Execute(e1); Selected.Add(e1); }
private void btnDeleteLabel_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 == "Label") { CmdDeleteLabel CmdDeleteLabel = new CmdDeleteLabel(); Objects.Label Help_object = (Objects.Label)Objects[i]; Help_object.Username = Username; CmdDeleteLabel.ID_Command = Guid.NewGuid(); CmdDeleteLabel.Execute(Help_object); CmdDeleteLabel.hierarchyID = Help_object.HierarchyID; BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream data = new MemoryStream()) { bf.Serialize(data, CmdDeleteLabel); ServerStream_priv.Write(data.ToArray(), 0, data.ToArray().Length); ServerStream_priv.Flush(); } } Selected.Clear(); break; } } } }
private void DeleteLabel_Invoker_Inverse(Objects.Label Lab) { DeleteLabel_Inverse DeleteObj = new DeleteLabel_Inverse(DeleteLab_Inverse); Invoke(DeleteObj, Lab); }
private void DeleteLabel_Invoker(Objects.Label Lab) { DeleteLabel DeleteObj = new DeleteLabel(DeleteLab); Invoke(DeleteObj, Lab); }
private void DrawLabel_Invoker_Inverse(Objects.Label Lab) { DrawLabel_Inverse DrawLabel = new DrawLabel_Inverse(DrawLab_Inverse); Invoke(DrawLabel, Lab); }
private void btnAddLabel_Click(object sender, EventArgs e) { Objects.Label Label_object = new Objects.Label(); if (Selected.Count == 1) { CmdAddLabel CmdLabel = new CmdAddLabel(); if (!Selected[0].EventList.Any()) { Label_object = new Objects.Label(Selected[0].X + 20, Selected[0].Y + 10); Label_object.EventList.Add(Selected[0]); Label_object.Username = Username; for (int i = 0; i < 5; i++) { if (Label_object.EventList[0].HierarchyID[i] != new Guid("00000000-0000-0000-0000-000000000000")) { Label_object.HierarchyID[i] = Label_object.EventList[0].HierarchyID[i]; } else { Label_object.HierarchyID[i] = Guid.NewGuid(); } } } else if (Selected[0].EventList.Count == 1) { Label_object = new Objects.Label(Selected[0].X + 20, Selected[0].Y + 30); Label_object.EventList.Add(Selected[0]); Label_object.Username = Username; for (int i = 0; i < 5; i++) { if (Label_object.EventList[0].HierarchyID[i] != new Guid("00000000-0000-0000-0000-000000000000")) { Label_object.HierarchyID[i] = Label_object.EventList[0].HierarchyID[i]; } else { Label_object.HierarchyID[i] = Guid.NewGuid(); } } } else if (Selected[0].EventList.Count == 2) { Label_object = new Objects.Label(Selected[0].X + 20, Selected[0].Y + 50); Label_object.EventList.Add(Selected[0]); Label_object.Username = Username; for (int i = 0; i < 5; i++) { if (Label_object.EventList[0].HierarchyID[i] != new Guid("00000000-0000-0000-0000-000000000000")) { Label_object.HierarchyID[i] = Label_object.EventList[0].HierarchyID[i]; } else { Label_object.HierarchyID[i] = Guid.NewGuid(); } } } Selected[0].EventList.Add(Label_object); CmdLabel.username = Username; CmdLabel.ID_Command = Guid.NewGuid(); CmdLabel.Execute(Label_object); CmdLabel.hierarchyID = Label_object.HierarchyID; Command_manager = Manager.SaveCommand(CmdLabel, CmdLabel.isUndo, CmdLabel.isRedo); BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream data = new MemoryStream()) { bf.Serialize(data, CmdLabel); ServerStream_priv.Write(data.ToArray(), 0, data.ToArray().Length); ServerStream_priv.Flush(); } } }
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; } } }