Ejemplo n.º 1
0
        /// <summary> 新しいオーバーレイカスタムウィンドウを作成し、表示します。
        /// </summary>
        /// <param name="pOverlayViewComponent"> カスタム対象のオーバーレイコンポーネント </param>
        public void NewOverlayCustomWindowOpen(CommonDataModel pCommonDM, OverlayViewComponent pOverlayViewComponent)
        {
            pOverlayViewComponent.OverlayDataModel.OverlayViewData.OverlayCustomClosed = false;

            OverlayCustomWindow window = new OverlayCustomWindow();

            ElementHost.EnableModelessKeyboardInterop(window);
            var vm = window.DataContext as OverlayCustomWindowViewModel;

            if (vm == null)
            {
                return;
            }

            vm.OverlayViewComponent = pOverlayViewComponent;

            if (pOverlayViewComponent.CommonDataModel.AppStatusData.AppMode != AppMode.Desing)
            {
                window.Show();
            }

            // ViewのIntPtrを採取
            IntPtr intPtr = new WindowInteropHelper(window).Handle;

            if (!pCommonDM.AppCommonData.ViewIntPtrList.Contains(intPtr))
            {
                pCommonDM.AppCommonData.ViewIntPtrList.Add(intPtr);
            }
        }
Ejemplo n.º 2
0
        /*--- Method: public ------------------------------------------------------------------------------------------------------------------------------------------*/

        /*--- Method: private -----------------------------------------------------------------------------------------------------------------------------------------*/

        /// <summary> デザイン用データの生成(パターン1)
        /// </summary>
        private void createDesingData_P001()
        {
            for (int i = 0; i < 30; i++)
            {
                OverlayViewComponent component = new OverlayViewComponent(model);
                component.OverlayDataModel.OverlayWindowData.OverlayName = "デザイン用オーバーレイ" + i.ToString();
                component.OverlayDataModel.OverlayWindowData.OverlayType = OverlayType.StandardTimeline;

                base.OverlayManageComponent.OverlayManageDataModel.OverlayViewComponentCollection.Add(component);
            }
        }
Ejemplo n.º 3
0
        /*--- Method: public ------------------------------------------------------------------------------------------------------------------------------------------*/

        /// <summary> 新しいオーバーレイを作成します。
        /// </summary>
        public void AddNewOverlay(CommonDataModel pCommonDM, OverlayDataModel pAddOverlayDM, TimelineComponent pTimelineC, OverlayManageDataModel pOverlayManageM, bool IsImport)
        {
            // ID設定
            if (pOverlayManageM.OverlayViewComponentCollection.Count > 0)
            {
                pAddOverlayDM.OverlayWindowData.ID = pOverlayManageM.OverlayViewComponentCollection.Max(m => m.OverlayDataModel.OverlayWindowData.ID) + 1;
            }
            else
            {
                pAddOverlayDM.OverlayWindowData.ID = 1;
            }

            OverlayViewComponent component = new OverlayViewComponent(pCommonDM);

            component.OverlayDataModel = pAddOverlayDM;

            if (IsImport)
            {
                pAddOverlayDM.OverlayWindowData.WindowTop        = 10;
                pAddOverlayDM.OverlayWindowData.WindowLeft       = 10;
                pAddOverlayDM.OverlayWindowData.WindowVisibility = false;
                pAddOverlayDM.OverlayWindowData.WindowLock       = false;
            }
            else
            {
                this.SetDefaultOverlayWindowData(component.OverlayDataModel.OverlayWindowData);
                this.SetDefaultOverlaySettingData(component.OverlayDataModel.OverlayOptionData);
            }

            component.OverlayDataModel.OverlayViewData.TimelineViewSource = new CollectionViewSource()
            {
                Source = pTimelineC.TimelineObjectModel.ActivityCollection
            };
            this.setFilterProcess.SetResetFilter(component.OverlayDataModel.OverlayViewData.TimelineViewSource, false);

            // バージョン設定
            component.OverlayDataModel.DataVersion = pCommonDM.ApplicationData.ApplicationVersion;

            pOverlayManageM.OverlayViewComponentCollection.Add(component);
            pCommonDM.ViewCollection.Add(component);
        }
Ejemplo n.º 4
0
        /// <summary> 保存されているオーバーレイを全てロードします。
        /// </summary>
        /// <param name="pCommonDataModel"> 共通データモデル </param>
        /// <param name="pTimelineComponent"> タイムラインコンポーネント </param>
        /// <param name="pOverlayManageDataModel"> 読込データを追加する管理データモデル </param>
        public void OverlayDataModelLoad(CommonDataModel pCommonDataModel, TimelineComponent pTimelineComponent, OverlayManageDataModel pOverlayManageDataModel)
        {
            if (pCommonDataModel == null || pCommonDataModel.ApplicationData == null)
            {
                return;
            }
            if (pCommonDataModel.ApplicationData.OverlayDataFilePathList.Count == 0)
            {
                return;
            }

            var dataList = this.OverlayDataModelLoad(pCommonDataModel.ApplicationData.OverlayDataFilePathList, true);

            if (dataList.Count == 0)
            {
                return;
            }

            foreach (var data in dataList)
            {
                OverlayViewComponent component = new OverlayViewComponent(pCommonDataModel);

                this.overlayDataRevisionProcess.DataRevisionExecute(data);

                // バージョン設定
                data.DataVersion = pCommonDataModel.ApplicationData.ApplicationVersion;

                component.OverlayDataModel = data;

                component.OverlayDataModel.OverlayViewData.TimelineViewSource = new CollectionViewSource()
                {
                    Source = pTimelineComponent.TimelineObjectModel.ActivityCollection
                };

                this.setFilterProcess.SetResetFilter(component.OverlayDataModel.OverlayViewData.TimelineViewSource, false);

                pOverlayManageDataModel.OverlayViewComponentCollection.Add(component);

                pCommonDataModel.ViewCollection.Add(component);
            }
        }
Ejemplo n.º 5
0
        /// <summary> 既存のオーバーレイを削除します。
        /// </summary>
        /// <param name="pOverlayViewC"> 削除するオーバーレイデータ </param>
        /// <param name="pCommonDM"> 値参照用の共通データモデル </param>
        /// <param name="pOverlayManageDM"> 削除データのコレクションを持つオーバーレイ管理モデル </param>
        public void DeleteOverlay(OverlayViewComponent pOverlayViewC, CommonDataModel pCommonDM, OverlayManageDataModel pOverlayManageDM)
        {
            if (pCommonDM == null || pCommonDM.ApplicationData == null)
            {
                return;
            }

            string fileName = pCommonDM.ApplicationData.OverlayDataPartName + String.Format("{0:0000}", pOverlayViewC.OverlayDataModel.OverlayWindowData.ID) + ".xml";
            string path     = Path.Combine(pCommonDM.ApplicationData.RoamingDirectoryPath, "OverlayData", fileName);

            pOverlayManageDM.OverlayViewComponentCollection.Remove(pOverlayViewC);
            pCommonDM.ViewCollection.Remove(pOverlayViewC);

            WindowsServices.WindowCloseSendMessage(pOverlayViewC.OverlayDataModel.OverlayWindowData.WindowIntPtr);
            pOverlayViewC.OverlayDataModel.OverlayWindowData.WindowIntPtr = IntPtr.Zero;

            pOverlayViewC = null;

            if (File.Exists(path))
            {
                File.Delete(path);
            }
        }
Ejemplo n.º 6
0
 /// <summary> オーバーレイのコピー作成を実行します。
 /// </summary>
 /// <param name="pOverlayVC"> コピーするオーバーレイコンポーネント </param>
 /// <param name="pTimelineC"> コピーしたオーバーレイに搭載するタイムラインコンポーネント </param>
 /// <param name="pOverlayManageDM"> オーバーレイ管理データモデル </param>
 /// <param name="pNewOverlayName"> コピー後に設定するオーバーレイの名前 </param>
 public void CopyOverlay(OverlayViewComponent pOverlayVC, TimelineComponent pTimelineC, OverlayManageDataModel pOverlayManageDM, string pNewOverlayName)
 {
     this.OverlayDataModelSave(pOverlayVC.CommonDataModel.ApplicationData.GetTempOverlayFullPath, pOverlayVC.OverlayDataModel, false);
     this.ImportOverlay(pOverlayVC.CommonDataModel, pTimelineC, pOverlayManageDM, pOverlayVC.CommonDataModel.ApplicationData.GetTempOverlayFullPath, pNewOverlayName);
 }
Ejemplo n.º 7
0
 /// <summary> オーバーレイカスタムを表示します。
 /// </summary>
 /// <param name="pOverlayViewComponent"> カスタム対象のオーバーレイコンポーネント </param>
 public void ShowCustomWindow(CommonDataModel pCommonDM, OverlayViewComponent pOverlayViewComponent)
 {
     this.overlayViewOpenProcess.NewOverlayCustomWindowOpen(pCommonDM, pOverlayViewComponent);
 }
Ejemplo n.º 8
0
        /// <summary> オーバーレイを表示します。
        /// </summary>
        /// <param name="pTimelineComponent"> タイムラインコンポーネント </param>
        /// <param name="pOverlayViewComponent">  </param>
        public void ShowOverlay(CommonDataModel pCommonDM, TimelineComponent pTimelineComponent, OverlayViewComponent pOverlayViewComponent)
        {
            if (!pOverlayViewComponent.OverlayDataModel.OverlayWindowData.WindowVisibility)
            {
                return;
            }

            this.overlayViewOpenProcess.NewOverlayOpen(pCommonDM, pTimelineComponent, pOverlayViewComponent);
        }
Ejemplo n.º 9
0
        /*--- Method: public ------------------------------------------------------------------------------------------------------------------------------------------*/

        /// <summary> 新しいオーバーレイを作成し、表示します。
        /// </summary>
        /// <param name="pTimelineComponent"></param>
        /// <param name="pViewControlComponent"></param>
        public void NewOverlayOpen(CommonDataModel pCommonDM, TimelineComponent pTimelineComponent, OverlayViewComponent pOverlayViewComponent)
        {
            switch (pOverlayViewComponent.OverlayDataModel.OverlayWindowData.OverlayType)
            {
            case OverlayType.StandardTimeline:
                this.openStandardTimelineView(pCommonDM, pTimelineComponent, pOverlayViewComponent);
                break;

            case OverlayType.TimelineControl:
                this.openOverlayControlView(pCommonDM, pTimelineComponent, pOverlayViewComponent);
                break;

            default:
                return;
            }

            return;
        }
Ejemplo n.º 10
0
        /// <summary> タイムラインコントロールビューを開きます。
        /// </summary>
        /// <param name="pTimelineC"> タイムラインコンポーネント </param>
        /// <param name="pOverlayViewC"> オーバーレイ表示コンポーネント </param>
        private void openOverlayControlView(CommonDataModel pCommonDM, TimelineComponent pTimelineC, OverlayViewComponent pOverlayViewC)
        {
            OverlayWindow window = new OverlayWindow();

            window.Topmost    = true;
            window.ResizeMode = System.Windows.ResizeMode.NoResize;
            pOverlayViewC.OverlayDataModel.OverlayWindowData.WindowHeight = 30;
            pOverlayViewC.OverlayDataModel.OverlayWindowData.WindowWidth  = 170;

            var vm = window.DataContext as OverlayWindowViewModel;

            if (vm != null)
            {
                vm.TimelineComponent    = pTimelineC;
                vm.OverlayViewComponent = pOverlayViewC;
            }

            if (pOverlayViewC.CommonDataModel.AppStatusData.AppMode != AppMode.Desing)
            {
                window.Show();
            }

            // ViewのIntPtrを採取
            IntPtr intPtr = new WindowInteropHelper(window).Handle;

            pOverlayViewC.OverlayDataModel.OverlayWindowData.WindowIntPtr = intPtr;
            if (!pCommonDM.AppCommonData.ViewIntPtrList.Contains(intPtr))
            {
                pCommonDM.AppCommonData.ViewIntPtrList.Add(intPtr);
            }

            if (pOverlayViewC.OverlayDataModel.OverlayWindowData.WindowLock)
            {
                WindowsServices.SetWindowExTransparent(pOverlayViewC.OverlayDataModel.OverlayWindowData.WindowIntPtr);
            }
        }