<dvt:mapPointTheme>

mapPointTheme map point theme


mapPointThemeタグは、<dvt:map>タグ内で使用して、点のセットをレンダリングします。各点のレンダリングを指定するには、カスタム・イメージまたはビルトイン・イメージを使用するか、またはhtmlタグを指定します。点のテーマによって、各点が適切な位置に表示され、点のスタイルが指定された属性に基づいて適切に指定されます。

各点に関連付けられている位置およびデータは、データ・モデルで指定されています。点のテーマを点スタイルのアイテム・タグとともに使用して、点の表示を指定します。

モデル

点のテーマのデータ・モデルを指定するには、oracle.adf.view.faces.bi.model.GeoMapDataModelのインスタンスを使用する必要があります。

GeoMapDataModelは、GeoRowObjectインスタンスのコレクションであり、これにはGeoObjectインスタンスに保存されている各点の位置情報が格納されています。点の位置は、GeoObjectインスタンスで2つの方法で指定できます。

  1. 緯度および経度を使用します。
  2. 点のテーマによってジオコード化されるアドレスを使用します。マップ構成で、geocoderURLを指定する必要があります。

データ・モデルの作成方法は、javadocを参照してください。

点のレンダリング

点のテーマを点スタイルのアイテムタグとともに使用すると、モデル内の点のレンダリングを指定する様々なオプションが提供されます。

説明および例

ビルトイン・イメージ

点のテーマには、標準、選択済、ホバーの各状態を含むビルトイン・イメージのコレクションがあります。次の点を考慮してください。

  1. すべてのデータ・ポイントで同じイメージを使用します。この場合は、単に点のテーマ・タグでbuiltInImage属性を設定します。
  2. データ値に基づいて異なるイメージを使用します。この場合は、点スタイルのアイテム・タグを1つ以上追加し、各タグでbuiltInImage属性を指定します。

次の例では、すべての点が、デフォルトのオレンジ色の球ではなく、ビルトインのオレンジ色の大きなピンを使用して表示されています。

   <dvt:map ...map attributes...> 
      <dvt:mapPointTheme id= "theme1" value="#{backingBean.geoMapModel}"
                         builtInImage="OrangePinLarge"/>   <-- Changes default rendering of all points -->
   </dvt:map>
            

カスタム・イメージ

データ・モデル内のすべての点にカスタム・イメージを指定するか、または点に関連付けられているデータ値に基づいて異なるイメージを表示するには、1つ以上の点スタイルのアイテム・タグを点のテーマに追加して、適切な属性を指定します。

HTML

customPointCallback属性に値を指定すると、データ・モデルの各点の点のテーマに、点を表すHTMLが返されます。点のテーマは、点の位置にそのHTMLをレンダリングします。

この属性では、引数としてoracle.adf.view.faces.bi.component.geoMap.DataContentオブジェクトを取り、oracle.adf.view.faces.bi.component.geoMap.PointContentのインスタンスを返すメソッド式が使用されます。

次の例では、mapPointThemeがメソッド式backingBean.processPointInfoにバインドされています。

   <dvt:map ...map attributes...> 
        <dvt:mapPointTheme id= "theme1"
                           customPointCallback="#{backingBean.processPointInfo}" 
                           value="#{backingBean.geoMapModel}"/> 
   </dvt:map>
      

カスタムHTMLコンテンツを生成するメソッドは、次のとおりです。

   public PointContent processPointInfo(DataContent dataContent) {
      String pointHTML = "<div>" + dataContent.getValues()[0] + "</div>";
      String selectHTML = "<div><b>You are selected</b></div>"; 
      String hoverHTML = "<div><b>Mouse over</b></div>"; 

      PointContent pContent = new PointContent(pointHTML, selectHTML, hoverHTML);

      return pContent;
   }
      

相互作用力

点のテーマでは、エンド・ユーザーがマップ上の点をクリックしたり、点の上にマウスを置いた場合の様々な動作を指定できます。

アクション・タイプ 説明および例

左クリック

leftClickBehavior属性は、エンド・ユーザーが点を左クリックした場合の動作を定義します。次の例では、ユーザーが点を左クリックすると、ポップアップ・ダイアログが表示されます。ポップアップ・ダイアログは、popupファセットで定義します。

    <dvt:map ...map attributes...> 
      <f:facet name="popup">                  
        <af:dialog title="TestPopup" modal="true">
          <af:panelGroupLayout layout="vertical">                                              
            <af:image id="photoImage" source="#{popupBean.imageSrc}"/>                        
          </af:panelGroupLayout>
        </af:dialog>
      </f:facet>
      <dvt:mapPointTheme id= "theme1"
                        clickListener="#{popupBean.processClickAction}"                                 
                        value="#{backingBean.geoMapModel}"
                        leftClickBehavior="Popup"/>
    </dvt:map>
        

右クリック

rightClickBehavior属性は、エンド・ユーザーが点を右クリックした場合の動作を定義します。次の例では、ユーザーが点を右クリックすると、コンテキスト・メニューが表示されます。コンテキスト・メニューは、rtPopupファセットで定義します。

    <dvt:map ...map attributes...> 
      <f:facet name="rtPopup">   
        <af:menu>
          <af:commandMenuItem text="menu1"/>
          <af:commandMenuItem text="menu2"/>
          <af:commandMenuItem text="menu3"/>
        </af:menu>               
      </f:facet>
      <dvt:mapPointTheme id= "theme1"
                        clickListener="#{popupBean.processClickAction}"                            
                        value="#{backingBean.geoMapModel}"
                        rightClickBehavior="Popup"/>
    </dvt:map>
        

ホバー

hoverBehavior属性は、エンド・ユーザーが点の上にマウスを置いた場合の動作を定義します。次の例では、ユーザーが点にマウスを合わせると、情報ウィンドウが表示されます。

    <dvt:map ...map attributes...> 
      <dvt:mapPointTheme 
                        hoverBehavior="InfoWindow"                                
                        value="#{backingBean.geoMapModel}"/> 
    </dvt:map> 
        

凡例のカスタマイズ

デフォルトでは、mapPointThemeのIDは、凡例またはテーマ選択ダイアログにテーマが表示される場合のラベルとして使用されます。ただし、各mapPointThemeタグには、テーマのオプション・ラベルとして機能する次の属性があります。

凡例の各点の色のラベルは、該当するテーマのGeoMapDataModelを作成するために使用されたラベルによって特定されます。

サポートされている子タグ

点のテーマでは、次の子タグがサポートされています。

イベント

フェーズ 説明
oracle.adf.view.faces.bi.event.MapSelectionEvent リクエスト値の適用 ユーザーがマップ上でリージョンの選択を完了するか、リージョンの選択を解除すると、MapSelectionEventが起動されます。長方形ツール、円形ツール、多角形ツールまたは点ツールを使用してリージョンを選択でき、マップ上で右クリックすると選択が解除されます。
oracle.adf.view.faces.bi.event.MapClickActionEvent リクエスト値の適用 ユーザーがテーマの要素を左クリックまたは右クリックすると、MapClickActionEventが起動されます。

属性

名前 ELのサポート 説明
id java.lang.String なし コンポーネントの識別子
rendered boolean なし テーマをレンダリングするかどうかを指定します
value java.lang.String なし テーマのデータ・モデルを指定します。oracle.adf.view.faces.bi.model.GeoMapDataModelのインスタンスである必要があります。
shortLabel java.lang.String なし 凡例に表示するこのテーマのラベルを指定します。この属性を指定しないと、テーマのIDが凡例のラベルとして使用されます。
menuLabel java.lang.String なし ThemeSelectionDialogおよびSelectMenuItemに表示するこのテーマのラベルを指定します。この属性を指定しないと、テーマのIDが使用されます。
builtInImage java.lang.String なし

この点スタイルのアイテムのビルトイン・イメージを指定します。ビルトイン・イメージにはそれぞれ、一連の標準イメージ、選択したときのイメージおよびマウスカーソルが重ねられたときのイメージがあります。

ビルトイン・イメージは、次のとおりです。

  • OrangePinLarge
  • OrangePinMedium
  • OrangePinSmall
  • OrangeBall
overlayText java.lang.String なし  
overlayStyle java.lang.String なし  
overlayClass java.lang.String なし  
defaultItemLabel java.lang.String なし 凡例の点スタイルのラベルを指定します。pointStyleItemが1つも指定されていない場合は、点テーマのすべての点に対してデフォルトの点イメージが表示されます。この属性を使用すると、pointStyleItemが指定されていない場合に凡例で表示する点のラベルをカスタマイズできます。
animationEffect java.lang.String なし ADSに使用するanimationEffect
minZoom int なし このテーマを最小限どのズーム・スケールまで表示できるかを指定します。
maxZoom int なし このテーマを最大限どのズーム・スケールまで表示できるかを指定します。
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);
    }                        
}                
        
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 なし ユーザーがテーマの要素を左クリックしたときの動作を指定します。有効なテーマの値は次のとおりです。
  • Action: アクション・イベントが発行されます。
  • Popup: ポップアップが表示されます。ポップアップのコンテンツは、マップのポップアップ・ファセットに定義されます。
  • InfoWindow: InfoWindowが表示されます。ユーザーは、infoWindowCallbackによってinfoWindowのコンテンツをさらにカスタマイズできます。
  • None: 何も実行されません。
rightClickBehavior java.lang.String なし ユーザーがテーマの要素を右クリックしたときの動作を指定します。有効なテーマの値は次のとおりです。
  • Popup: ポップアップが表示されます。ポップアップのコンテンツは、マップのrtPopupファセットに定義されます。
  • None: 何も実行されません。
useWindow boolean なし このコマンドで起動するプロセスを第2のダイアログ・ウィンドウで起動するかどうかを指定します。useWindowは、ダイアログの場合、つまりactionがdialog:から始まる場合にのみ機能します。ダイアログを既存のウィンドウ内に表示する場合には、useWindowをfalseに設定してください。
windowWidth int なし useWindowがtrueである場合に、ウィンドウの幅を指定します。
windowHeight int なし useWindowがtrueである場合に、ウィンドウの高さを指定します。
infoWindowCallback java.lang.String なし 情報ウィンドウのデフォルトのテキストをオーバーライドするためのコールバックを指定します。
customPointCallback java.lang.String なし 点をオーバーライドするためのコールバックを指定します。この属性の値は、oracle.adf.view.faces.bi.component.geoMap.PointContentを返すメソッド式であり、パラメータとしてoracle.adf.view.faces.bi.component.geoMap.DataContentを取ります。
このコールバックを指定すると、点ごとにカスタムHTMLを表示できます。DataContentオブジェクトには、点の表示方法を決定するために必要なすべての情報が含まれます。
この属性は、mapPointStyleItemよりも優先順位が高くなっています。そのため、この属性を設定すると、mapPointStyleItemタグはすべて無視されます。
customLegendCallback java.lang.String なし pointThemeに対してcustomPointCallbackを使用する場合に、凡例を表示するためのコールバックを指定します。
hoverBehavior java.lang.String なし ユーザーがpointThemeの点の上にマウス・ポインタを置いたときの動作を指定します。有効なテーマの値は次のとおりです。
  • None: 何も実行されません。
  • Tooltip: ツールチップが表示されます。
  • InfoWindow: 情報ウィンドウが表示されます。
デフォルト値はNoneです。