public void OnNewServer(InterfaceServer server) { ListViewItem ItemServer = new ListViewItem(new string[] { "", "", "", "", "", "" }); ItemServer.Tag = server; ServerToItem(server, ItemServer); Items.Add(ItemServer); }
void ServerChanged(InterfaceServer s, bool present) { stv.ServerChanged(s, present); if (s.State == ServerState.Stopped && autostartitem.State == NSCellStateValue.On) { s.Start(); } }
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>"); }
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); }); } }
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; } } }
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()); } }
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); } }
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(); }); }
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()); }
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(); }