/// <summary> オーバーレイを全て表示します。
 /// </summary>
 /// <param name="pTimelineComponent"> オーバーレイに搭載するタイムラインコンポーネント </param>
 /// <param name="pOverlayViewList"> 表示するオーバーレイのリスト(IF) </param>
 public void ShowOverlay(CommonDataModel pCommonDM, TimelineComponent pTimelineComponent, IList <OverlayViewComponent> pOverlayViewList)
 {
     foreach (var overlay in pOverlayViewList)
     {
         this.ShowOverlay(pCommonDM, pTimelineComponent, overlay);
     }
 }
Example #2
0
        /*--- Method: private -----------------------------------------------------------------------------------------------------------------------------------------*/

        /// <summary> 標準型タイムラインビューを開きます。
        /// </summary>
        /// <param name="pTimelineC"> タイムラインコンポーネント </param>
        /// <param name="pOverlayViewC"> オーバーレイ表示コンポーネント </param>
        private void openStandardTimelineView(CommonDataModel pCommonDM, TimelineComponent pTimelineC, OverlayViewComponent pOverlayViewC)
        {
            OverlayWindow window = new OverlayWindow();

            window.Topmost = true;
            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);
            }
        }
        /// <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);
        }
        /// <summary> ファイル選択ダイアログを表示後、オーバーレイをインポートします。
        /// </summary>
        public bool ImportOverlay(CommonDataModel pCommonDataModel, TimelineComponent pTimelineComponent, OverlayManageDataModel pOverlayManageDataModel)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.FilterIndex      = 1;
            openFileDialog.Filter           = "Overlay Xml|*.xml|All Files (*.*)|*.*";
            openFileDialog.InitialDirectory = pCommonDataModel.ApplicationData.PluginDllDirectory;
            openFileDialog.Title            = "Import Overlay Data";
            bool?result = openFileDialog.ShowDialog();

            if (result == true)
            {
                return(this.ImportOverlay(pCommonDataModel, pTimelineComponent, pOverlayManageDataModel, openFileDialog.FileName, string.Empty));
            }

            return(false);
        }
Example #5
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;
        }
        /// <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);
            }
        }
        /// <summary> オーバーレイをインポートします。
        /// </summary>
        public bool ImportOverlay(CommonDataModel pCommonDataModel, TimelineComponent pTimelineComponent, OverlayManageDataModel pOverlayManageDataModel, string pOverlayFullPath, string pImportOverlayName)
        {
            var data = this.OverlayDataModelLoad(pOverlayFullPath, false);

            if (data != null)
            {
                this.overlayDataRevisionProcess.DataRevisionExecute(data);
                if (!string.IsNullOrWhiteSpace(pImportOverlayName))
                {
                    data.OverlayWindowData.OverlayName = pImportOverlayName;
                }

                this.AddNewOverlay(pCommonDataModel, data, pTimelineComponent, pOverlayManageDataModel, true);
            }
            else
            {
                throw new FileLoadException();
            }

            return(true);
        }
        /*--- 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);
        }
 /// <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);
 }