メインコンテンツまでスキップ

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
    • 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 メソッド

フィールドを指定する設定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 メソッド

プロファイルやパッケージを扱う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(インタフェースを追加)

プロファイル参照を実現するAPIの追加

  • 概要
    • プロファイル参照の機能実現に必要なプロパティを追加しました。
    • クラス名を扱うAPIの利用時にスコープを指定するために便利なプロファイル参照パッケージを取得するメソッドを追加しました。
  • 対象API
    • INamedElement
      • INamedElement.BaseId プロパティ
      • INamedElement.IsDisabled プロパティ
      • INamedElement.GetProfileReferencePackage メソッド
    • IViewDefnition
      • IViewDefnition.BaseId プロパティ
      • IViewDefnition.IsDisabled プロパティ

ビュー定義を操作する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 メソッド

モデルファイル階層化機能対応

モデルファイルの分割先・インポート先フォルダを指定する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 メソッド指定したパラメータが不正な場合に例外をスローするように変更しました。