*概要 [#idc005f9] -異なるパネルにセットされている可視化インタフェースの表示を変更します -特に,ユーザが着目(フォーカス)している可視化インタフェース上のデータを,他の可視化インタフェース上でも強調表示します -連動要請と連動実行は,それぞれ別の可視化インタフェースで行います *実装方法 [#n6984dc1] &ref(displink.png,,40%,); **連動要請(可視化インタフェース) [#h8a168af] -可視化インタフェース内で,マウスで選択されているデータにフォーカスを与える記述を書きます -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)| |String mainFocusString, subFocusString;|ある文字列のフォーカス(第1,第2)(フォーカスなしなら"")| |double mainFocusDouble, subFocusDouble;|ある実数のフォーカス(第1,第2)(フォーカスなしなら0.0)| |int mainFocusInteger, subFocusInteger;|ある整数のフォーカス(第1,第2)(フォーカスなしなら0)| 例)public void mouseMoved(MouseEvent me) { text.focus.mainFocusSegment = touchSegmentNumber; } -可視化インタフェース内で,スーパークラスで用意されている以下のメソッドを呼び出すことで,他の可視化モジュールの表示を更新( displayOperations()のcase 4501:(Touchの場合)または, case 4502:(Clickの場合) を実行)します ---repaintOthersByTouch():可視化インタフェース内でマウスで対象に触れたときに,他の可視化インタフェースの表示を更新 ---repaintOthersByClick():可視化インタフェース内でマウスでクリックしたときに,他の可視化インタフェースの表示を更新 -[注意点]上記メソッドの呼び出しは,それぞれマウスで対象に触れたとき,またはマウスでクリックが行われたときに行って下さい. **連動実行(可視化インタフェース) [#m668232b] -TextData クラスの内部クラス Focus 型のインスタンス text.focus を利用します -可視化インタフェース内で,Focus 型の変数の内容に応じて,フォーカスされているデータを強調して表示する記述を,displayOperations()のcase 4501: または,case 4502:から呼び出されるところに書きます 例)void drawForLinkage(Graphics2D g2) { if(text.focus.mainFocusSegment >= 0) { g2.setColor(Color.red); drawNodeName(g2, text.focus.mainFocusSegment); } } &ref(focus_stream.png,,45%,);