*概要 [#j6c3495b]

-ユーザが着目(フォーカス)している可視化ツール上のデータを,処理ツールの入力として利用します
-結果として,組み合わせて用いられている可視化ツールの表示も更新されます
-連動要請は,可視化ツールから行います
-連動実行は,処理ツールに記述します

*実装方法 [#o13435a3]

&ref(opelink.png,,40%,);
-Touch, Click 以外の特定の操作により処理を実行したい時のために,以下がバージョン0.50から追加されています.
--executeAllByTiming()
--executeOthersByTiming()
--focusTimingExecuteがtrueにセットされているモジュール
---case 4503: 
-&color(red){バージョン3.50からTouch, Click, Timingが統一され、case 4500:を使用するように変更されています。};
-&color(red){バージョン3.50からfocusExecuteがtrueにセットされているモジュールに変更されています。};
-説明中のモジュールとは,ツールのことです.
**連動要請(可視化ツール) [#dc01b4dd]
-可視化ツール内で,マウスで選択されているデータにフォーカスを与える記述を書きます
-可視化ツール内で,データにフォーカスを与える記述を書きます
-TextData クラスの内部クラス Focus 型のインスタンス ''&color(red){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)|
-フォーカス情報の初期化用メソッド
--上記のすべての変数がフォーカスなしの状態にセットされます.
|void clear()|フォーカス情報の全初期化|
--

-可視化ツール内で,スーパークラスで用意されている以下のメソッドを呼び出すことで,コンストラクタ内で focusExecute を true に設定している処理ツールの処理を再実行(initializeData() と miningOperations()のcase 4500: ならびに,ペアとなっている可視化ツールの initializeData(),displayOperations()のcase 0: を実行)します.

    例)public void mouseMoved(MouseEvent me) 
          { 
              text.focus.mainFocusSegment = touchSegmentNumber; 
          }
---executeAllByFocus():すべての処理ツールの処理を実行
---executeOthersByFocus():本メソッドを呼び出したパネル以外の処理ツールの処理を実行

-可視化ツール内で,スーパークラスで用意されている以下のメソッドを呼び出すことで,コンストラクタ内で focusTouchExecute , focusClickExecute または focusTimingExecute を true に設定している処理ツールの処理を再実行(initializeData() と miningOperations()のcase 4501: case 4502: または,case 4503: ならびに,ペアとなっている可視化ツールの initializeData(),displayOperations()のcase 0: を実行)します.

---executeAllByTouch():可視化ツール内でマウスで対象に触れたときに,すべての処理ツールの処理を実行
---executeAllByClick():可視化ツール内でマウスでクリックしたときに,すべての処理ツールの処理を実行
---executeAllByTiming():可視化ツール内でTouch, Click 以外の特定の操作をしたときに,すべての処理ツールの処理を実行
---executeOthersByTouch():可視化ツール内でマウスで対象に触れたときに,Touchがあったパネル以外の処理ツールの処理を実行
---executeOthersByClick():可視化ツール内でマウスでクリックしたときに,Clickがあったパネル以外の処理ツールの処理を実行
---executeOthersByTiming():可視化ツール内でTouch, Click 以外の特定の操作をしたときに,特定の操作があったパネル以外の処理ツールの処理を実行

-&color(blue){[注意点]上記メソッドの呼び出しは,それぞれマウスで対象に触れたとき,マウスでクリックが行われたとき,その他特定の操作が行われた時に行って下さい.};

**連動実行(処理ツール) [#o5da49af]

-処理ツールのコンストラクタ内で &color(red){focusTouchExecute,focusClickExecute または  focusTimingExecute の値を true}; にセットします.(セットしていない場合,連動しません)
-処理ツールのコンストラクタ内で &color(red){focusExecute の値を true}; にセットします.(セットしていない場合,連動しません)
-TextData クラスの内部クラス Focus 型のインスタンス text.focus を利用します
-可視化ツール内で,Focus 型の変数の内容に応じて,フォーカスされているデータを強調して表示する記述を,miningOperations()のcase 4501: case 4502: または,case 4503: から呼び出されるところに書きます
-可視化ツール内で,Focus 型の変数の内容に応じて,フォーカスされているデータを強調して表示する記述を,miningOperations()のcase 4500: から呼び出されるところに書きます

    例)if(inputKeywords == 0) {
              for(int i=0;i<keywordNumber;i++) 
                  if(text.focus.focusKeywords[i]) inputKeywordList[inputKeywords++] = i; 
          }

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

&ref(focus_stream.png,,45%,);
-Touch, Click 以外の特定の操作により処理を実行したい時のために,以下がバージョン0.50から追加されています.
---repaintOthersByTiming()
---executeAllByTiming()
---executeOthersByTiming()
-&color(red){バージョン3.50から以下に変更(Touch, Click, Timingが統一)されています。};
---repaintOthersByFocus()
---executeAllByFocus()
---executeOthersByFocus()


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