色テーマ・タグには、マップの様々なリージョンを様々な色に関連付ける機能があります。各色は、バケットと呼ばれるデータ値の範囲を表し、リージョンの色はデータが属しているバケットによって異なります。たとえば、このタグを使用して、様々な州での製品の人気度を表す色の範囲を特定して、製品の人気がない州を赤、製品の人気がある州を緑にできます。
色テーマを使用するには、開発者は使用する色を指定する必要があります。これを行うには、バケットの合計数と最小色/最大色の値を定義するか、または使用する個別の色のリストを定義します。
マップで1度に参照可能な色テーマは1つのみです。
色テーマでは、基本のモデルを使用して、テーマで表示されるデータを抽象化します。具体的なモデル・クラスは、oracle.adf.view.faces.bi.model.GeoMapDataModel
です。GeoMapDataModelには、各色リージョンに関連付けられている場所およびデータに関する情報が含まれています。モデルを設定するには、mapColorThemeタグのvalue属性を使用します。
色テーマは、minColor属性およびmaxColor属性で指定されている特定の範囲の色のグラデーションによって定義できます。この場合、マップでは、テーマに関連付けられているデータが、bucketCount属性で指定されている数のバケットに分割されます。その後、minColorからmaxColorまでの範囲とその間のグラデーションの色が計算され、各バケットに割り当てられます。
次の例では、色テーマにminColor = #000000、maxColor = #ffffffおよびbucketCount = 5が指定されているため、5つのバケットの色は#000000、#444444、#888888、#bbbbbbおよび#ffffffになります。
<dvt:map ...map attributes...> <dvt:mapColorTheme id="mapColorTheme1" themename="MAP_STATES_NAME" locationColumn="POLYGON_NAME" bucketCount="5" minColor="#000000" maxColor="#ffffff" value="#{backingBean.geoMapModel}"/> </dvt:map>
属性で設定した個別の色のリストによって、色テーマを定義することもできます。この場合、各バケットは、colorListに明示的に指定されている色によって表されます。colorListは、色の配列またはセミコロンで区切った文字列にできます。
次の例では、テーマのcolorListが「#ff0000;#00ff00;#0000ff」であるため、最初のバケットの色が#ff0000、2番目のバケットの色が#00ff00、3番目のバケットの色が#0000ffになります。
<dvt:map ...map attributes...> <dvt:mapColorTheme id="mapColorTheme1" themename="MAP_STATES_NAME" colorList = "#ff0000; #00ff00; #0000ff" value="#{backingBean.geoMapModel}"/> </dvt:map>
この色テーマ・レイヤーのベースとするベース・マップ・テーマがthemeName属性によって指定されています。このベース・マップ・テーマによって、色付けされたリージョンと色付けされていないリージョンの配置が決定されます。また、ベース・マップ・テーマとベース・マップは同じデータソースに属している必要があります。
OracleがホスティングするeLocationサービスを使用してMapコンポーネントを構成する場合は、このタグのthemeName属性を次の5つのいずれかに設定する必要があります。
データ・モデルには、選択したベース・マップ・テーマに応じて対応する多角形の名前が必要です。MAP_STATES_ABBRVを選択した場合、データ・モデルには行を該当する多角形と一致させるための州略称が必要です。
デフォルトでは、mapColorThemeのIDは、凡例またはテーマ選択ダイアログにテーマが表示される場合のラベルとして使用されます。ただし、各mapColorThemeタグには、テーマのオプション・ラベルとして機能する次の属性があります。
legendLabels属性では、凡例の各バケットのラベルも指定できます。このリストには、文字列の配列またはセミコロンで区切られた文字列を使用できます。
色テーマでは、mapToolbarの長方形選択ツール、円選択ツール、多角形選択ツールまたは点選択ツールを使用してマップ上のリージョンを1つ以上選択する機能がサポートされています。ユーザーがマップ上の選択済領域を定義すると、この選択領域に含まれる事前定義済のすべてのテーマ・リージョン(色ありまたは色なし)が強調表示され、selectionListenerが起動されます。
型 | フェーズ | 説明 |
---|---|---|
oracle.adf.view.faces.bi.event.MapSelectionEvent | リクエスト値の適用 | ユーザーがマップ上でリージョンの選択を完了するか、リージョンの選択を解除すると、MapSelectionEventが起動されます。長方形ツール、円形ツール、多角形ツールまたは点ツールを使用してリージョンを選択でき、マップ上で右クリックすると選択が解除されます。 |
oracle.adf.view.faces.bi.event.MapClickActionEvent | リクエスト値の適用 | ユーザーがテーマの要素を左クリックまたは右クリックすると、MapClickActionEventが起動されます。 |
名前 | 型 | ELのサポート | 説明 |
---|---|---|---|
id | java.lang.String | なし | このコンポーネントのID。 |
themeName | java.lang.String | あり | このテーマ層のベースとする事前定義済のテーマを指定します。テーマとベース・マップは同じデータソースに属している必要があります。テーマはmapbuilderで定義します。詳細は、MapViewerのドキュメントを参照してください。 |
shortLabel | java.lang.String | なし | 凡例に表示するこのテーマのラベルを指定します。この属性を指定しないと、テーマのIDが凡例のラベルとして使用されます。 |
menuLabel | java.lang.String | なし | ツールバーから呼び出されるThemeSelectionDialogおよびSelectMenuItemに表示するこのテーマのラベルを指定します。この属性を指定しないと、テーマのIDが使用されます。 |
minZoom | int | なし | このテーマを最小限どのズーム・スケールまで表示できるかを指定します。 |
maxZoom | int | なし | このテーマを最大限どのズーム・スケールまで表示できるかを指定します。 |
legendLabels | java.lang.String | なし | 凡例に表示される各バケットのラベルを指定します。複数のバケットのラベルを指定するには、文字列配列をこの属性にバインドするか、セミコロンで区切られた文字列を使用します。たとえば、この属性の値がitem1;item2;item3の場合、凡例に表示される第1バケットのラベルはitem1、第2バケットのラベルはitem2、第3バケットのラベルはitem3になります。 |
minColor | java.lang.String | なし | 最小の値を持つバケットの色を指定します。有効な値はRGB 16進数です。たとえば、黒を指定するには、color="#000000"とします。デフォルト値は#33FF33です。 ユーザーがcolorListの値を指定した場合、この属性は無視されます。 ADFマップでは、minColor、maxColorおよびbucketCountの値を使用して、各バケットの色が決定されます。たとえば、minColor = #000000、maxColor = #ffffff、bucketCount = 5と設定した場合、4つのバケットの色は、#000000、#444444、#888888、#bbbbbb、#ffffffになります。 |
maxColor | java.lang.String | なし | 最大の値を持つバケットの色を指定します。有効な値はRGB 16進数です。たとえば、黒を指定するには、color="#000000"とします。デフォルト値は##FF3333です。 ユーザーがcolorListの値を指定した場合、この属性は無視されます。 ADFマップでは、minColor、maxColorおよびbucketCountの値を使用して、各バケットの色が決定されます。たとえば、minColor = #000000、maxColor = #ffffff、bucketCount = 5と設定した場合、4つのバケットの色は、#000000、#444444、#888888、#bbbbbb、#ffffffになります。 |
bucketCount | int | なし | colorThemeのバケットの数を指定します。ADFマップでは、この属性の値に基づき、データが一連のバケットに自動的に分割されます。たとえば、テーマのデータに含まれる最小値が10で、最大値が50である場合、この属性の値を4に設定すると、4つのバケットの範囲はそれぞれ、10から20、20から30、30から40、40から50になります。 |
colorList | java.lang.String | なし | 各バケットの色を指定します。複数のバケットの色を指定するには、色配列をこの属性にバインドするか、セミコロンで区切られた文字列を使用します。色はRGB 16進数で指定できます。たとえば、この属性の値が#ff0000;#00ff00;#0000ffの場合、第1バケットの色は赤、第2バケットの色は緑、第3バケットの色は青になります。 |
selectionListener | java.lang.String | なし | 選択リスナーへのメソッド・リファレンス。引数としてMapSelectionEventを取るバッキングBeanメソッドを参照します。MapSelectionEventには、選択されたリージョンに関する情報が含まれます。サンプル・コードを次に示します。
public void processSelection(MapSelectionEvent mapSelectionEvent) { Iterator iterator = mapSelectionEvent.getIterator(); while (iterator.hasNext()) { DataContent dt = (DataContent)iterator.next(); String selectedLocation = dt.getLocationName(); System.out.println (selectedLocation); } } |
locationColumn | java.lang.String | なし | テーマの基になる表の列に含まれる多角形の名前を指定します。この列は、value属性のmapModelの場所列との結合に使用されます。 |
clickAction | java.lang.String | なし | マップのナビゲーション処理を実行し、結果文字列を返すバッキングBeanメソッドを参照します。静的な結果文字列を指定することもできます。JSF NavigationHandlerは、アプリケーション構成リソース・ファイル内のナビゲーション・ルールにその結果文字列を照らし合わせて、次に表示するページを選択します。ナビゲーション・ルールはアプリケーションによって書き込まれます。 |
clickListener | java.lang.String | なし | クリック・リスナーへのメソッド・リファレンス。引数としてMapClickActionEventを取るバッキングBeanメソッドを参照します。MapClickActionEventには、クリックされたポイントに関する情報が含まれます。サンプル・コードを次に示します。
public void processMouseClick(MapClickActionEvent mapClickActionEvent) { if (mapClickActionEvent.getDataContent() != null) { DataContent dt = mapClickActionEvent.getDataContent(); System.out.println ("Location Name: " + dt.getLocationName()); } System.out.println("MouseX " + mapClickActionEvent.getMouseX()); System.out.println("MouseY " + mapClickActionEvent.getMouseY()); } |
leftClickBehavior | java.lang.String | なし | ユーザーがテーマの要素を左クリックしたときの動作を指定します。有効なテーマの値は次のとおりです。
|
rightClickBehavior | java.lang.String | なし | ユーザーがテーマの要素を右クリックしたときの動作を指定します。有効なテーマの値は次のとおりです。
|
useWindow | boolean | なし | このコマンドで起動するプロセスを第2のダイアログ・ウィンドウで起動するかどうかを指定します。useWindowは、ダイアログの場合、つまりactionがdialog:から始まる場合にのみ機能します。ダイアログを既存のウィンドウ内に表示する場合には、useWindowをfalseに設定してください。 |
windowWidth | int | なし | useWindowがtrueである場合に、ウィンドウの幅を指定します。 |
windowHeight | int | なし | useWindowがtrueである場合に、ウィンドウの高さを指定します。 |
infoWindowCallback | java.lang.String | なし | 情報ウィンドウのデフォルトのテキストをオーバーライドするためのコールバックを指定します。 |
rendered | boolean | なし | テーマをレンダリングするかどうかを指定します |
opacity | int | なし | テーマの色の不透明度を指定します。有効な値の範囲は0から100です。0を指定すると、色が完全に透明になり、100を指定すると色が完全に不透明になります。デフォルト値は40です。 |
value | java.lang.String | なし | テーマのデータ・モデルを指定します。oracle.adf.view.faces.bi.model.GeoMapDataModelのインスタンスである必要があります。 |