ダイアグラム・レベルの場合
ダイアグラムのデフォルトのベース・テキスト方向をプログラムで設定するには、現行インスタンスのプロパティーを変更します。
次に例を示します。
IlvDiagrammer diagrammer = new IlvDiagrammer(); diagrammer.setBaseTextDirection(IlvConstants.RIGHT_TO_LEFT);
次のセレクターのコードをダイアグラム・コンポーネントに接続された CSS ファイルに追加することによっても、同じ結果が得られます。
Diagrammer { baseTextDirection : "Right-To-Left" ; }
あるいは、IlvStyleSheetRenderer というベース・テキスト方向プロパティーを設定することができます。
次のセレクターのコードを CSS ファイルに追加します。
StyleSheet { baseTextDirection : "Right-To-Left" ; }
ノード・レベルの場合
特定のノードまたはノード・タイプのグラフィック実装のベース・テキスト方向を定数値 (例えば「右から左」) に設定することができます。
node { baseTextDirection : "Right-To-Left" ; }
あるいは、プロパティーの参照によって定義することもできます。
baseTextDirection スタイルを、このようなノードを説明するセレクターに入れます。
次に例を示します。
node[baseTextDirectionProperty] { baseTextDirection : @baseTextDirectionProperty ; }
プロパティー baseTextDirectionProperty が CSS 内で参照されているとすると (この例にある @baseTextDirectionProperty を参照)、次の Java コードを使用して、選択されたノードのベース・テキスト方向を動的に変更することができます。
nodeObj.setObjectProperty(nodeModelObj, "baseTextDirectionProperty", IlvBidiUtil.LEFT_TO_RIGHT)
リンク・レベルの場合
特定のリンクまたはリンク・タイプのグラフィック実装のベース・テキスト方向を定数値 (例えば「右から左」) に設定することができます。
link { baseTextDirection : "Right-To-Left" ; }
そうすると、プロパティーの参照によって定義することができます。baseTextDirection スタイルを、このようなリンクを説明するセレクターに入れます。次に例を示します。
link[baseTextDirectionProperty] { baseTextDirection : @baseTextDirectionProperty ; }
プロパティー baseTextDirectionProperty が CSS 内で参照されているとすると (この例にある @baseTextDirectionProperty を参照)、次の Java コードを使用して、選択されたリンクのベース・テキスト方向を動的に変更することができます。
link { baseTextDirection : "Right-To-Left" ; }
プロパティー・シートの場合
プロパティー・シートの特定のセルのベース・テキスト方向を設定することができます。
定義は、定数値を割り当てることによって静的とするか、あるいはプロパティーの参照を割り当てることによって動的とすることができます。
例えば、プロパティー・シート内のベース・テキスト方向を動的に定義するには、次のようにします。
node:DiagrammerTable:name[baseTextDirectionProperty] { baseTextDirection : "@baseTextDirectionProperty" ; }
プロパティー・シートの編集が可能である場合は、専用のプロパティー・エディターを使用してベース・テキスト方向を編集することができます。
次に例を示します。
node:DiagrammerPropertySheet:baseTextDirection[baseTextDirectionProperty] { propertyEditor : "@#BaseTextDirectionNameEditor" ; } Subobject#BaseTextDirectionNameEditor { class : "ilog.views.util.beans.editor.IlvBaseTextDirectionNameEditor" ; }
IlvDiagrammer 表の場合
IlvDiagrammerTable オブジェクトの特定のセルのベース・テキスト方向を設定することができます。
定義は、定数値を割り当てることによって静的とするか、あるいはプロパティーの参照を割り当てることによって動的とすることができます。
例えば、IlvDiagrammerTable内のベース・テキスト方向を動的に定義するには、次のようにします。
node[baseTextDirectionProperty]:DiagrammerTable:name { baseTextDirection : @baseTextDirectionProperty; }
ベース・テキスト方向: 適切な JViews Diagrammer コンポーネント
特定のコンポーネントに対するベース・テキスト方向の指定は最高優先度を持ちます。
これは、DIRECTION_INHERITED が、使用されたレベルより高いレベルの値であるため、ベース・テキスト方向が特定のコンポーネントで定義されたときに限られます。
ベース・テキスト方向が指定されるレベル | 指定が適用される追加レベル | コメント |
---|---|---|
ダイアグラム (IlvDiagrammer) | ノード、リンク、プロパティー・シート、IlvDiagrammerTable。 | トップレベル |
ノード | ノードに表示されるテキスト。 | |
リンク | リンクに表示されるテキスト。 | |
プロパティー・シート・セル | プロパティー・シート・セルに表示されるテキスト。 | |
IlvDiagrammerTable | IlvDiagrammerTable セルに表示されるテキスト。 |
実行時における動的変更の有効化
IlvDiagrammer オブジェクトのすべてのテキスト要素に対して同じ値を持つようにするため、または IlvDiagrammer オブジェクトの特定のテキスト要素に 1 つの特定のベース・テキスト方向が割り当てられるようにするため、ベース・テキスト方向を動的に設定することができます。
すべてのテキスト要素に一貫したベース・テキスト方向の動的設定
JViews Diagrammer コンポーネント (ノード、リンク、プロパティー・シート、表) のベース・テキスト方向として次のいずれかの値を設定することは、明示的または静的な割り当てです。
- 左から右
- 右から左
- コンテキスト
特定のコンポーネントについてこれらの設定に影響を及ぼす可能性がある唯一の外部要因は、Java API の呼び出しです。
ベース・テキスト方向を次のいずれかの値に設定すると、ベース・テキスト方向が実行時に外部から影響を受ける可能性があります。
- 継承
- 例えば、テキスト要素が埋め込まれている IlvDiagrammer オブジェクトの基本仕様を変更すると、IlvDiagrammer インスタンスにあるテキスト要素のベース・テキスト方向の値に影響が及びます。
- コンポーネント方向
- 例えば、ダイアグラムが埋め込まれているコンテナーの GUI 方向を変更すると、ダイアグラムにあるテキスト要素のベース・テキスト方向に影響が及びます。
実行時におけるこのような変更によって、IlvDiagrammer オブジェクトに含まれているすべてのテキスト要素のベース・テキスト方向に一貫して動的に影響を及ぼすことができます。
このような実行時の動的変更の場合は、以下の条件を満たす必要があります。
- IlvDiagrammer オブジェクト内のどのオブジェクトのベース・テキスト方向プロパティーに対しても明示的な値が割り当てられていない。
- グラフィック・オブジェクトの最高レベルのベース・テキスト方向の値を変更するには API が使用される。例えば、diagrammerObj.setBaseTextDirection(IlvBidiUtil.RIGHT_TO_LEFT); です。
特定のテキスト要素への 1 つの特定のベース・テキスト方向の動的割り当て
1 つの特定のベース・テキスト方向値を IlvDiagrammer オブジェクトの特定のテキスト要素に動的に割り当てるには、Designer を使用します。
「IlvDiagrammer オブジェクトの特定のテキスト要素に特定の値を割り当てる」を参照してください。
そうすると、次のコードによって、設定を実行時に動的に実装することができます。
designerObj.setObjectProperty(linkObj, "myBaseTextDirection", IlvBidiUtil.RIGHT_TO_LEFT)
ここで、
- linkObj
- テキスト要素を含むリンクのインスタンス。
- “myBaseTextDirection”
- リンク・オブジェクトに追加され、baseTextDirection プロパティーによって参照される式で識別されるパラメーターの名前。この例では、myBaseTextDirection。
- IlvBidiUtil.RIGHT_TO_LEFT
- ベース・テキスト方向の有効な値の 1 つ。