private void AddRunnerHost(EndpointAddress hostAddress) { RemoteClientNode remoteClientNode = new RemoteClientNode(hostAddress); remoteClientNode.ImageIndex = 4; advTree_remoteTree.Nodes.Add(remoteClientNode); }
private void DelRunnerHost(RemoteClientNode remoteNode) { if (remoteNode.RemoteClient.ShowWindow != null) { remoteNode.RemoteClient.ShowWindow.Close(); } remoteNode.RemoteClient.StopClient(); remoteNode.RemoteClient.Dispose(); this.advTree_remoteTree.Nodes.Remove(remoteNode); }
private void SendRemoteOrder(int order) { if (advTree_remoteTree.Nodes.Count > 0) { foreach (DevComponents.AdvTree.Node hostNode in advTree_remoteTree.Nodes) { if (!hostNode.HasChildNodes) { continue; } RemoteClientNode clientNode = hostNode as RemoteClientNode; if (clientNode == null) { continue; } if (clientNode.RemoteClient.ClientState == RemoteClient.RemoteClientState.Connected) { List <int> tempOrderList = new List <int>(); for (int i = 0; i < clientNode.Nodes.Count; i++) { if (clientNode.Nodes[i].Checked) { tempOrderList.Add(i); } } if (tempOrderList.Count > 0) { if (order == 1) { clientNode.RemoteClient.StartRunner(tempOrderList); } else if (order == 2) { clientNode.RemoteClient.StopRunner(tempOrderList); } else if (order == 3) { clientNode.RemoteClient.PauseRunner(tempOrderList); } } } } } }
private void pictureBox_RR_Window_Click(object sender, EventArgs e) { switch (((PictureBox)sender).Name) { case "pictureBox_ConnectHost": connectHostAddress = null; AddRemoteHost newAddRemoteHost = new AddRemoteHost(); newAddRemoteHost.StartPosition = FormStartPosition.CenterParent; newAddRemoteHost.ShowDialog(this); if (connectHostAddress != null) { foreach (DevComponents.AdvTree.Node hostNode in advTree_remoteTree.Nodes) { RemoteClientNode clientNode = hostNode as RemoteClientNode; if (clientNode != null) { if (clientNode.RemoteClient.ClientEp.Uri.ToString() == connectHostAddress.Uri.ToString()) { MessageBox.Show("您已经连接过该主机"); return; } } else { MessageBox.Show("Find Error Node"); } } AddRunnerHost(connectHostAddress); } break; case "pictureBox_rr_RunSelect": SendRemoteOrder(1); break; case "pictureBox_rr_StopSelect": SendRemoteOrder(2); break; case "pictureBox_rr_PuaseSelect": SendRemoteOrder(3); break; case "pictureBox_rr_RefreshSelect": if (advTree_remoteTree.Nodes.Count > 0) { foreach (DevComponents.AdvTree.Node hostNode in advTree_remoteTree.Nodes) { RemoteClientNode clientNode = hostNode as RemoteClientNode; if (clientNode == null) { break; } if (clientNode.RemoteClient.ClientState == RemoteClient.RemoteClientState.Connected) { clientNode.RemoteClient.GetAllRunnerInfor(); } else if (clientNode.RemoteClient.ClientState == RemoteClient.RemoteClientState.Lost) { clientNode.RemoteClient.StartClient(); } } } break; case "pictureBox_rr_DelSelect": if (advTree_remoteTree.SelectedNode != null) { DevComponents.AdvTree.Node selectedRemoteNode = advTree_remoteTree.SelectedNode; while (!(selectedRemoteNode is RemoteClientNode)) { if (selectedRemoteNode.Parent != null) { selectedRemoteNode = selectedRemoteNode.Parent; } else { MessageBox.Show("主机状态异常", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } } DelRunnerHost(selectedRemoteNode as RemoteClientNode); } else { MessageBox.Show("未选择任何主机进行移除", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); } break; default: MessageBox.Show("功能模块丢失", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); break; } }