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