示例#1
0
文件: Kernel.cs 项目: schifflee/bjd5
        //�I������
        public void Dispose()
        {
            //	        if (RunMode != RunMode.Service && RunMode != RunMode.Remote) {
            //	            //**********************************************
            //	            // ��U�t�@�C����폜���Č��ݗL���Ȃ�̂���������߂�
            //	            //**********************************************
            //	            var iniDb = new IniDb(ProgDir(),"Option");
            //	            iniDb.DeleteIni();

            //Ver5.8.6 Java fix
            if (RunMode == RunMode.Normal)
            {
                var iniTmp = new IniDb(ProgDir(), "$tmp");//�o�b�N�A�b�v��쐬����ini�t�@�C����폜����
                //��U�A�ʃt�@�C���Ɍ��ݗL���Ȃ�̂���������߂�
                ListOption.Save(iniTmp);
                //�㏑������
                File.Copy(iniTmp.Path, IniDb.Path, true);
                iniTmp.Delete();
            }
            else if (RunMode == RunMode.Remote)
            {
                IniDb.Delete(); //$Remote.ini�̍폜
            }


            //**********************************************
            // �j��
            //**********************************************
            ListServer.Dispose(); //�e�T�[�o�͒�~�����
            ListOption.Dispose();
            ListTool.Dispose();
            MailBox = null;
            //	        }
            if (RemoteClient != null)
            {
                RemoteClient.Dispose();
            }

            View.Dispose();
            if (TraceDlg != null)
            {
                TraceDlg.Dispose();
            }
            if (Menu != null)
            {
                Menu.Dispose();
            }
            if (WindowSize != null)
            {
                View.Save(WindowSize);
                WindowSize.Dispose(); //Dispose���Ȃ���Reg.Dispose(�ۑ�)����Ȃ�
            }
        }
示例#2
0
        //終了処理
        public void Dispose()
        {
            //	        if (RunMode != RunMode.Service && RunMode != RunMode.Remote) {
            //	            //**********************************************
            //	            // 一旦ファイルを削除して現在有効なものだけを書き戻す
            //	            //**********************************************
            //	            var iniDb = new IniDb(ProgDir(),"Option");
            //	            iniDb.DeleteIni();

            //Ver5.8.6 Java fix
            if (RunMode == RunMode.Normal)
            {
                var iniTmp = new IniDb(ProgDir(), "$tmp");//バックアップを作成してiniファイルを削除する
                //一旦、別ファイルに現在有効なものだけを書き戻す
                ListOption.Save(iniTmp);
                //上書きする
                File.Copy(iniTmp.Path, IniDb.Path, true);
                iniTmp.Delete();
            }
            else if (RunMode == RunMode.Remote)
            {
                IniDb.Delete(); //$Remote.iniの削除
            }


            //**********************************************
            // 破棄
            //**********************************************
            ListServer.Dispose(); //各サーバは停止される
            ListOption.Dispose();
            ListTool.Dispose();
            MailBox = null;
            //	        }
            if (RemoteClient != null)
            {
                RemoteClient.Dispose();
            }

            View.Dispose();
            if (TraceDlg != null)
            {
                TraceDlg.Dispose();
            }
            if (Menu != null)
            {
                Menu.Dispose();
            }
            if (WindowSize != null)
            {
                View.Save(WindowSize);
                WindowSize.Dispose(); //DisposeしないとReg.Dispose(保存)されない
            }
        }
示例#3
0
文件: Kernel.cs 项目: schifflee/bjd5
        //���j���[�I����̏���
        public void MenuOnClick(String cmd)
        {
            if (cmd.IndexOf("Option_") == 0)
            {
                if (RunMode == RunMode.Remote)
                {
                    //Java fix RunMOde==Remote�̏ꍇ�̃��j���[����
                    RemoteClient.MenuOnClick(cmd);
                }
                else
                {
                    var oneOption = ListOption.Get(cmd.Substring(7));
                    if (oneOption != null)
                    {
                        var dlg = new OptionDlg(this, oneOption);
                        if (DialogResult.OK == dlg.ShowDialog())
                        {
                            //Ver5.8.6 Java fix
                            //oneOption.Save(OptionIni.GetInstance());
                            oneOption.Save(IniDb);
                            MenuOnClick("StartStop_Reload");
                        }
                    }
                }
            }
            else if (cmd.IndexOf("Tool_") == 0)
            {
                if (RunMode == RunMode.Remote)
                {
                    //Java fix RunMOde==Remote�̏ꍇ�̃��j���[����
                    RemoteClient.MenuOnClick(cmd);
                }
                else
                {
                    var nameTag = cmd.Substring(5);
                    var oneTool = ListTool.Get(nameTag);
                    if (oneTool == null)
                    {
                        return;
                    }

                    //BJD.EXE�ȊO�̏ꍇ�A�T�[�o�I�u�W�F�N�g�ւ̃|�C���^���K�v�ɂȂ�
                    OneServer oneServer = null;
                    if (nameTag != "BJD")
                    {
                        oneServer = ListServer.Get(nameTag);
                        if (oneServer == null)
                        {
                            return;
                        }
                    }

                    ToolDlg dlg = oneTool.CreateDlg(oneServer);
                    dlg.ShowDialog();
                }
            }
            else if (cmd.IndexOf("StartStop_") == 0)
            {
                if (RunMode == RunMode.Remote)
                {
                    //Java fix RunMOde==Remote�̏ꍇ�̃��j���[����
                    RemoteClient.MenuOnClick(cmd);
                }
                else
                {
                    switch (cmd)
                    {
                    case "StartStop_Start":
                        Start();
                        break;

                    case "StartStop_Stop":
                        Stop();
                        break;

                    case "StartStop_Restart":
                        Stop();
                        Thread.Sleep(300);
                        Start();
                        break;

                    case "StartStop_Reload":
                        Stop();
                        ListInitialize();
                        Start();
                        break;

                    case "StartStop_Service":
                        SetupService();     //�T�[�r�X�̐ݒ�
                        break;

                    default:
                        Util.RuntimeException(string.Format("cmd={0}", cmd));
                        break;
                    }
                    View.SetColor();  //�E�C���h�̃J���[������
                    Menu.SetEnable(); //��Ԃɉ������L���E����
                }
            }
            else
            {
                switch (cmd)
                {
                case "File_LogClear":
                    LogView.Clear();
                    break;

                case "File_LogCopy":
                    LogView.SetClipboard();
                    break;

                case "File_Trace":
                    TraceDlg.Open();
                    break;

                case "File_Exit":
                    View.MainForm.Close();
                    break;

                case "Help_Version":
                    var dlg = new VersionDlg(this);
                    dlg.ShowDialog();
                    break;

                case "Help_Homepage":
                    Process.Start(Define.WebHome());
                    break;

                case "Help_Document":
                    Process.Start(Define.WebDocument());
                    break;

                case "Help_Support":
                    Process.Start(Define.WebSupport());
                    break;
                }
            }
        }
示例#4
0
文件: Kernel.cs 项目: schifflee/bjd5
        //�N�����ɁA�R���X�g���N�^����Ăяo����鏉����
        private void DefaultInitialize(MainForm mainForm, ListView listViewLog, MenuStrip menuStrip, NotifyIcon notifyIcon)
        {
            RunMode       = RunMode.Normal;
            RemoteConnect = null;//�����[�g����Őڑ�����Ă��鎞���������������

            //logger�����������܂ł̃��O��ꎞ�I�ɕۊǂ���
            //ArrayList<LogTemporary> tmpLogger = new ArrayList<>();

            //�v���Z�X�N�����ɏ����������
            View = new View(this, mainForm, listViewLog, notifyIcon);
            //logView = new LogView(listViewLog);
            LogView  = new LogView(this, listViewLog);
            Menu     = new Menu(this, menuStrip); //�����ł́A�I�u�W�F�N�g�̐����̂݁Amenu.Initialize()�́AlistInitialize()�̒��ŌĂяo�����
            DnsCache = new DnsCache();
            Wait     = new Wait();

            Ver = new Ver(); //�o�[�W�����Ǘ�

            //Java fix
            //RunMode�̏�����
            if (mainForm == null)
            {
                RunMode = RunMode.Service; //�T�[�r�X�N��
            }
            else
            {
                if (Environment.GetCommandLineArgs().Length > 1)
                {
                    RunMode = RunMode.Remote; //�����[�g�N���C�A���g
                }
                else
                {
                    //�T�[�r�X�o�^�̏�Ԃ�擾����
                    var setupService = new SetupService(this);
                    if (setupService.IsRegist)
                    {
                        RunMode = RunMode.NormalRegist; //�T�[�r�X�o�^�������
                    }
                }
            }

            //Ver5.8.6 Java fix
            //OptionIni.Create(this); //�C���X�^���X�̏�����

            IniDb = new IniDb(ProgDir(), (RunMode == RunMode.Remote) ? "$remote" : "Option");

            MailBox = null;

            ListInitialize(); //�T�[�o�ċN���ŁA�ēx���s����鏉����


            if (_isTest)
            {
                return;
            }

            //�E�C���h�T�C�Y�̕���
            var path = string.Format("{0}\\BJD.ini", ProgDir());

            try{
                //�E�C���h�E�̊O�ς�ۑ��E����(View���O�ɏ���������)
                WindowSize = new WindowSize(new Conf(ListOption.Get("Basic")), path);
                View.Read(WindowSize);
            } catch (IOException) {
                WindowSize = null;
                // �w�肳�ꂽWindow���ۑ��t�@�C��(BJD.ini)��IO�G���[���������Ă���
                _logger.Set(LogKind.Error, null, 9000022, path);
            }

            //TraceDlg = new TraceDlg(this, (mainForm != null) ? mainForm.getFrame() : null); //�g���[�X�\��
            TraceDlg = new TraceDlg(this); //�g���[�X�\��

            switch (RunMode)
            {
            case RunMode.Normal:
                MenuOnClick("StartStop_Start");     //���j���[�I��C�x���g
                break;

            case RunMode.Remote:
                RemoteClient = new RemoteClient(this);
                RemoteClient.Start();
                break;

            //Java fix Ver5.8.3
            case RunMode.NormalRegist:
            case RunMode.Service:
                break;

            default:
                Util.RuntimeException("Kernel.defaultInitialize() not implement (RunMode)");
                break;
            }

            //Java fix Ver5.8.3
            View.SetColor();//�E�C���h�F�̏�����
        }
示例#5
0
        //メニュー選択時の処理
        public void MenuOnClick(String cmd)
        {
            if (cmd.IndexOf("Option_") == 0)
            {
                if (RunMode == RunMode.Remote)
                {
                    //Java fix RunMOde==Remoteの場合のメニュー処理
                    RemoteClient.MenuOnClick(cmd);
                }
                else
                {
                    var oneOption = ListOption.Get(cmd.Substring(7));
                    if (oneOption != null)
                    {
                        var dlg = new OptionDlg(this, oneOption);
                        if (DialogResult.OK == dlg.ShowDialog())
                        {
                            //Ver5.8.6 Java fix
                            //oneOption.Save(OptionIni.GetInstance());
                            oneOption.Save(IniDb);
                            MenuOnClick("StartStop_Reload");
                        }
                    }
                }
            }
            else if (cmd.IndexOf("Tool_") == 0)
            {
                if (RunMode == RunMode.Remote)
                {
                    //Java fix RunMOde==Remoteの場合のメニュー処理
                    RemoteClient.MenuOnClick(cmd);
                }
                else
                {
                    var nameTag = cmd.Substring(5);
                    var oneTool = ListTool.Get(nameTag);
                    if (oneTool == null)
                    {
                        return;
                    }

                    //BJD.EXE以外の場合、サーバオブジェクトへのポインタが必要になる
                    OneServer oneServer = null;
                    if (nameTag != "BJD")
                    {
                        oneServer = ListServer.Get(nameTag);
                        if (oneServer == null)
                        {
                            return;
                        }
                    }

                    ToolDlg dlg = oneTool.CreateDlg(oneServer);
                    dlg.ShowDialog();
                }
            }
            else if (cmd.IndexOf("StartStop_") == 0)
            {
                if (RunMode == RunMode.Remote)
                {
                    //Java fix RunMOde==Remoteの場合のメニュー処理
                    RemoteClient.MenuOnClick(cmd);
                }
                else
                {
                    switch (cmd)
                    {
                    case "StartStop_Start":
                        Start();
                        break;

                    case "StartStop_Stop":
                        Stop();
                        break;

                    case "StartStop_Restart":
                        Stop();
                        Thread.Sleep(300);
                        Start();
                        break;

                    case "StartStop_Reload":
                        Stop();
                        ListInitialize();
                        Start();
                        break;

                    case "StartStop_Service":
                        SetupService();     //サービスの設定
                        break;

                    default:
                        Util.RuntimeException(string.Format("cmd={0}", cmd));
                        break;
                    }
                    View.SetColor();  //ウインドのカラー初期化
                    Menu.SetEnable(); //状態に応じた有効・無効
                }
            }
            else
            {
                switch (cmd)
                {
                case "File_LogClear":
                    LogView.Clear();
                    break;

                case "File_LogCopy":
                    LogView.SetClipboard();
                    break;

                case "File_Trace":
                    TraceDlg.Open();
                    break;

                case "File_Exit":
                    View.MainForm.Close();
                    break;

                case "Help_Version":
                    var dlg = new VersionDlg(this);
                    dlg.ShowDialog();
                    break;

                case "Help_Homepage":
                    Process.Start(Define.WebHome());
                    break;

                case "Help_Document":
                    Process.Start(Define.WebDocument());
                    break;

                case "Help_Support":
                    Process.Start(Define.WebSupport());
                    break;
                }
            }
        }
示例#6
0
        //起動時に、コンストラクタから呼び出される初期化
        private void DefaultInitialize(MainForm mainForm, ListView listViewLog, MenuStrip menuStrip, NotifyIcon notifyIcon)
        {
            RunMode       = RunMode.Normal;
            RemoteConnect = null;//リモート制御で接続されている時だけ初期化される

            //loggerが生成されるまでのログを一時的に保管する
            //ArrayList<LogTemporary> tmpLogger = new ArrayList<>();

            //プロセス起動時に初期化される
            View = new View(this, mainForm, listViewLog, notifyIcon);
            //logView = new LogView(listViewLog);
            LogView  = new LogView(this, listViewLog);
            Menu     = new Menu(this, menuStrip); //ここでは、オブジェクトの生成のみ、menu.Initialize()は、listInitialize()の中で呼び出される
            DnsCache = new DnsCache();
            Wait     = new Wait();

            Ver = new Ver(); //バージョン管理

            //Java fix
            //RunModeの初期化
            if (mainForm == null)
            {
                RunMode = RunMode.Service; //サービス起動
            }
            else
            {
                if (Environment.GetCommandLineArgs().Length > 1)
                {
                    RunMode = RunMode.Remote; //リモートクライアント
                }
                else
                {
                    //サービス登録の状態を取得する
                    var setupService = new SetupService(this);
                    if (setupService.IsRegist)
                    {
                        RunMode = RunMode.NormalRegist; //サービス登録完了状態
                    }
                }
            }

            //Ver5.8.6 Java fix
            //OptionIni.Create(this); //インスタンスの初期化

            IniDb = new IniDb(ProgDir(), (RunMode == RunMode.Remote) ? "$remote" : "Option");

            MailBox = null;

            ListInitialize(); //サーバ再起動で、再度実行される初期化


            if (_isTest)
            {
                return;
            }

            //ウインドサイズの復元
            var path = string.Format("{0}\\BJD.ini", ProgDir());

            try
            {
                //ウインドウの外観を保存・復元(Viewより前に初期化する)
                WindowSize = new WindowSize(new Conf(ListOption.Get("Basic")), path);
                View.Read(WindowSize);
            }
            catch (IOException)
            {
                WindowSize = null;
                // 指定されたWindow情報保存ファイル(BJD.ini)にIOエラーが発生している
                _logger.Set(LogKind.Error, null, 9000022, path);
            }

            //TraceDlg = new TraceDlg(this, (mainForm != null) ? mainForm.getFrame() : null); //トレース表示
            TraceDlg = new TraceDlg(this); //トレース表示

            switch (RunMode)
            {
            case RunMode.Normal:
                MenuOnClick("StartStop_Start");     //メニュー選択イベント
                break;

            case RunMode.Remote:
                RemoteClient = new RemoteClient(this);
                RemoteClient.Start();
                break;

            //Java fix Ver5.8.3
            case RunMode.NormalRegist:
            case RunMode.Service:
                break;

            default:
                Util.RuntimeException("Kernel.defaultInitialize() not implement (RunMode)");
                break;
            }

            //Java fix Ver5.8.3
            View.SetColor();//ウインド色の初期化
        }