*概要 [#idc005f9]

-異なるパネルにセットされている可視化ツールの表示を変更します
-ユーザが着目(フォーカス)しているデータを,他の可視化ツール上でも強調表示します
-連動要請は,処理ツールまたは可視化ツールから行います
-連動実行は,可視化ツールに記述します

*実装方法 [#n6984dc1]

&ref(FocusRepaint.png,,20%,);
-&color(red){バージョン3.50からTouch, Click, Timingが統一され、case 4500:を使用するように変更されています。};
**連動要請(可視化ツール) [#h8a168af]
-可視化ツール内で,データにフォーカスを与える記述を書きます
-TextData クラスの内部クラス Focus 型のインスタンス text.focus を利用します
--&color(red){バージョン4.0から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)|
-フォーカス情報の初期化用メソッド
--上記のすべての変数がフォーカスなしの状態にセットされます.
--




-可視化ツール内で,スーパークラスで用意されている以下のメソッドを呼び出すことで,他の可視化ツールの表示を更新( displayOperations()のcase 4500: を実行)します
---repaintOthersByFocus():本メソッドを呼び出したパネル以外の可視化ツールの表示を更新


**連動実行(可視化ツール) [#m668232b]

-TextData クラスの内部クラス Focus 型のインスタンス text.focus を利用します
-可視化ツール内で,Focus 型の変数の内容に応じて,フォーカスされているデータを強調して表示する記述を,displayOperations()のcase 4500: から呼び出されるところに書きます

    例)void drawForLinkage(Graphics2D g2)
          { 
              if(text.focus.mainFocusSegment >= 0) { 
                  g2.setColor(Color.red); drawNodeName(g2, text.focus.mainFocusSegment); 
              }	 
          }

*フォーカス情報による可視化連動の処理フロー [#s80b3bc9]

&ref(FocusFramework.png,,20%,);
-&color(red){バージョン4.00から、着目情報をセットする変数が変更されています。};
-&color(red){バージョン3.50から、Touch, Click, Timingが、以下に統一されています。};
---repaintOthersByFocus()
---executeAllByFocus()
---executeOthersByFocus()

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS