クライアント・サイド・イメージ・マップの生成

JavaScript クライアントを作成中の場合は、Rogue Wave® JViews JavaScript Web アプリケーション・サポートを使用してクライアント・サイドのイメージ・マップを作成できます。イメージ・マップは、ホット・スポットまたはクリック可能領域を指し示す付加されたマップを備えるイメージです。Rogue Wave JViews JavaScript Web アプリケーション・サポートでは、クリック可能領域をマネージャーの各グラフィック・オブジェクトに対して生成できます。
クライアント・サイド・イメージ・マップを作成するには、以下の手順に従います。
  • サーバー・サイドでのイメージ・マップの定義
  • クライアント・サイドでのイメージ・マップの使用

サーバー・サイドでのイメージ・マップの定義

Rogue Wave JViews ( IlvManagerServlet) から提供されているサーブレットは Rogue Wave JViews アプリケーションのイメージ・マップを生成することができますが、すべてのグラフィック・オブジェクトに対してクリック可能領域を生成する必要はありません。したがって、サーバー・サイドでは、マネージャー servlet にどの Rogue Wave JViews レイヤーと、どのグラフィック・オブジェクトをイメージ・マップ生成に含めるのかを通知する必要があります。レイヤーとグラフィック・オブジェクトのどちらも、プロパティーを設定して行います。
レイヤーで、変数 managerIlvManager であるとすると、次のようにしてプロパティーを設定することができます。
manager.getManagerLayer(index).setProperty( IlvManagerServlet. 
ImageMapAreaGeneratorProperty, Boolean.TRUE); 
グラフィック・オブジェクトの場合もほとんど同じですが、プロパティーの値がクラス IlvImageMapAreaGenerator のインスタンスである必要があります。このクラスはイメージ・マップの AREA 部分の生成を定義します。
IlvImageMapAreaGenerator の同じインスタンスをすべてのグラフィック・オブジェクトに対して使用できます。
デフォルトでは、IlvImageMapAreaGenerator は中に HREF のない矩形領域を生成します。それをサブクラス化して、グラフィック・オブジェクトの HREF を生成する必要があります。
次に、カスタム IlvImageMapAreaGenerator を作成し、いくつかのオブジェクトに設定する例を示します。
IlvGraphic object1, object2;
....
IlvImageMapAreaGenerator generator = new IlvImageMapAreaGenerator() {
    public String generateHREF(IlvManagerView v, IlvGraphic obj) {
    String href;
    // place here code the 
    // computes the URL depending on the graphic object
    return href;
  }

};

object1.setProperty(IlvManagerServlet.ImageMapAreaGeneratorProperty,
                      generator);
object2.setProperty(IlvManagerServlet.ImageMapAreaGeneratorProperty,
                      generator);
HREF は領域をクリックするとブラウザーがジャンプする URL でも可能ですが、JavaScript™ メソッドの呼び出しでも可能です。
例えば、この XML グラファー例の場合は、次のようにジェネレーターを定義できます。
IlvImageMapAreaGenerator generator = new IlvImageMapAreaGenerator() {

  public String generateALT(IlvManagerView v, IlvGraphic obj) {
     return ((GrapherNode)obj).getLabel();
  }

  public String generateHREF(IlvManagerView v, IlvGraphic obj) {
     return "javascript:doSomething(’"+
             ((GrapherNode)obj).getLabel()+"’)";
  }
};
この例では、生成した HREF が JavaScript メソッド doSomething を呼び出します。このメソッドは HTML ページで定義する必要があります。
エリアのカスタマイズの詳細については、『Java API リファレンス・マニュアル』の IlvImageMapAreaGenerator クラスを参照してください。

クライアント・サイドでのイメージ・マップの使用

JavaScript クライアントにクライアント・サイドのイメージ・マップの生成を通知するには、IlvView JavaScript™ コンポーネントの imageMap プロパティーを true に設定する必要があります。
var view = new IlvView(40, 40, 300, 400);
view.setRequestURL(’/xmlgrapher/demo.xmlgrapher.servlet.XmlGrapherServlet’);
view.setGenerateImageMap(true);
これを設定すると、IlvView コンポーネントがサーブレットにイメージ・マップの生成を要求します。
イメージ・マップを可視にするには、次の 2 つ方法があります。次の処理を行えます。
  • IlvViewshowImageMap メソッドを直接呼び出します。
    view.showImageMap();
  • IlvImageMapInteractor クラスを使用します。このクラスは簡単なインタラクターで、インストールするとイメージ・マップを表示でき、インストールを解除すると非表示にできます。