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

ダイアグラムビューでのテキストの動的変更

プレビュー公開

本機能および本機能で利用する API は先行公開しているものです。 現時点で品質保証しておりませんので、ご利用される場合はユーザー様の責任でご利用ください。 また、これらの仕様は予告なく変更する場合がありますのでご了承ください。

概要

ダイアグラムビュー上のテキストとして表示する文字列を、文字列型フィールドの値ではなく、モデルの状態などに基づいて動的に決定される文字列に変更できます。また、ダイアグラムビュー上のテキストを編集時に、入力された文字列を解析してモデルのフィールド値を更新することもできます。

テキストの動的変更を実現するには次の実装が必要です。

  • コールバック関数の実装
  • コールバック関数の登録処理の実装

コールバック関数の実装

テキストの動的変更のコールバック関数を実装します。 コールバック関数には次の種類があります。

  • テキスト値取得/設定のコールバック関数

以下では、それぞれのコールバック関数の実装について説明します。

テキスト値の取得コールバック関数

コールバック関数のシグネチャ

string get_TextValueFunction(IShape shape, TextTypes type, string textPath, IModel model)

コールバック関数の呼び出しタイミング

テキスト表示時

詳細は IViewDefinitions.RegisterTextValueCallback メソッド の引数 getter の説明をご参照ください。

テキスト値の設定コールバック関数

コールバック関数のシグネチャ

string set_TextValueFunction(IShape shape, TextTypes type, string textPath, IModel model)

コールバック関数の呼び出しタイミング

UIでのテキスト編集時

詳細は IViewDefinitions.RegisterTextValueCallback メソッド の引数 setter の説明をご参照ください。

設定コールバック関数実装時の注意点

テキスト値の設定コールバック関数(setter)を実装する際は、以下の2点に注意する必要があります。

ダイアグラム上でのテキスト編集

テキスト値の設定コールバック関数に引き渡されるテキスト値は、モデルのフィールドに設定されている元の値(以下、モデルの値と表現します)ではなく、ダイアグラムビュー上に表示されている文字列です。ダイアグラムビュー上に表示される文字列をテキスト値の取得コールバック関数で変更している場合は変更された文字列が引き渡されます。そのため、テキスト値の設定コールバック関数でモデルの値を変更する場合は、テキスト値の取得コールバック関数による変更を考慮して実装する必要があります。

テキスト値設定コールバック関数の複数回の適用

テキスト値の設定コールバック関数は、テキストの編集が確定するごとに呼び出されます。複数回呼び出された場合を考慮して、テキスト値の設定コールバック関数を実装してください。

コールバック関数の登録処理の実装

IExtention を実装したメインクラスの公開メソッド Activate に、コールバック関数の登録処理を実装します。

Activate メソッド : コールバック関数の登録

  • 登録処理に使用するAPI

    対象コールバック関数の登録 API
    シェイプIViewDefinitions.RegisterGetStyleCallback メソッド
    テキストIViewDefinitions.RegisterGetTextStyleCallback メソッド
    コンパートメントアイテムIViewDefinitions.RegisterGetCompartmentItemTextStyleCallback メソッド
    テキスト値(タイトル/ラベル)IViewDefinitions.RegisterTextValueCallback メソッド
    テキスト値(コンパートメントアイテム)IViewDefinitions.RegisterCompartmentItemTextValueCallback メソッド

詳細は IViewDefinitions インタフェース の各メソッドをご参照ください。