Exemple #1
0
        private MultiPagePanel AddSftpUserPage()
        {
            var page = new MultiPagePanel()
            {
                Name      = "pn_sftp",
                Size      = this.pn_main.Size,
                BackColor = Color.Purple
            };

            return(page);
        }
Exemple #2
0
        private MultiPagePanel AddSshUserPage()
        {
            var page = new MultiPagePanel()
            {
                Name = "pn_ssh",
                Size = this.pn_main.Size,
            };

            pn_btns = new Panel()
            {
                Dock       = DockStyle.Top,
                Location   = new Point(0, 0),
                Name       = "pn_btns",
                Size       = new Size(781, 40),
                BackColor  = Color.FromArgb(((int)(((byte)(7)))), ((int)(((byte)(38)))), ((int)(((byte)(59))))),
                AutoScroll = true,
            };
            page.AddPage(pn_btns);

            var pn_separator = new Panel()
            {
                BackColor = Color.White,
                Dock      = DockStyle.Top,
                Location  = new Point(0, 40),
                Name      = "pn_separator",
                Size      = new Size(781, 3),
            };

            page.AddPage(pn_separator);

            pn_consoles = new MultiPagePanel()
            {
                Dock     = DockStyle.Fill,
                Location = new Point(0, 43),
                Name     = "pn_consoles",
                Size     = new Size(781, 567)
            };
            page.AddPage(pn_consoles);

            return(page);
        }
Exemple #3
0
        private void AddSftpUser()
        {
            MultiPagePanel userPanel = null;

            foreach (var item in this.pn_main.Controls)
            {
                if (item is MultiPagePanel ctrl)
                {
                    if (ctrl.Name == "pn_sftp")
                    {
                        userPanel = ctrl;
                    }
                }
            }

            if (userPanel == null)
            {
                userPanel = AddSftpUserPage();
            }

            this.pn_main.AddPage(userPanel);
        }
Exemple #4
0
        private void AddSshUser(Client client)
        {
            MultiPagePanel userPanel = null;

            foreach (var item in this.pn_main.Controls)
            {
                if (item is MultiPagePanel ctrl)
                {
                    if (ctrl.Name == "pn_ssh")
                    {
                        userPanel = ctrl;
                    }
                }
            }

            if (userPanel == null)
            {
                userPanel = AddSshUserPage();
            }

            foreach (var item in userPanel.Controls)
            {
                if (item is Panel ctrl)
                {
                    if (ctrl.Name == "pn_btns")
                    {
                        client.TabHeader = new TabButton()
                        {
                            //Name = $"tab_{count}",
                            FlatStyle = FlatStyle.Flat,
                            Size      = new Size(100, ctrl.Height),
                            BackColor = Color.FromArgb(((int)(((byte)(7)))), ((int)(((byte)(38)))), ((int)(((byte)(59))))),
                            Dock      = DockStyle.Left,
                            Font      = new Font("D2Coding", 8F),
                            ForeColor = Color.White,
                            Text      = $"{client.UserName}@{client.IP}",
                        };
                        client.TabHeader.FlatAppearance.BorderColor        = Color.White;
                        client.TabHeader.FlatAppearance.MouseOverBackColor = Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(132)))), ((int)(((byte)(142)))));
                        client.TabHeader.MouseDown += ChangeTabPage;
                        ctrl.Controls.Add(client.TabHeader);
                    }
                    else if (ctrl.Name == "pn_consoles")
                    {
                        string mark = string.Empty;
                        if (client.UserName == "root")
                        {
                            mark = "#";
                        }
                        else
                        {
                            mark = "$";
                        }

                        client.Console = new MyRichTextBox()
                        {
                            //Name = $"console_{count}",
                            Dock      = DockStyle.Fill,
                            BackColor = Color.Black,
                            ForeColor = Color.White,
                            Font      = new Font("Consolas", 11, FontStyle.Regular),
                            ID        = $"[{client.UserName}@dev1 ~]{mark} ",
                            Client    = client,
                        };

                        client.Console.KeyPress += ConsoleInputEvent;
                        client.Console.KeyDown  += InputCancellation;

                        //NOTE: Restrict movement of cursor.
                        client.Console.SelectionChanged += (s, e1) =>
                        {
                            if (s is MyRichTextBox mrtb)
                            {
                                mrtb.SelectionStart = mrtb.TextLength;
                            }
                        };
                        client.Console.AppendText(client.Console.ID);
                        client.Console.MinSelection = client.Console.SelectionStart;
                        (ctrl as MultiPagePanel).AddPage(client.Console);
                    }
                }
            }
            this.pn_main.AddPage(userPanel);

            if (clients == null)
            {
                clients = new List <Client>();
            }

            client.ID = Guid.NewGuid().ToString();
            clients.Add(client);

            if (this.pn_batch != null)
            {
                this.pn_batch.AddItem(clients);
            }

            ChangeTabHeaderColor(client.TabHeader);
            //count++;
        }