ツールチップ・インタラクターにより、グラフィック・オブジェクト上にマウスを移動すると
カスタマイズしたツールチップを表示することができます。Hitmap 技術を使用して、
サーバーへの往復通信を行わずにクライアント側でツールチップを構成して表示することができます。
JViews では、このインタラクター用の JavaServer™ Faces (JSF) コンポーネントが用意されています。ツールチップ・インタラクター
を使用するには、まず、ツールチップ・インタラクター・タグを JSF ページに挿入する必要があります。
1 つのオブジェクトを定義する場合は、以下のタグを使用します。
<jvf:tooltipInteractor id="tooltipInteractor"/>
インタラクターは、
<jvf:view>
ビューで
以下のように使用できます。<jvf:view id="viewID" interactorId="tooltipInteractor" />
インタラクターは、
<jvdf:mapView>
ビューで
以下のように使用できます。<jvmf:mapView id="mapId" interactorId="tooltipInteractor" />
マウスをグラフィック・オブジェクト上に移動すると、ツールチップが表示されます。
ツールチップ・インタラクターは、
<jvf:view>
および
<jvmf:mapView>
で使用できます。![世界の
天気図にクウェートのツールチップが表示されています。ツールチップには、青い表に白のテキストで、その国の状況、人口クラス、国名、経度と緯度が示されています。](../usrwebmaps/_media/jsftooltipmap_default.jpg)
ツールチップが表示された地図の例。
<jvf:view>
および
<jvmf:mapView>
でのツールチップ・インタラクターの使用方法は、
前のセクションに記載されているとおりです。
しかし、パン・インタラクターとツールチップ・インタラクターを両方同時に使用したい場合があります。
このような目的のために、インタラクター・グループが設けられています。2 つのインタラクターを一緒に使用できるようにするには、以下のようにします。
<jvf:tooltipInteractor id="tooltipInteractor"/> <jvf:panInteractor id="panInteractor" /> <jv:interactorGroup id="panAndTooltip" interactors="panInteractor tooltipInteractor"/> <jvmf:mapView id="mapID" interactorId="panAndTooltip" hitmapLayers="Symbols" ... />
前の例に示されているように、JViews Maps の場合は、
hitmapLayers
属性を使用して、
hitmap データおよび hitmap 情報を生成するレイヤーを決定する必要があります。
詳細は、
<installdir>
/jviews-maps89/samples/jsf-maps-tiled/index.html を参照してください。
ツールチップ・テンプレートの使用
ツールチップ・テンプレートを使用することにより、ツールチップのスタイリングを簡単に効率よく
行えます。ツールチップ・テンプレートを使用するには、以下の例に示されているように、
ツールチップ・インタラクターのテンプレート属性の値を指定する必要があります。
<jvf:tooltipInteractor id="tooltipInteractor" template="tooltip_callback"/>
ツールチップ・テンプレート機能を使用するためには、
Hitmap 情報のツールチップ・データが有効な
JSON
形式でサーバー上に生成されている必要があります。以下に例を示します。jviews_hitInfos={ tooltip:[, {'properties':'values','name':'node1'}, {'properties':'values','implementation':'workflow','name':'Graphics Framework','type':'workflow'}, {'properties':'values','name':'node2'}, {'properties':'values','name':'node4'} ]}
Hitmap 情報のカスタマイズに関する詳細は、
「Hitmap 情報のカスタマイズ」を参照してください。
ツールチップ・テンプレートには、HTML テンプレートと
JavaScript コールバックの 2 つのタイプがあります。
HTML テンプレートの使用
HTML テンプレートを使用する場合、以下の例に示されているようなテンプレートを作成できます。
<jvf:tooltipInteractor id="tooltipInteractor" template="<div style='background:#333399;font-size:70%;font-weight:bold;color:white;'>properties=<%properties%></div>" />
上記のコード例で、
<%properties%>
は、
サーバーから生成された JSON
オブジェクトのキーに相当します。
これは、ツールチップが表示される際に、
ユーザーの JSON
オブジェクトのキーの値に置き換えられます。JavaScript コールバックの使用
JavaScript コールバックを使用するには、
JavaScript コールバックを作成して、
ツールチップが表示される際に呼び出されるツールチップを示す必要があります。
独自の JavaScript コールバックを作成する場合、
コールバック関数で使用するパラメーターが 2 つあります。
名前 | 説明 |
---|---|
view | 表示オブジェクト。 |
index | 現在のグラフィック・エレメントのインデックス。 |
以下のコードは、動的ツールチップを生成する JavaScript コールバック
の例です。
<script type="text/javascript"> function tooltip_callback(view, index) { var message = view.getHitInfos().tooltip[index]; //retrieve the tooltip message of current index var msg = '<table class=\'jviews_tooltip\'>'; for(key in message){ msg += '<tr class=\'jviews_tooltip_title\'><td>'; msg += key; msg += '</td><td>' + message[key] + '</td></tr>'; } msg += '</table>'; return msg; } </script>
JavaScript コールバックを作成した後、
以下のコードを作成して、ツールチップ・インタラクターでコールバックを呼び出すことができます。
<jvf:tooltipInteractor id="tooltipInteractor" template="tooltip_callback" />
詳細は、
<installdir>
/jviews-maps89/samples/jsf-maps-tiled/index.html を参照してください。