*概要 [#j6c3495b]

-ユーザが着目(フォーカス)している可視化インタフェース上のデータを,処理モジュールの入力として利用します
-結果として,組み合わせて用いられている可視化インタフェースの表示も更新されます
-連動要請は,可視化インタフェースから行います
-連動実行は,処理モジュールに記述します
-ユーザが着目(フォーカス)しているデータを,処理ツールの入力として利用します
-結果として,組み合わせて用いられている可視化ツールの表示も更新されます
-連動要請の準備,実行ともに,処理ツールまたは可視化ツールで行います
-連動実行は,処理ツールに記述します
-&color(red){バージョン4.0からアクセス方法が変更されています。};

*実装方法 [#o13435a3]

&ref(opelink.png,,40%,);
&ref(FocusExecute.png,,20%,);
-&color(red){バージョン3.50からTouch, Click, Timingが統一され、case 4500:を使用するように変更されています。};
-&color(red){バージョン3.50から,連動対象はfocusExecuteがtrueにセットされているツールに変更されています。};
**連動要請(&color(blue){処理または可視化ツール};) [#dc01b4dd]
***連動要請の準備:フォーカスデータの指定 [#o50394c8]
-処理ツールまたは可視化ツール内で,データにフォーカスを与える記述を書きます
-フォーカスを与えられるデータには,以下のものがあります.
+セグメント,文,キーワードの集合
+メインおよびサブの,セグメント,文,キーワード
+真理値(boolean),整数(int),実数(double),文字列(String)の一次元配列,二次元配列
+メインおよびサブの,真理値,整数,実数,文字列

**連動要請(可視化インタフェース) [#dc01b4dd]
-可視化インタフェース内で,マウスで選択されているデータにフォーカスを与える記述を書きます
-TextData クラスの内部クラス Focus 型のインスタンス text.focus を利用します

-Focus 型
***準備方法:セグメント,文,キーワードの集合の場合 [#pd0d8ca9]
+必要に応じて,以下のメソッドを呼び出して,フォーカスデータを初期化します(&color(blue){処理または可視化ツール};)
-- resetAllFocus()
---セグメント,文,キーワードに関するフォーカスデータのみが初期化されます.
+以下のローカル変数(MiningModuleクラスまたはVisualizationModuleクラスで定義)に,フォーカスするデータの変数をtrueにセットします(&color(blue){処理または可視化ツール};)
|変数名|説明|
|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)|
|String mainFocusString, subFocusString;|ある文字列のフォーカス(第1,第2)(フォーカスなしなら"")|
|double mainFocusDouble, subFocusDouble;|ある実数のフォーカス(第1,第2)(フォーカスなしなら0.0)|
|int mainFocusInteger, subFocusInteger;|ある整数のフォーカス(第1,第2)(フォーカスなしなら0)|
|boolean focusKeywords[];|各キーワードのフォーカスのon, off(添え字にはキーワード番号を用いる)|
|boolean focusSentences[];|各文のフォーカスのon, off(添え字には文番号を用いる)|
|boolean focusSegments[];|各セグメントのフォーカスのon, off(添え字にはセグメント番号を用いる)|
+ローカル変数の値を,他のパネルのツールからも参照できるところにコピーする以下のメソッドを呼び出します(&color(blue){処理または可視化ツール};)
--処理ツールの場合(引数に,フォーカスを当てたデータの意味を日本語および英語で記述します.""で省略もできます)
---setFocusSegments(String japaneseCondition, String englishCondition)
---setFocusSentences(String japaneseCondition, String englishCondition)
---setFocusKeywords(String japaneseCondition, String englishCondition)
--可視化ツールの場合
---setFocusSegments()
---setFocusSentences()
---setFocusKeywords()
+セットしていない他のフォーカスにも自動的に値がセットされます.
--セグメントをセットした場合:フォーカスされたセグメントに含まれる文とキーワードにもフォーカスが当てられます
--文をセットした場合:フォーカスされた文を含むセグメントと,フォーカスされた文に含まれるキーワードにもフォーカスが当てられます
--キーワードをセットした場合:フォーカスされたキーワードを含む文とセグメントにもフォーカスが当てられます
--メインとサブのセグメント,文,キーワードは初期化されます
+連動要請処理をするメソッドを呼び出します(&color(blue){処理または可視化ツール};)
-executeAllByFocus()
-executeOthersByFocus()
---コンストラクタ内で focusExecute を true に設定している処理ツールで initializeData() と miningOperations()のcase 4500: を実行 します
---ペアとなっている可視化ツールの initializeData(),displayOperations()のcase 0: を実行します.
***準備方法:メインおよびサブの,セグメント,文,キーワードの場合 [#afc90d1f]
+必要に応じて,以下のメソッドを呼び出して,フォーカスデータを初期化します(&color(blue){処理または可視化ツール};)
-- resetMainSub()
---セグメント,文,キーワードのメイン,サブに関するフォーカスデータのみが初期化されます.
+以下のメソッドを利用して,フォーカスするデータの変数をセットします(&color(blue){処理または可視化ツール};)
--valueに,フォーカスする,セグメント,文,またはキーワードの番号(フォーカスなしは-1)をセットします
--onlyがtrueの場合,セットしたmainまたはsubの他方を-1に初期化します
--処理ツールの場合(引数に,フォーカスを当てたデータの意味を日本語および英語で記述します.""で省略もできます)
---setMainFocusKeyword(int value, String japaneseCondition, String englishCondition, boolean only)
---setSubFocusKeyword(int value, String japaneseCondition, String englishCondition, boolean only)
---setMainFocusSegment(int value, String japaneseCondition, String englishCondition, boolean only)
---setSubFocusSegment(int value, String japaneseCondition, String englishCondition, boolean only)
---setMainFocusSentence(int value, String japaneseCondition, String englishCondition, boolean only)
---setSubFocusSentence(int value, String japaneseCondition, String englishCondition, boolean only)
--可視化ツールの場合
---setMainFocusKeyword(int value, boolean only)
---setSubFocusKeyword(int value, boolean only)
---setMainFocusSegment(int value, boolean only)
---setSubFocusSegment(int value, boolean only)
---setMainFocusSentence(int value, boolean only)
---setSubFocusSentence(int value, boolean only)
+セットしていない他のフォーカスにも自動的に値がセットされます.
--セグメント,文,キーワードの集合のフォーカス用変数で,メインまたはサブがセットされた番号の値がtrueにセットされます.
--セグメント,文,キーワードの集合の場合に準じて,他の集合のフォーカスもセットされます.
+連動要請処理をするメソッドを呼び出します(&color(blue){処理または可視化ツール};)
-executeAllByFocus()
-executeOthersByFocus()
---コンストラクタ内で focusExecute を true に設定している処理ツールで initializeData() と miningOperations()のcase 4500: を実行 します
---ペアとなっている可視化ツールの initializeData(),displayOperations()のcase 0: を実行します.

    例)public void mouseMoved(MouseEvent me) 
          { 
              text.focus.mainFocusSegment = touchSegmentNumber; 
          }
***準備方法:真理値,整数,実数,文字列の場合 [#pd0d8ca9]
+以下のメソッドを利用して,フォーカスするデータの変数をセットします(&color(blue){処理または可視化ツール};)
--setMainFocusBoolean(boolean value)
--setSubFocusBoolean(boolean value)
--setMainFocusInteger(int value)
--void setSubFocusInteger(int value)
--setMainFocusDouble(double value)
--setSubFocusDouble(double value)
--setMainFocusString(String value)
--setSubFocusString(String value)
--setFocusBooleanArray(boolean values[])
--setFocusIntegerArray(int values[])
--setFocusDoubleArray(double values[])
--setFocusStringArray(String values[])
--setFocusBooleanArray2(boolean values[][])
--setFocusIntegerArray2(int values[][])
--setFocusDoubleArray2(double values[][])
+連動要請処理をするメソッドを呼び出します(&color(blue){処理または可視化ツール};)
--executeAllByFocus():すべての処理ツールの処理を実行
--executeOthersByFocus():本メソッドを呼び出したパネル以外の処理ツールの処理を実行
---コンストラクタ内で focusExecute を true に設定している処理ツールで initializeData() と miningOperations()のcase 4500: を実行 します
---ペアとなっている可視化ツールの initializeData(),displayOperations()のcase 0: を実行します.

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

---executeAllByTouch():可視化インタフェース内でマウスで対象に触れたときに,すべての処理モジュールの処理を実行
---executeAllByClick():可視化インタフェース内でマウスでクリックしたときに,すべての処理モジュールの処理を実行
---executeOthersByTouch():可視化インタフェース内でマウスで対象に触れたときに,他の処理モジュールの処理を実行
---executeOthersByClick():可視化インタフェース内でマウスでクリックしたときに,他の処理モジュールの処理を実行

-[注意点]上記メソッドの呼び出しは,それぞれマウスで対象に触れたとき,またはマウスでクリックが行われたときに行って下さい.

**連動実行(可視化インタフェース) [#o5da49af]
**連動実行(処理ツール) [#o5da49af]

-処理モジュールのコンストラクタ内で focusTouchExecute または focusClickExecute の値を true にセットします.(セットしていない場合,連動しません)
-TextData クラスの内部クラス Focus 型のインスタンス text.focus を利用します
-可視化インタフェース内で,Focus 型の変数の内容に応じて,フォーカスされているデータを強調して表示する記述を,miningOperations()のcase 4501: または,case 4502:から呼び出されるところに書きます
+処理ツールのコンストラクタ内で &color(red){focusExecute の値を true}; にセットします.(セットしていない場合,連動しません)
+処理ツール内で,フォーカスされているデータを用いた処理の記述を,miningOperations()のcase 4500: から呼び出されるところに書きます
--フォーカスされているデータの取得には,以下のメソッドを使います.
---boolean[] getFocusKeywords()
---boolean[] getFocusSegments()
---boolean[] getFocusSentences()
---int getMainFocusKeyword()
---int getSubFocusKeyword()
---int getMainFocusSegment()
---int getSubFocusSegment()
---int getMainFocusSentence()
---int getSubFocusSentence()
---boolean getMainFocusBoolean()
---boolean getSubFocusBoolean()
---int getMainFocusInteger()
---int getSubFocusInteger()
---double getMainFocusDouble()
---double getSubFocusDouble()
---String getMainFocusString()
---String getSubFocusString()
---boolean[] getFocusBooleanArray()
---int[] getFocusIntegerArray()
---double[] getFocusDoubleArray()
---String[] getFocusStringArray()
---boolean[][] getFocusBooleanArray2()
---int[][] getFocusIntegerArray2()
---double[][] getFocusDoubleArray2()

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


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

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


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