Next Design V4.0 の変更点
エクステンション機能の変更点
Next Design V4.0 でのエクステンション機能の変更点の概要は次の通りです。詳細については後述の「該当API一覧」をご参照ください。
- リッチテキスト操作APIの振る舞い変更
- HTMLフォーマットの値を設定時にTEXTフォーマットの値も自動設定されるようになりました。
- XAMLフォーマットの値は設定されなくなりました。
- HTMLフォーマットの値として、bodyタグを含まない場合は例外が発生して設定できなくなりました。htmlタグを含まなくても設定できるようになりました。
- V4 機能に対応したAPIの機能拡張
- マルチタブ・フローティング機能の追加に合わせてエディタ関連のAPIを機能拡張しました。
- プロファイルテーラリング機能の追加に合わせてプロファイル関連のAPIを機能拡張しました。
- モデルファイル階層化に合わせてモデルファイルの分割先・インポート先フォルダを指定できるAPIを追加しました。
- エクステンションによる拡張性を強化するAPIの変更・追加・拡充
- 既存モデルのクラスをAPIで変更できるようになりました。
- 指定フィールドに関連付け可能なモデルを探索できるようになりました。
- エラー検証時のオプションで検証内容を指定できるようになりました。
- ドキュメント出力時のオプションで出力後にファイルを自動で開く動作を抑制できるようになりました。
- メタモデルで定義されているクラスの継承関係をAPIで削除できるようになりました。
- スクリプト実行時にスクリプトが利用する外部ファイルのパスを相対パスで指定できるようになりました。
- 実行環境のスキーマバージョンをAPIで取得できるようになりました。
- 不正なAPI操作に対するガードを強化しました。
該当API一覧
Next Design V4.0 でのエクステンション機能の変更点ごとに、該当の API を以下に列挙します。それぞれの API の詳細は API 仕様 を参照してください。
リッチテキスト操作APIの振る舞い変更
リッチテキスト型フィールドを設定するAPIの振る舞い変更
- 概要
- リッチテキスト型フィールドを設定するAPIの振る舞いを変更し、GUI操作とAPI操作で異なる表示・出力にならないようになりました。
- 対象API
| API | 変 更内容 |
|---|---|
| IModel.SetRichTextField メソッド | ・HTMLフォーマットの値を設定時にTEXTフォーマットの値も自動設定されるようになりました。 ・XAMLフォーマットの値は設定されなくなりました。 ・HTMLフォーマットの値として、bodyタグを含まない場合は例外が発生して設定できなくなりました。htmlタグを含まなくても設定できるようになりました。 |
V4 機能に対応したAPIの機能拡張
マルチタブ・フローティング機能対応
アクティブなタブに応じたAPIの機能拡張
- 概要
- マルチタブ・フローティング表示対応に伴いアクティブなタブがAPIの操作対象となります。アクティブなタブにはモデルエディタだけでなく、トレースドキュメントはクラス図も表示可能です。そのため、エディタの種類や表示状態に依存するAPIを機能拡張しました。
- 対象API
| API | 変更内容 |
|---|---|
| IEditorPage.CurrentEditorView プロパティ | アクティブなタブがモデルエディタでない場合に、nullを返すようになりました。 |
| IEditorPage.MainEditorView プロパティ | アクティブなタブがモデルエディタでない場合に、nullを返すようになりました。 |
| IEditorPage.SubEditorView プロパティ | アクティブなタブがモデルエディタでない場合に、nullを返すようになりました。 |
| IEditorPage.IsTraceLineVisible プロパティ | アクティブなタブがモデルエディタでない場合に、falseを返すようになりました。 |
| IEditorPage.IsIndicatorVisible プロパティ | アクティブなタブがモデルエディタでない場合に、falseを返すようになりました。 |
| IEditorPage.IsFeatureMarkVisible プロパティ | アクティブなタブがモデルエディタでない場合に、falseを返すようになりました。 |
| IEditorPage.IsTraceLineVisible プロパティ | アクティブなタブがモデルエディタでない場合に値を設定すると、例外をスローするようになりました。 |
| IEditorPage.IsIndicatorVisible プロパティ | アクティブなタブがモデルエディタでない場合に値を設定すると、例外をスローするようになりました。 |
| IEditorPage.IsFeatureMarkVisible プロパティ | アクティブなタブがモデルエディタでない場合に値を設定すると、例外をスローするようになりました。 |
| IEditorPage.SubEditorMode プロパティ | アクティブなタブがモデルエディタでない場合に、SubEditorMode.Manualを返すようになりました。 |
| IEditorPage.SetSubEditorMode メソッド | アクティブなタブがモデルエディタでない場合に、例外をスローするようになりました。 |
| IEditorPage.SetSubEditorMode メソッド | アクティブなタブがモデルエディタでない場合に、例外をスローするようになりました。 |
| ICommandManager.ExecuteCommand メソッド | コマンド識別子に以下のシステムコマンドを指定したときに、アクティブなタブを対象に実行するようになりました。 ・View.ToggleSwapEditorLayout ・View.ToggleTraceLinkVisibility ・View.ToggleIndicatorVisibility |
| IWorkspaceState.ActiveEditorSelectedModel プロパティ | アクティブタブの選択要素を取得できるようになりました。 アクティブタブにモデルエディタドキュメントを表示していない場合は、nullが返却されます。 タブの切り替えでアクティブタブの選択要素が変更された場合は、 IWorkspaceState.EditorSelectionChangedイベントが通知されます。 |
| IEditorPage.IsTraceLineVisible プロパティ | エディタの表示状態について、アクティブタブによらず最後に設定した状態が取得できるようになりました。 |
| IEditorPage.IsIndicatorVisible プロパティ | エディタの表示状態について、アクティブタブによらず最後に設定した状態が取得できるようになりました。 |
| IEditorPage.IsFeatureMarkVisible プロパティ | エディタの表示状態について、アクティブタブによらず最後に設定した状態が取得できるようになりました。 |
| IEditorPage.IsTraceLineVisible プロパティ | エディタの表示状態について、表示状態を切り替えたときに、すべてのタブに設定が反映されるようになりました。 |
| IEditorPage.IsIndicatorVisible プロパティ | エディタの表示状態について、表示状態を切り替えたときに、すべてのタブに設定が反映されるようになりました。 |
| IEditorPage.IsFeatureMarkVisible プロパティ | エディタの表示状態について、表示状態を切り替えたときに、すべてのタブに設定が反映されるようになりました。 |
| IWorkspaceWindow.ActivePage プロパティ | アクティブタブにトレースドキュメントを表示している場合に、トレースページが表示されているとみなすようになりました。 "Editor"を設定すると、固定タブが表示されます。 |
| IWorkspaceWindow.TracePage プロパティ | アクティブタブにトレースドキュメントを表示している場合に、トレースページが表示されているとみなすようになりました。 |
| IWorkspaceWindow.EditorPage プロパティ | アクティブタブにトレースドキュメントを表示している場合に、トレースページが表示されているとみなすようになりました。 |
| IEditorPage.IsSubEditorVisible プロパティ | エディタの表示状態を変更できないときの例外の型と例外メッセージを変更しました。 |
| IEditorPage.IsTraceLineVisible プロパティ | エディタの表示状態を変更できないときの例外の型と例外メッセージを変更しました。 |
| IEditorPage.SetSubEditorMode メソッド | エディタの表示状態を変更できないときの例外メッセージを変更しました。 |
| IEditorPage.SetSubEditorMode メソッド | エディタの表示状態を変更できないときの例外メッセージを変更しました。 |
プロファイルテーラリング機能対応
クラスを指定するAPIの機能拡張
- 概要
- クラス名を指定するAPIに対して判定方法を変更しました。
- クラス名のあいまい検索時の判定方法を名前空間を含む後方一致に変更しました。
- クラスの探索範囲を特定のプロファイル参照パッケージに限定する指定方法を追加しました。
フォーマット:{プロファイル名}::{クラス名 or 名前空間を含むクラス名}
- クラスの指定方法を拡充するオーバーロードメソッドを追加しました。
- クラス名を指定するAPIに対して判定方法を変更しました。
- 対象API
- IModel
- IModel.Is メソッド
- IModel.IsIn メソッド
- IModel.As メソッド
- IModel.AsIn メソッド
- IModel.FindOwnerByClass メソッド
- IModel.FindChildrenByClass メソッド
- IModel.GetRefRelatedModels メソッド
- IModel.GetDerivedModels メソッド
- IModel.GetDerivingModels メソッド
- IModel.AddNewModel メソッド
- IModel.AddNewModelAt メソッド
- IModel.AddNewModelTo メソッド
- IMetamodels
- IMetamodels.GetClass メソッド
- IMetamodels.FindClassesByName メソッド
- IMetamodels.GetEnum メソッド
- IMetamodels.MoveToPackage メソッド
- IMetamodels.AddSuperClasses メソッド
- IMetamodels.RemoveSuperClasses メソッド
- IMetamodels.AddPathConstraint メソッド
- IMetamodels.RemovePathConstraint メソッド
- IMetamodels.RegisterGetFieldCallback メソッド
- IMetamodels.RegisterSetFieldCallback メソッド
- IMetamodels.RegisterRelateFieldCallback メソッド
- IMetamodels.UnregisterFieldCallback メソッド
- IProject
- IProject.AddNewRootModel メソッド
- IModel
フィールドを指定する設定APIの機能拡張
- 概要
- フィールドを指定する設定APIに対して対象フィールドが無効の場合、例外をスローすることで値が誤って設定されないように変更しました。
- 対象API
- IModel
- IModel.SetField メソッド
- IModel.SetFieldAt メソッド
- IModel.AddNewModel メソッド
- IModel.AddNewModelAt メソッド
- IModel.AddNewModelTo メソッド
- IModel.RemoveField メソッド
- IModel.RemoveFieldAt メソッド
- IModel.MoveTo メソッド
- IModel.Take メソッド
- IModel.Relate メソッド
- IModel.RelateAt メソッド
- IRelationship
- IRelationship.Relate メソッド
- IModel
プロファイルやパッケージを扱うAPIの追加
- 概要
- プロファイルの情報やプロファイル参照に関する情報を確認するAPIを追加しました。
- 対象API
- IProfile
- IProfile.DisplayName プロパティ
- IProfile.Description プロパティ
- IProfile.Version プロパティ
- IProfile.Category プロパティ
- IProfile.GetProfileReferencePackageFor メソッド
- IPackage
- IPackage.OwnedTypes プロパティ
- IPackage.ProfileReference プロパティ
- IPackage.GetAllTypes メソッド
- IPackage.GetAllClasses メソッド
- IPackage.GetAllEnums メソッド
- IPackage.GetAllSubPackages メソッド
- IPackage.GetOwnerPackages メソッド
- IPackage.GetTypeByName メソッド
- IPackage.GetTypesByName メソッド
- IMetamodels
- IMetamodels.GetPackage メソッド
- IMetamodels.GetPackageById メソッド
- IMetamodels.FindPackageByName メソッド
- IMetamodels.FindPackageByName メソッド
- IProfileReference(インタフェースを追加)
- IProfileDependency(インタフェースを追加)
- IProfile
プロファイル参照を実現するAPIの追加
- 概要
- プロファイル参照の機能実現に必要なプロパティを追加しました。
- クラス名を扱うAPIの利用時にスコープを指定するために便利なプロファイル参照パッケージを取得するメソッドを追加しました。
- 対象API
- INamedElement
- INamedElement.BaseId プロパティ
- INamedElement.IsDisabled プロパティ
- INamedElement.GetProfileReferencePackage メソッド
- IViewDefnition
- IViewDefnition.BaseId プロパティ
- IViewDefnition.IsDisabled プロパティ
- INamedElement
ビュー定義を操作するAPIの追加
- 概要
- 複数のエディタ要素に対して、まとめて条件付きスタイルのコールバックを登録できるAPIを追加しました。
- 対象API
- IViewDefnitions
- IViewDefnitions.FindEditorDefByClass メソッド
- IViewDefnitions.FindElementDefByClass メソッド
- IViewDefnitions.RegisterGetStyleCallback メソッド
- IViewDefnitions.RegisterGetStyleCallback メソッド
- IViewDefnitions.RegisterGetTextStyleCallback メソッド
- IViewDefnitions.RegisterGetTextStyleCallback メソッド
- IViewDefnitions.RegisterGetCompartmentItemTextStyleCallback メソッド
- IViewDefnitions.RegisterGetCompartmentItemTextStyleCallback メソッド
- IViewDefnitions.RegisterTextValueCallback メソッド
- IViewDefnitions.RegisterCompartmentItemTextValueCallback メソッド
- IViewDefnitions.UnregisterStyleCallback メソッド
- IViewDefnitions
モデルファイル階層化機能対応
モデルファイルの分割先・インポート先フォルダを指定するAPIの追加
- 概要
- モデルファイルの階層化に伴い、モデルファイルの分割先・インポート先フォルダを指定できるAPIを追加しました。
- 対象API
- IProjectUnitManager.SplitModelUnit メソッド
- IProjectUnitManager.SplitModelUnits メソッド
- IProjectUnitManager.ImportModelUnits メソッド
エクステンションによる拡張性を強化するAPIの機能拡充
モデル操作のAPI追加
- 概要
- 既存モデルのクラスを変更するためのメソッドを追加しました。
- 指定フィールドに関連付け可能なモデルを探索するメソッドを追加しました。
- エラー検証対象のエラーコードを取得・設定するプロパティを追加しました。
- ドキュメント出力後にファイルを自動で開く動作を制御するプロパティを追加しました。
- 対象API
| API | 変更内容 |
|---|---|
| IModel.GetChangeableMetaclasses メソッド | 既存モデルから変更可能なすべてのクラスを取得するメソッドを追加しました。 |
| IModel.CanChangeMetaclassTo メソッド | 既存モデルのクラスを指定したクラスに変更できるか判定するメソッドを追加しました。 |
| IModel.ChangeMetaclassTo メソッド | 既存モデルのクラスを変更するためのメソッドを追加しました。 |
| IModel.FindRelatableModels メソッド | 指定フィールドに関連付け可能なモデルを探索するメソッドを追加しました。 |
| ValidationOptions.ErrorFilter プロパティ | エラー検証対象のエラーコードを取得・設定するプロパティを追加しました。 |
| DocumentGenerationOptions.OpenDocument プロパティ | ドキュメント出力後にファイルを自動で開く動作を制御するプロパティを追加しました。 |
メタモデル定義のAPI追加
- 概要
- メタモデルで定義されているクラスの継承関係を削除するためのAPIを追加しました。
- 列挙リテラルを宣言する列挙を取得するプロパティを追加しました。
- IClass と IEnum に共通する型の概念として IType を追加しました。
- 対象API
| API | 変更内容 |
|---|---|
| IClass.RemoveSuperClass メソッド | このクラスのスーパークラスから指定したクラスを削除するメソッドを追加しました。 |
| IClass.RemoveSuperClasses メソッド | このクラスのスーパークラスから指定したクラス群を削除するメソッドを追加しました。 |
| IMetamodels.RemoveSuperClasses メソッド | 指定したクラスのスーパークラスを削除するメソッドを追加しました。 |
| IEnumLiteral.OwnerEnum プロパティ | 列挙リテラルを宣言する列挙を取得するプロパティを追加しました。 |
| IType インタフェース(追加) | IClass と IEnum に共通する型の概念として IType を追加しま した。 継承元:INamedElement、継承先:IClass,IEnum |
| IClass インタフェース | 継承元をINamedElementからITypeに変更しました。 |
| IEnum インタフェース | 継承元をINamedElementからITypeに変更しました。 |
エクステンション機構のAPI機能拡充
- 概要
- スクリプト実行時にスクリプトが利用する外部ファイルのパスを相対パスで指定できるように改良しました。
- 実行環境のスキーマバージョンを取得するプロパティを追加しました。
- 対象API
| API | 変更内容 |
|---|---|
| IApplication.ExecuteScriptCode メソッド | スクリプト実行時にスクリプト内で利用する外部ファイルのパスを相対パスで指定できるように改良しました。 |
| IEnv.SchemaVersion プロパティ | 実行環境のスキーマバージョンを取得するプロパティを追加しました。 |
不正なAPI操作に対するガード強化
- 概要
- プロファイルのルートパッケージに対して IPackage.Parent プロパティを取得時に null を返すように変更しました。
- IViewDefinitions インタフェースのAPIにて、指定したパラメータが不正な場合に例外をスローするように変更しました。
- 対象API
| API | 変更内容 |
|---|---|
| IPackage.Parent プロパティ | プロファイルのルートパッケージに対して IPackage.Parent プロパティを取得時に null を返すように変更しました。 |
| IViewDefinitions.FindElementDefByClass メソッド | 指定したパラメータが不正な場合に例外をスローするように変更しました。 |
| IViewDefinitions.RegisterGetStyleCallback メソッド | 指定したパラメータが不正な場合に例外をスローするように変更しました。 |
| IViewDefinitions.RegisterGetTextStyleCallback メソッド | 指定したパラメータが不正な場合に例外をスローするように変更しました。 |
| IViewDefinitions.RegisterGetCompartmentItemTextStyleCallback メソッド | 指定したパラメータが不正な場合に例外をスローするように変更しました。 |
| IViewDefinitions.RegisterTextValueCallback メソッド | 指定したパラメータが不正な場合に例外をスローするように変更しました。 |
| IViewDefinitions.RegisterCompartmentItemTextValueCallback メソッド | 指定したパラメータが不正な場合に例外をスローするように変更しました。 |
| IViewDefinitions.UnregisterStyleCallback メソッド | 指定したパラメータが不正な場合に例外をスローするように変更しました。 |