예제 #1
0
        //当单击删除时执行此函数
        public static bool ReceiverDelMenu(TreeNode currentNode)
        {
            bool         b      = false;
            DialogResult result = MessageBox.Show("您确定要删除\"" + currentNode.Text + "\"接收机吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

            if (result == DialogResult.OK)
            {
                try
                {
                    //分别调用上面的三个函数
                    if (ReceiverDelOfRxAndInfoFile(currentNode) && ReceiverDelOfWaveInfo(currentNode) && ReceiverUpdateOfSetup())
                    {
                        switch (currentNode.Parent.Text)
                        {
                        case "点状分布":
                            //删除match文件中有关辐射源的信息
                            StringFound.DelBackIndStr(SetupContent.pointReceiverOfRxStr0 + " " + currentNode.Text + "*");
                            break;

                        case "区域分布":
                            StringFound.DelBackIndStr(SetupContent.gridReceiverOfRxStr0 + " " + currentNode.Text + "*");
                            break;
                        }
                        b = true;
                    }
                }
                catch (Exception e)
                {
                    LogFileManager.ObjLog.fatal(e.Message, e);
                    //b = false;
                    //MainWindow.IsReturnMidwayInNewProcess = true;
                }
            }
            return(b);
        }
예제 #2
0
        //从waveinfo文件中删除相应的辐射源信息
        private static bool TransmitterDelOfWaveInfo(TreeNode currentNode)
        {
            bool b = false;

            try
            {
                string transmitterAllInfo = FileOperation.ReadFile(MainWindow.waveinfoFilePath);
                //只能用IndexOf(transmitterName)函数,因为"END" + antennaName也含有antennaName
                string indStr   = SetupContent.transmitterStr1Ofsetup + " " + currentNode.Text + "\r\n";
                int    delStart = transmitterAllInfo.IndexOf(indStr);
                int    delEnd   = transmitterAllInfo.LastIndexOf("END" + indStr) + ("END" + indStr).Length;
                transmitterAllInfo = transmitterAllInfo.Remove(delStart, delEnd - delStart);
                FileOperation.WriteFile(transmitterAllInfo, MainWindow.waveinfoFilePath, false);

                StringFound.DelBackIndStr(SetupContent.transmitterStr1Ofsetup + " " + currentNode.Text);
                b = true;
            }
            catch (Exception ex)
            {
                LogFileManager.ObjLog.fatal(ex.Message, ex);
            }
            return(b);
        }
예제 #3
0
        //当单击删除时执行如下方法
        public static bool AntennaDelMenu(TreeNode currentNode)
        {
            bool b = false;

            if (!StringFound.WaveOrAntennaInUse(currentNode.Text, "antenna"))
            {
                DialogResult result = MessageBox.Show("您确定要删除\"" + currentNode.Text + "\"天线吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (result == DialogResult.OK)
                {
                    //AntennaDelOfSetupAndInfo(currentNode);
                    //AntennaDelOfWaveInfo(currentNode);
                    if (AntennaDelOfSetupAndInfo(currentNode) && AntennaDelOfWaveInfo(currentNode))
                    {
                        StringFound.DelBackIndStr(SetupContent.antennaStr1 + " " + currentNode.Text + "#");
                        b = true;
                    }
                }
            }
            else
            {
                MessageBox.Show("您所删除的天线正在被使用,请修改辐射源或接收机后再删除此天线!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            return(b);
        }
예제 #4
0
        //单击更新菜单时,执行下面的操作
        public static bool AntennaUpdateMenu(TreeNode currentNode)
        {
            bool b = false;
            //保存setup文件中的字符串
            string setupStrTemp = MainWindow.setupStr;

            int    initialAntennaBlockSite;
            string initAntennaNum      = null;
            string antennaNodeInfoTemp = null;
            int    initialAntennaNodeSite;
            string antennaParStrTemp = null;

            try
            {
                //保存天线在setup文件中的位置
                initialAntennaBlockSite = MainWindow.setupStr.IndexOf(SetupContent.antennaStr1 + " " + currentNode.Text + "\r\n");
                //保存info文件中的所有字符串,原来天线的编号也要保存下来
                initAntennaNum      = GetAntennaNumLine(currentNode.Text, MainWindow.setupStr);
                antennaNodeInfoTemp = FileOperation.ReadFile(MainWindow.nodeInfoFullPath);
                //保存天线在waveinfo文件中的位置信息
                initialAntennaNodeSite = antennaNodeInfoTemp.IndexOf(SetupContent.antennaStr1 + " " + currentNode.Text + "\r\n");
                antennaParStrTemp      = FileOperation.ReadFile(MainWindow.waveinfoFilePath);
            }
            catch (Exception e)
            {
                return(false);
            }

            NewAntennaWindow newAntennaWin = new NewAntennaWindow();

            //newAntennaWin.newdipolewaveformname_comboBox2.DropDownStyle = ComboBoxStyle.DropDown;

            AntennaDataRecoverOfProjectTree.AlterationAntennaPar(currentNode, antennaParStrTemp, newAntennaWin);
            //newAntennaWin.newdipolewaveformname_comboBox2.DropDownStyle = ComboBoxStyle.DropDownList;
            if (!(AntennaDelOfSetupAndInfo(currentNode) && AntennaDelOfWaveInfo(currentNode)))
            {
                MessageBox.Show("文件被破坏,导致错误,原工程不可再用!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return(false);
            }

            MainWindow.creatSuccMesDisp = false;
            MainWindow.newFuncSign      = false;
            newAntennaWin.Text          = "更改天线";
            newAntennaWin.ShowDialog();

            switch (newAntennaWin.DialogResult)
            {
            case DialogResult.OK:
                if (MainWindow.IsReturnMidwayInNewProcess)
                {
                    FileOperation.WriteFile(setupStrTemp, MainWindow.mProjectFullName, false);
                    MainWindow.setupStr = setupStrTemp;
                    FileOperation.WriteFile(antennaParStrTemp, MainWindow.waveinfoFilePath, false);
                    FileOperation.WriteFile(antennaNodeInfoTemp, MainWindow.nodeInfoFullPath, false);
                    MainWindow.IsReturnMidwayInNewProcess = false;
                    return(false);
                }
                StringFound.DelBackIndStr(SetupContent.antennaStr1 + " " + currentNode.Text + "#");

                if (!setupStrRecoverInitAntennaNum(currentNode, initAntennaNum, initialAntennaBlockSite, initialAntennaNodeSite))
                {
                    MessageBox.Show("程序内部发生错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                    FileOperation.WriteFile(setupStrTemp, MainWindow.mProjectFullName, false);
                    MainWindow.setupStr = setupStrTemp;
                    FileOperation.WriteFile(antennaParStrTemp, MainWindow.waveinfoFilePath, false);
                    FileOperation.WriteFile(antennaNodeInfoTemp, MainWindow.nodeInfoFullPath, false);
                    return(false);
                }


                MainWindow.staticTreeView.SelectedNode.Text = MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[2].LastNode.Text;
                MainWindow.staticTreeView.Nodes[0].Nodes[0].Nodes[2].LastNode.Remove();
                b = true;
                break;

            default:
                FileOperation.WriteFile(setupStrTemp, MainWindow.mProjectFullName, false);
                MainWindow.setupStr = setupStrTemp;
                FileOperation.WriteFile(antennaParStrTemp, MainWindow.waveinfoFilePath, false);
                FileOperation.WriteFile(antennaNodeInfoTemp, MainWindow.nodeInfoFullPath, false);
                b = false;
                break;
            }
            //b = true;
            return(b);
        }