Beispiel #1
0
        //单击更改时执行此函数
        public static bool TransmitterUpdateMenu(TreeNode currentNode)
        {
            //bool b = false;
            string trFilePath = MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".tx";
            //将Tr文件中的字符串保护起来
            string trFileStrTemp = FileOperation.ReadFile(trFilePath);

            //将辐射源在tr文件中的位置保护起来
            int initialTransmitterBlockSite = trFileStrTemp.IndexOf(SetupContent.transmitterStr1OfTr + " " + currentNode.Text + "\r\n");
            //tx文件中原来辐射源的编号也要保存下来
            string initTransmitterNum = GetTransmitterNumLine(currentNode.Text, trFileStrTemp);
            //保存info文件中的所有字符串
            string transmitterNodeInfoTemp = FileOperation.ReadFile(MainWindow.nodeInfoFullPath);
            //保存辐射源在info文件中的位置信息
            int initialTransmitterNodeSite = transmitterNodeInfoTemp.IndexOf(SetupContent.transmitterStr1Ofsetup + " " + currentNode.Text + "\r\n");
            //保存waveinfo文件中有关辐射源的信息
            string transmitterParStrTemp = FileOperation.ReadFile(MainWindow.waveinfoFilePath);

            NewTransmitterWindow newTransmitterWin = new NewTransmitterWindow();

            //将原来辐射源设置的参数信息恢复到窗口中
            if (!TransmitterDataRecoverOfProjectTreeView.RecoverTransmitterParOfWin(currentNode, transmitterParStrTemp, newTransmitterWin))
            {
                MessageBox.Show("程序运行发生错误, 更改失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                FileOperation.RecoverOldRevision(trFileStrTemp, trFilePath, transmitterParStrTemp, transmitterNodeInfoTemp);
                return(false);
            }

            //TransmitterDataRecoverOfProjectTreeView.RecoverTransmitterParOfWin(currentNode, transmitterParStrTemp, newTransmitterWin);
            //在单击确定之前应先删除需更改的辐射源的全部信息
            if (!(TransmitterDelOfTrAndInfoFile(currentNode) && TransmitterDelOfWaveInfo(currentNode) && TransmitterUpdateOfSetup()))
            {
                MessageBox.Show("程序运行发生错误, 工程文件可能被破坏,更改失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                FileOperation.RecoverOldRevision(trFileStrTemp, trFilePath, transmitterParStrTemp, transmitterNodeInfoTemp);
                return(false);
            }

            MainWindow.creatSuccMesDisp = false;
            MainWindow.newFuncSign      = false;
            newTransmitterWin.Text      = "更改辐射源";
            newTransmitterWin.ShowDialog();
            switch (newTransmitterWin.DialogResult)
            {
            case DialogResult.OK:
                //如果在更改过程中出现了中途返回的情况,则应把原来的信息写到相应的文件中
                if (MainWindow.IsReturnMidwayInNewProcess)
                {
                    //FileOperation.WriteFile(trFileStrTemp , trFilePath , false);
                    //FileOperation.WriteFile(transmitterParStrTemp, MainWindow.waveinfoFilePath, false);
                    //FileOperation.WriteFile(transmitterNodeInfoTemp, MainWindow.nodeInfoFullPath, false);
                    FileOperation.RecoverOldRevision(trFileStrTemp, trFilePath, transmitterParStrTemp, transmitterNodeInfoTemp);

                    //将”全局变量“置为初始值
                    MainWindow.IsReturnMidwayInNewProcess = false;
                    return(false);
                }
                if (!trStrRecoverInitTransmitterNum(initTransmitterNum, initialTransmitterBlockSite, initialTransmitterNodeSite))
                {
                    MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[3].LastNode.Remove();

                    MessageBox.Show("程序运行发生错误,更改操作失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                    //FileOperation.WriteFile(trFileStrTemp, trFilePath, false);
                    //FileOperation.WriteFile(transmitterParStrTemp, MainWindow.waveinfoFilePath, false);
                    //FileOperation.WriteFile(transmitterNodeInfoTemp, MainWindow.nodeInfoFullPath, false);
                    FileOperation.RecoverOldRevision(trFileStrTemp, trFilePath, transmitterParStrTemp, transmitterNodeInfoTemp);
                    return(false);
                }

                MainWindow.staticTreeView.SelectedNode.Text = MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[3].LastNode.Text;
                MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[3].LastNode.Remove();
                return(true);

            //break;
            default:
                //FileOperation.WriteFile(trFileStrTemp , trFilePath , false);
                //FileOperation.WriteFile(transmitterParStrTemp, MainWindow.waveinfoFilePath, false);
                //FileOperation.WriteFile(transmitterNodeInfoTemp, MainWindow.nodeInfoFullPath, false);
                FileOperation.RecoverOldRevision(trFileStrTemp, trFilePath, transmitterParStrTemp, transmitterNodeInfoTemp);
                return(false);
                //break;
            }
            //return b;
        }
Beispiel #2
0
        //单击更改时执行此方法
        public static bool ReceiverUpdateMenu(TreeNode currentNode)
        {
            //bool b = false;
            string rxFilePath = MainWindow.projectRealPath + "\\" + MainWindow.onlyProjectName + ".rx";
            //保存Tr文件中的字符串
            string rxFileStrTemp = FileOperation.ReadFile(rxFilePath);
            string indStr        = null;

            switch (currentNode.Parent.Text)
            {
            case "点状分布":
                indStr = SetupContent.pointReceiverOfRxStr0;
                break;

            case "区域分布":
                indStr = SetupContent.gridReceiverOfRxStr0;
                break;
            }

            //将接收机在rx文件中的位置保护起来
            int initialReceiverBlockSite = rxFileStrTemp.IndexOf(indStr + " " + currentNode.Text + "\r\n");
            //rx文件中原来接收机的编号也要保存下来
            string initReceiverNum = GetReceiverNumLine(indStr, currentNode.Text, rxFileStrTemp);
            //保存info文件中的所有字符串
            string receiverNodeInfoTemp = FileOperation.ReadFile(MainWindow.nodeInfoFullPath);
            //保存接收机在info文件中的位置信息
            int initialReceiverNodeSite = receiverNodeInfoTemp.IndexOf(indStr + " " + currentNode.Text + "\r\n");
            //保存waveinfo文件中有关接收机的信息
            string receiverParStrTemp = FileOperation.ReadFile(MainWindow.waveinfoFilePath);

            NewReceiverWindow newReceiverWin = new NewReceiverWindow();

            //将接收机原来的参数信息装载到窗口中
            if (!ReceiverDataRecoverOfProjectTreeView.RecoverReceiverParOfWin(currentNode, receiverParStrTemp, newReceiverWin))
            {
                MessageBox.Show("程序内部发生错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                FileOperation.RecoverOldRevision(rxFileStrTemp, rxFilePath, receiverParStrTemp, receiverNodeInfoTemp);
                return(false);
            }
            //ReceiverDataRecoverOfProjectTreeView.RecoverReceiverParOfWin(currentNode, receiverParStrTemp, newReceiverWin);
            //在单击确定按钮之前应将需更改的接收机的信息从各个文件中删除
            if (!(ReceiverDelOfRxAndInfoFile(currentNode) && ReceiverDelOfWaveInfo(currentNode) && ReceiverUpdateOfSetup()))
            {
                MessageBox.Show("程序内部发生错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                FileOperation.RecoverOldRevision(rxFileStrTemp, rxFilePath, receiverParStrTemp, receiverNodeInfoTemp);
                return(false);
            }

            MainWindow.creatSuccMesDisp = false;
            MainWindow.newFuncSign      = false;
            newReceiverWin.Text         = "更改接收机";
            newReceiverWin.ShowDialog();
            switch (newReceiverWin.DialogResult)
            {
            case DialogResult.OK:
                if (MainWindow.IsReturnMidwayInNewProcess)
                {
                    //FileOperation.WriteFile(rxFileStrTemp, rxFilePath, false);
                    //FileOperation.WriteFile(receiverParStrTemp, MainWindow.waveinfoFilePath, false);
                    //FileOperation.WriteFile(receiverNodeInfoTemp, MainWindow.nodeInfoFullPath, false);
                    FileOperation.RecoverOldRevision(rxFileStrTemp, rxFilePath, receiverParStrTemp, receiverNodeInfoTemp);
                    MainWindow.IsReturnMidwayInNewProcess = false;
                    return(false);
                }
                if (!rxStrRecoverInitReceiverNum(currentNode, initReceiverNum, initialReceiverBlockSite, initialReceiverNodeSite))
                {
                    if (currentNode.Parent.Text.Equals("点状分布"))
                    {
                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[0].LastNode.Remove();
                    }
                    else
                    {
                        MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[1].LastNode.Remove();
                    }


                    MessageBox.Show("程序内部发生错误,更改操作失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    FileOperation.RecoverOldRevision(rxFileStrTemp, rxFilePath, receiverParStrTemp, receiverNodeInfoTemp);
                    //FileOperation.WriteFile(rxFileStrTemp, rxFilePath, false);
                    //FileOperation.WriteFile(receiverParStrTemp, MainWindow.waveinfoFilePath, false);
                    //FileOperation.WriteFile(receiverNodeInfoTemp, MainWindow.nodeInfoFullPath, false);
                    return(false);
                }
                switch (currentNode.Parent.Text)
                {
                case "点状分布":
                    MainWindow.staticTreeView.SelectedNode.Text = MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[0].LastNode.Text;
                    MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[0].LastNode.Remove();
                    break;

                case "区域分布":
                    MainWindow.staticTreeView.SelectedNode.Text = MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[1].LastNode.Text;
                    MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[4].Nodes[1].LastNode.Remove();
                    break;
                }
                return(true);

            //break;
            default:
                FileOperation.RecoverOldRevision(rxFileStrTemp, rxFilePath, receiverParStrTemp, receiverNodeInfoTemp);
                //FileOperation.WriteFile(rxFileStrTemp, rxFilePath, false);

                //FileOperation.WriteFile(receiverParStrTemp, MainWindow.waveinfoFilePath, false);
                //FileOperation.WriteFile(receiverNodeInfoTemp, MainWindow.nodeInfoFullPath, false);
                return(false);
                //break;
            }
            //b = true;
            //return b;
        }