Exemplo n.º 1
0
        private void AddRunnerHost(EndpointAddress hostAddress)
        {
            RemoteClientNode remoteClientNode = new RemoteClientNode(hostAddress);

            remoteClientNode.ImageIndex = 4;
            advTree_remoteTree.Nodes.Add(remoteClientNode);
        }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 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);
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 4
0
        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;
            }
        }