Beispiel #1
0
        private void DeleteLab(Objects.Label Lab)
        {
            CmdDeleteLabel CmdDeleteLabel = new CmdDeleteLabel();

            CmdDeleteLabel.Execute(Lab);
            CmdDeleteLabel.hierarchyID = Lab.HierarchyID;
        }
Beispiel #2
0
        private void DeleteLab_Inverse(Objects.Label Lab)
        {
            CmdDeleteLabel CmdDeleteLabel = new CmdDeleteLabel();

            CmdDeleteLabel.Unexecute(Lab);
            CmdDeleteLabel.hierarchyID = Lab.HierarchyID;
        }
Beispiel #3
0
        private void DrawLab_Inverse(Objects.Label Lab)
        {
            CmdAddLabel CmdAddLabel = new CmdAddLabel();

            CmdAddLabel.Unexecute(Lab);
            CmdAddLabel.hierarchyID = Lab.HierarchyID;
            Objects.Remove(Lab);
        }
Beispiel #4
0
        private void DrawLabel(Objects.Label Lab)
        {
            CmdAddLabel CmdAddLabel = new CmdAddLabel();

            CmdAddLabel.Execute(Lab);
            CmdAddLabel.hierarchyID = Lab.HierarchyID;
            Objects.Add(Lab);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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;
                    }
                }
            }
        }
Beispiel #7
0
        private void DeleteLabel_Invoker_Inverse(Objects.Label Lab)
        {
            DeleteLabel_Inverse DeleteObj = new DeleteLabel_Inverse(DeleteLab_Inverse);

            Invoke(DeleteObj, Lab);
        }
Beispiel #8
0
        private void DeleteLabel_Invoker(Objects.Label Lab)
        {
            DeleteLabel DeleteObj = new DeleteLabel(DeleteLab);

            Invoke(DeleteObj, Lab);
        }
Beispiel #9
0
        private void DrawLabel_Invoker_Inverse(Objects.Label Lab)
        {
            DrawLabel_Inverse DrawLabel = new DrawLabel_Inverse(DrawLab_Inverse);

            Invoke(DrawLabel, Lab);
        }
Beispiel #10
0
        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();
                }
            }
        }
Beispiel #11
0
        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;
                }
            }
        }