概要 †
- 異なるパネルにセットされている可視化ツールの表示を変更します
- 特に,ユーザが着目(フォーカス)している可視化ツール上のデータを,他の可視化ツール上でも強調表示します
- 連動要請と連動実行は,それぞれ別の可視化ツールで行います
実装方法 †
- Touch, Click 以外の特定の操作により処理を実行したい時のために,以下がバージョン0.50から追加されています.
- repaintOthersByTiming()
- case 4503:
- 説明中のモジュールとは,ツールのことです.
連動要請(可視化ツール) †
- 可視化ツール内で,マウスで選択されているデータにフォーカスを与える記述を書きます
- TextData クラスの内部クラス Focus 型のインスタンス text.focus を利用します
- Focus 型
変数名 | 説明 |
boolean focusKeywords[]; | 各キーワードのフォーカスのon, off |
boolean focusSegments[]; | 各セグメントのフォーカスのon, off |
boolean focusSentences[]; | 各文のフォーカスのon, off |
int mainFocusKeyword, subFocusKeyword; | あるキーワードのフォーカス(第1,第2)(数値はキーワードID,フォーカスなしなら-1) |
int mainFocusSentence, subFocusSentence; | ある文のフォーカス(第1,第2)(数値は文番号,フォーカスなしなら-1) |
int mainFocusSegment, subFocusSegment; | あるセグメントのフォーカス(第1,第2)(数値はセグメント番号,フォーカスなしなら-1) |
- 以下の変数にはアクセス用のメソッドを利用してください
- 下記以外にboolean,int,double,Stringの配列もあります→テキストデータ
ある文字列のフォーカス(第1,第2)(フォーカスなしなら"") |
ある実数のフォーカス(第1,第2)(フォーカスなしなら0.0) |
ある整数のフォーカス(第1,第2)(フォーカスなしなら0) |
- アクセス用メソッド
void setMainFocusString(String word) | フォーカスする文字列のセット(第1) |
void setSubFocusString(String word) | フォーカスする文字列のセット(第2) |
void setMainFocusDouble(double value) | フォーカスする実数のセット(第1) |
void setSubFocusDouble(double value) | フォーカスする実数のセット(第2) |
void setMainFocusInteger(int value) | フォーカスする整数のセット(第1) |
void setSubFocusInteger(int value) | フォーカスする整数のセット(第2) |
String getMainFocusString() | フォーカスする文字列の取得(第1) |
String getSubFocusString() | フォーカスする文字列の取得(第2) |
double getMainFocusDouble() | フォーカスする実数の取得(第1) |
double getSubFocusDouble() | フォーカスする実数の取得(第2) |
int getMainFocusInteger() | フォーカスする整数の取得(第1) |
int getSubFocusInteger() | フォーカスする整数の取得(第2) |
- フォーカス情報の初期化用メソッド
- 上記のすべての変数がフォーカスなしの状態にセットされます.
例)public void mouseMoved(MouseEvent me)
{
text.focus.mainFocusSegment = touchSegmentNumber;
}
- 可視化ツール内で,スーパークラスで用意されている以下のメソッドを呼び出すことで,他の可視化ツールの表示を更新( displayOperations()のcase 4501:(Touchの場合), case 4502:(Clickの場合) ,または,case 4503:(Touch, Click 以外の特定の操作の場合) を実行)します
- repaintOthersByTouch():可視化ツール内でマウスで対象に触れたときに,Touchがあったパネル以外の可視化ツールの表示を更新
- repaintOthersByClick():可視化ツール内でマウスでクリックしたときに,Clickがあったパネル以外の可視化ツールの表示を更新
- repaintOthersByTiming():可視化ツール内でTouch, Click 以外の特定の操作をしたときに,特定の操作があったパネル以外の可視化ツールの表示を更新
- [注意点]上記メソッドの呼び出しは,それぞれマウスで対象に触れたとき,マウスでクリックが行われたとき,その他特定の操作が行われた時に行って下さい.
連動実行(可視化ツール) †
- TextData クラスの内部クラス Focus 型のインスタンス text.focus を利用します
- 可視化ツール内で,Focus 型の変数の内容に応じて,フォーカスされているデータを強調して表示する記述を,displayOperations()のcase 4501: case 4502: または,case 4503: から呼び出されるところに書きます
例)void drawForLinkage(Graphics2D g2)
{
if(text.focus.mainFocusSegment >= 0) {
g2.setColor(Color.red); drawNodeName(g2, text.focus.mainFocusSegment);
}
}
フォーカス情報による可視化連動の処理フロー †
- Touch, Click 以外の特定の操作により処理を実行したい時のために,以下がバージョン0.50から追加されています.
- repaintOthersByTiming()
- executeAllByTiming()
- executeOthersByTiming()