Exemplo n.º 1
0
        private static void LoadPacketFilesTask(IEnumerable <FileControlParam> files)
        {
            var packets_new = CreatePacketContainer();

            foreach (var(file, index) in files.Select((value, index) => (value, index)))
            {
                /* ステータステキストを更新 */
                FormUiManager.SetStatusText(
                    StatusTextID.SaveLoadEventFile,
                    String.Format(
                        "{0} {1} / {2} ({3})",
                        ConfigManager.Language.MainMessage.EventFileLoading.Value,
                        index + 1,
                        files.Count(),
                        packets_new.Count));

                /* PacketLogReaderが生成できなければ読み込まない */
                var reader = file.Format.CreateReader() as PacketLogReader;

                if (reader == null)
                {
                    continue;
                }

                /* ファイルを開くことができない場合は何もしない */
                if (!reader.Open(file.Option, file.FilePath))
                {
                    continue;
                }

                DebugManager.MessageOut(string.Format("LoadPacketFile - Start [{0}]", Path.GetFileName(file.FilePath)));

                /* プログレスバーを初期化 */
                FormUiManager.SetProgressBar(0, false);

                /* ファイルを1つずつ処理 */
                var task = (new LoadPacketFileExecTaskDelegate(LoadPacketFileExecTask)).BeginInvoke(
                    packets_new, reader, null, null);

                /* 完了待ち */
                while (!task.IsCompleted)
                {
                    System.Threading.Thread.Sleep(100);
                    FormUiManager.SetProgressBar((byte)(reader.ProgressNow / (Math.Max(reader.ProgressMax / 100, 1))), false);
                }
            }

            /* コンテナ差し替え */
            packets_?.Dispose();
            packets_ = packets_new;

            /* ステータスバーを終了 */
            FormUiManager.SetStatusText(StatusTextID.SaveLoadEventFile, ConfigManager.Language.MainMessage.EventFileLoadComplete.Value);
            FormUiManager.SetProgressBar(100, true);

            /* 再描画 */
            FormTaskManager.RedrawPacketRequest();
        }
Exemplo n.º 2
0
        private void BackupPacketConverterConfig()
        {
            /* 全設定を削除 */
            ConfigManager.User.PacketConverter.Value.Clear();

            /* パケットコンバーターのみをスキャン */
            foreach (var pcvti in FormTaskManager.GetPacketConverterInstances())
            {
                pcvti.BackupProperty();
                ConfigManager.User.PacketConverter.Value.Add(
                    new PacketConverterObjectConfig(pcvti.Class.ID, pcvti.Property));
            }
        }
Exemplo n.º 3
0
        private void DockPanel_Main_DockContentClosed(object sender, Control control, FormClosedEventArgs e)
        {
            var viewc = control as PacketViewControl;

            if (viewc == null)
            {
                return;
            }

            FormTaskManager.RemovePacketView(viewc);

            viewc.Dispose();
        }
Exemplo n.º 4
0
        private void BackupPacketViewConfig()
        {
            /* 全設定を削除 */
            ConfigManager.User.PacketView.Value.Clear();

            /* パケットビューのみをスキャン */
            foreach (var viewc in FormTaskManager.GetPacketViewControls())
            {
                viewc.BackupProperty();

                ConfigManager.User.PacketView.Value.Add(
                    new PacketViewObjectConfig(
                        viewc.Instance.Class.ID,
                        viewc.Instance.ID,
                        viewc.Instance.Property));
            }
        }
Exemplo n.º 5
0
        public void RemovePacketConverter(MainWindow_PacketConverter control)
        {
            if (control == null)
            {
                return;
            }

            /* 変換器を削除 */
            FormTaskManager.RemovePacketConverter(control.Instance);

            /* コントロールを削除 */
            Panel_ConverterList.Controls.Remove(control);

            AdjustControlSize();

            UpdateView();
        }
Exemplo n.º 6
0
        public void AddPacketConverter(Guid class_id, PacketConverterProperty pcvtp)
        {
            var pcvti = FormTaskManager.CreatePacketConverter(class_id, pcvtp);

            if (pcvti == null)
            {
                return;
            }

            var control = new MainWindow_PacketConverter(this, pcvti);

            Panel_ConverterList.Controls.Add(control);

            AdjustControlSize();

            UpdateView();
        }
Exemplo n.º 7
0
        private static void AddPacket(IEnumerable <PacketObject> packets)
        {
            if ((packets == null) ||
                (packets_ == null)
                )
            {
                return;
            }

            /* パケット一覧に追加 */
            packets_.AddRange(packets);

            /* 描画実行 */
            FormTaskManager.DrawPacketPush(packets);

            /* イベント通知 */
            RawPacketEntried(packets);
        }
Exemplo n.º 8
0
        public static void ClearPacket()
        {
            AutoTimeStampManager.ClearPacket();

            /* コンテナ初期化 */
            lock (packets_sync_) {
                packets_?.Dispose();
                packets_ = CreatePacketContainer();
            }

            BasePacketManager.Clear();

            /* イベント通知 */
            RawPacketCleared();

            /* UIパケットをクリア */
            FormTaskManager.DrawPacketClear();
        }
Exemplo n.º 9
0
        public void MoveConverterIndex(MainWindow_PacketConverter control, Point pos_screen)
        {
            var index_old = Panel_ConverterList.Controls.GetChildIndex(control);
            var index_new = GetConverterIndex(Panel_ConverterList.PointToClient(pos_screen));

            if (index_new != index_old)
            {
                DebugManager.MessageOut(string.Format("MoveConverterIndex {0} => {1}", index_new, index_old));

                /* コントロールを入れ替え */
                Panel_ConverterList.Controls.SetChildIndex(control, (int)index_new);

                /* 変換器のインスタンスの順番も変更 */
                FormTaskManager.SetPacketConverterIndex(control.Instance, (int)index_new);

                ResumeLayout();
            }
        }
Exemplo n.º 10
0
        private void LoadPacketConverterMenu(ToolStripMenuItem menu)
        {
            /* 全メニューを削除 */
            menu.DropDownItems.Clear();

            /* パケット変換器一覧からメニューを作成 */
            foreach (var viewd in FormTaskManager.GetPacketConverterClasses())
            {
                var menu_sub = new ToolStripMenuItem()
                {
                    Text        = viewd.Name,
                    ToolTipText = viewd.Details,
                    Tag         = viewd,
                };

                menu_sub.Click += OnMenuClick_PacketConverterAdd;

                menu.DropDownItems.Add(menu_sub);
            }
        }
Exemplo n.º 11
0
        private PacketViewProperty LoadConfigPart_Property(XmlElement xml_node, Guid class_id)
        {
            if (xml_node == null)
            {
                return(null);
            }

            /* クラスIDからプロパティを取得 */
            var viewp = FormTaskManager.CreatePacketPacketViewProperty(class_id);

            if (viewp == null)
            {
                return(null);
            }

            /* プロパティ読み込み */
            viewp.LoadConfigData(xml_node);

            return(viewp);
        }
Exemplo n.º 12
0
        public void AddPacketView(Guid class_id, Guid obj_id, PacketViewProperty viewp, bool init)
        {
            var viewc = FormTaskManager.CreatePacketView(class_id, obj_id, viewp);

            if (viewc == null)
            {
                return;
            }

            /* Graphオブジェクトのレイアウトが何故か復元できないので、とりあえずパケットビューだけ復元対象から外す */
            DockPanel_Main.AddDockContent(
                viewc.Instance.ID.ToString(),
//                                viewc.Instance.ID.ToString() + (new Random()).Next(0, 99999).ToString(),
                viewc.Instance.Class.Name,
                (uint)DockContentsGroup.PacketView,
                Icon.FromHandle(Ratatoskr.Resource.Images.packet_view_16x16.GetHicon()),
                DockAreas.Document,
                DockState.Document,
                true,
                viewc);
        }
Exemplo n.º 13
0
 private void Label_ViewDrawMode_DoubleClick(object sender, EventArgs e)
 {
     FormTaskManager.HiSpeedDrawToggle();
 }
Exemplo n.º 14
0
        public void FormKeyAction(MainWindowActionId id)
        {
            if (InvokeRequired)
            {
                Invoke((FormKeyActionHandler)FormKeyAction, id);
                return;
            }

            switch (id)
            {
            case MainWindowActionId.ApplicationExit:
                Program.ShutdownRequest();
                break;

            case MainWindowActionId.TimeStamp:
                GatePacketManager.SetTimeStamp(ConfigManager.Language.MainMessage.TimeStampManual.Value);
                break;

            case MainWindowActionId.PacketRedraw:
                FormTaskManager.RedrawPacketRequest();
                break;

            case MainWindowActionId.PacketClear:
                GatePacketManager.ClearPacket();
                break;

            case MainWindowActionId.PacketSaveConvertOff:
                FormUiManager.SavePacketLog(true, false);
                break;

            case MainWindowActionId.PacketSaveConvertOn:
                FormUiManager.SavePacketLog(true, true);
                break;

            case MainWindowActionId.PacketSaveAsConvertOff:
                FormUiManager.SavePacketLog(false, false);
                break;

            case MainWindowActionId.PacketSaveAsConvertOn:
                FormUiManager.SavePacketLog(false, true);
                break;

            case MainWindowActionId.FileOpen:
                FormUiManager.FileOpen();
                break;

            case MainWindowActionId.AutoTimeStampToggle:
                ConfigManager.System.AutoTimeStamp.Enable.Value = !ConfigManager.System.AutoTimeStamp.Enable.Value;
                FormUiManager.MainFrameMenuBarUpdate();
                break;

            case MainWindowActionId.AutoScrollToggle:
                ConfigManager.System.AutoScroll.Value = !ConfigManager.System.AutoScroll.Value;
                FormUiManager.MainFrameMenuBarUpdate();
                break;

            case MainWindowActionId.ProfileAdd:
                ConfigManager.CreateNewProfile("New Profile", null, true);
                break;

            case MainWindowActionId.ProfileRemove:
                ConfigManager.DeleteProfile(ConfigManager.GetCurrentProfileID());
                break;

            case MainWindowActionId.ProfileEdit:
                if (FormUiManager.ShowProfileEditDialog("Edit Profile", ConfigManager.User, ConfigManager.User.ProfileName.Value))
                {
                    ConfigManager.SaveCurrentProfile(true);
                    FormUiManager.MainFrameMenuBarUpdate();
                }
                break;

            case MainWindowActionId.ProfileExport:
                FormUiManager.SaveUserConfig();
                break;

            case MainWindowActionId.Gate1_Connect:
            case MainWindowActionId.Gate2_Connect:
            case MainWindowActionId.Gate3_Connect:
            case MainWindowActionId.Gate4_Connect:
            case MainWindowActionId.Gate5_Connect:
                var gate_list = GateManager.GetGateList();
                var gate_id   = (int)(id - MainWindowActionId.Gate1_Connect);

                if (gate_id < gate_list.Length)
                {
                    gate_list[gate_id].ConnectRequest = !gate_list[gate_id].ConnectRequest;
                }
                break;

            case MainWindowActionId.ShowScriptWindow:
                FormUiManager.ScriptWindowVisible(true);
                break;

            case MainWindowActionId.ShowOptionDialog:
                FormUiManager.ShowOptionDialog();
                break;

            case MainWindowActionId.ShowAppDocument:
                FormUiManager.ShowAppDocument();
                break;

            case MainWindowActionId.ShowAppDocument_PacketFilter:
                FormUiManager.ShowAppDocument();
                break;

            case MainWindowActionId.ShowAppInformation:
                FormUiManager.ShowAppInfo();
                break;
            }
        }
Exemplo n.º 15
0
 void ChangeSchedule()
 {
     FormTaskManager taskManager = new FormTaskManager();
     taskManager.ShowDialog();
 }