Exemplo n.º 1
0
        public void OnNewServer(InterfaceServer server)
        {
            ListViewItem ItemServer = new ListViewItem(new string[] { "", "", "", "", "", "" });

            ItemServer.Tag = server;
            ServerToItem(server, ItemServer);
            Items.Add(ItemServer);
        }
Exemplo n.º 2
0
 void ServerChanged(InterfaceServer s, bool present)
 {
     stv.ServerChanged(s, present);
     if (s.State == ServerState.Stopped && autostartitem.State == NSCellStateValue.On)
     {
         s.Start();
     }
 }
Exemplo n.º 3
0
        private void OnCopyLinkHTML(object sender, System.EventArgs e)
        {
            if (SelectedItems.Count == 0)
            {
                return;
            }
            InterfaceServer server = (InterfaceServer)SelectedItems[0].Tag;

            Clipboard.SetDataObject("<a href=\"ed2k://|server|" + server.IP + "|" + server.Port.ToString() + "|/\">" + server.Name + "</a>");
        }
Exemplo n.º 4
0
 private void OnServerChanged(InterfaceServer s, bool connected)
 {
     if (connected)
     {
         BeginInvoke((MethodInvoker) delegate { UpdateServerTable(s, true); });
         if (autoStartServerToolStripMenuItem.Checked && s.State == ServerState.Stopped)
         {
             s.Start();
         }
     }
     else
     {
         BeginInvoke((MethodInvoker) delegate { UpdateServerTable(s, false); });
     }
 }
Exemplo n.º 5
0
 private void ServerToItem(InterfaceServer server, ListViewItem ItemServer)
 {
     if (server == null)
     {
         return;
     }
     if (ItemServer.SubItems[0].Text != server.Name)
     {
         ItemServer.SubItems[0].Text = server.Name;
     }
     if (ItemServer.SubItems[1].Text != server.IP + ":" + server.Port.ToString())
     {
         ItemServer.SubItems[1].Text = server.IP + ":" + server.Port.ToString();
     }
     if (ItemServer.SubItems[2].Text != server.FailedConnections.ToString())
     {
         ItemServer.SubItems[2].Text = server.FailedConnections.ToString();
     }
     if (ItemServer.SubItems[3].Text != server.Files.ToString())
     {
         ItemServer.SubItems[3].Text = server.Files.ToString();
     }
     if (ItemServer.SubItems[4].Text != server.Users.ToString())
     {
         ItemServer.SubItems[4].Text = server.Users.ToString();
     }
     //if (ItemServer.SubItems[5].Text!=server.LastConnection.ToShortTimeString()) ItemServer.SubItems[5].Text=server.LastConnection.ToShortTimeString();
     if (ItemServer.SubItems[5].Text != ServerPriorityToString(server.Priority))
     {
         ItemServer.SubItems[5].Text = ServerPriorityToString(server.Priority);
     }
     ItemServer.Tag = server;
     if (this.SmallImageList != null)
     {
         if (server.Priority == Types.Constants.ServerPriority.High)
         {
             ItemServer.ImageIndex = 0;
         }
         else if (server.Priority == Types.Constants.ServerPriority.Normal)
         {
             ItemServer.ImageIndex = 1;
         }
         else
         {
             ItemServer.ImageIndex = 2;
         }
     }
 }
Exemplo n.º 6
0
        private void Delete(object sender, EventArgs args)
        {
            int    SelectedItem;
            string ipstr;

            string[] IpPort;

            SelectedItem = tvServers.Selection.CountSelectedRows();
            if (SelectedItem == 0)
            {
                return;
            }

            try
            {
                InterfaceServer[] Items = new InterfaceServer[SelectedItem];
                Gtk.TreeModel     model;
                Gtk.TreeIter      iter;
                Gtk.TreePath[]    paths = tvServers.Selection.GetSelectedRows(out model);

                model.GetIter(out iter, paths[0]);

                for (int i = 0; i != SelectedItem; i++)
                {
                    try
                    {
                        ipstr  = model.GetValue(iter, 1).ToString();
                        IpPort = ipstr.Split(":".ToCharArray());
                        IPAddress ip = IPAddress.Parse(IpPort[0]);
                        krnGateway.DeleteServer(BitConverter.ToUInt32(ip.GetAddressBytes(), 0), Convert.ToUInt16(IpPort[1]));
                        stServers.Remove(ref iter);
                    }
                    catch (Exception ex)
                    {
                        Debug.WriteLine(ex.ToString());
                    }

                    model.GetIter(out iter, paths[i + 1]);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.ToString());
            }
        }
Exemplo n.º 7
0
        public void UpdateOrAddServer(InterfaceServer server)
        {
            string ipPort = server.IP + ":" + server.Port.ToString();
            bool   found  = false;

            foreach (ListViewItem ItemServer in this.Items)
            {
                if (ItemServer.SubItems[1].Text == ipPort)
                {
                    ServerToItem(server, ItemServer);
                    found = true;
                }
            }
            if (!found)
            {
                OnNewServer(server);
            }
        }
Exemplo n.º 8
0
        public void ServerChanged(InterfaceServer s, bool present)
        {
            InvokeOnMainThread(() =>
            {
                if (present)
                {
                    if (tableRows.Where(x => x.Value.server == s).Count() == 0)
                    {
                        ServerInfo info = new ServerInfo()
                        {
                            server = s, menuItem = new NSMenuItem()
                        };
                        UpdateMenuItem(info);
                        item.Menu.AddItem(info.menuItem);
                        tableRows.Add(tableRows.Count, info);
                    }
                }
                else
                {
                    if (tableRows.Where(x => x.Value.server == s).Count() != 0)
                    {
                        var info = tableRows.Single(x => x.Value.server == s);
                        item.Menu.RemoveItem(info.Value.menuItem);
                        tableRows.Remove(info.Key);

                        List <ServerInfo> ordered = tableRows.OrderBy(x => x.Key).Select(x => x.Value).ToList();
                        for (int i = 0; i < tableRows.Count; i++)
                        {
                            if (ordered.Count > i)
                            {
                                tableRows[i] = ordered[i];
                            }
                            else
                            {
                                tableRows.Remove(i);
                            }
                        }
                    }
                }
                Table.ReloadData();
            });
        }
Exemplo n.º 9
0
 public void OnNewServer(InterfaceServer server)
 {
     stServers.AppendValues(server.Name, server.IP + " : " + server.Port, server.FailedConnections.ToString(),
                            server.Files.ToString(), server.Users.ToString(),
                            server.Priority.ToString());
 }
Exemplo n.º 10
0
        private void UpdateServerTable(InterfaceServer s, bool present)
        {
            tableLayoutPanel1.SuspendLayout();

            lock (serverTableLock)
            {
                if (present)
                {
                    if (tableRows.ContainsKey(s))
                    {
                        //Update
                        int    row         = tableRows[s].row;
                        Label  labelPort   = (Label)tableLayoutPanel1.GetControlFromPosition(COL_PORT, row);
                        Button startButton = (Button)tableLayoutPanel1.GetControlFromPosition(COL_BUTT, row);
                        startButton.Text    = s.State == ServerState.Started ? STR_STOP : STR_START;
                        startButton.Enabled = true;
                        labelPort.Text      = s.Port.ToString();
                    }
                    else
                    {
                        Label labelSerial = new Label()
                        {
                            Text = s.hwInterface.Serial, Tag = s
                        };
                        Label labelPort = new Label()
                        {
                            Text = s.Port.ToString(), Tag = s
                        };
                        Button startButton = new Button()
                        {
                            Text = s.State == ServerState.Started ? STR_STOP : STR_START,
                            Tag  = s,
                            Dock = DockStyle.Fill,
                        };
                        startButton.Click += StartStopServer;

                        tableLayoutPanel1.RowCount += 1;
                        tableLayoutPanel1.RowStyles.Add(new RowStyle());
                        //Use one but last row, last row is used for emptyness
                        int row = tableLayoutPanel1.RowCount - 2;
                        tableLayoutPanel1.Controls.Add(labelSerial, COL_SERIAL, row);
                        tableLayoutPanel1.Controls.Add(labelPort, COL_PORT, row);
                        tableLayoutPanel1.Controls.Add(new Label()
                        {
                            Text = "up"
                        }, COL_BW_UP, row);
                        tableLayoutPanel1.Controls.Add(new Label()
                        {
                            Text = "dn"
                        }, COL_BW_DN, row);
                        tableLayoutPanel1.Controls.Add(startButton, COL_BUTT, row);
                        tableRows.Add(s, new ServerInfo()
                        {
                            row = row
                        });
                    }
                }
                else
                {
                    Logger.Debug("Removing Server for " + s.hwInterface.Serial);
                    //Find row where this server lives
                    int row = tableRows[s].row;
                    tableRows.Remove(s);

                    // delete all controls of row that we want to delete
                    for (int i = 0; i < tableLayoutPanel1.ColumnCount; i++)
                    {
                        var control = tableLayoutPanel1.GetControlFromPosition(i, row);
                        if (control != null)
                        {
                            tableLayoutPanel1.Controls.Remove(control);
                            control.Dispose();
                        }
                    }

                    // move up row controls that comes after row we want to remove
                    for (int i = row + 1; i < tableLayoutPanel1.RowCount; i++)
                    {
                        for (int j = 0; j < tableLayoutPanel1.ColumnCount; j++)
                        {
                            var control = tableLayoutPanel1.GetControlFromPosition(j, i);
                            if (control != null)
                            {
                                tableLayoutPanel1.SetRow(control, i - 1);
                            }
                        }
                    }

                    tableRows.Where(x => x.Value.row > row).ToList().ForEach(x => tableRows[x.Key].row = x.Value.row - 1);
                    tableLayoutPanel1.RowStyles.RemoveAt(row);
                    tableLayoutPanel1.RowCount--;
                }
            }
            tableLayoutPanel1.ResumeLayout();
            tableLayoutPanel1.PerformLayout();
        }