org.seasar.eclipse.common.util
クラス ImageManager

java.lang.Object
  上位を拡張 org.seasar.eclipse.common.util.ImageManager

public class ImageManager
extends Object

Image オブジェクトを管理するためのユーティリティクラスです。

本クラスは、クラスパス上のリソースとして存在するイメージファイルを読み込み、管理する機能を提供します。
また、本クラスのメソッドに対してリソースのパスを指定する場合、先頭にスラッシュ(/)がついていてもいなくても同じパスとして扱います。
たとえば、"org/seasar/uruma/images/xxxImage.png""/org/seasar/uruma/images/xxxImage.png" は同じものとして扱います。

作成者:
y-komori

フィールドの概要
protected static Logger logger
           
 
メソッドの概要
protected static void checkKey(String key)
           
static void dispose()
          ImageManager が管理する ImageRegistry を破棄します。
static Image getImage(String key)
          指定されたキーで登録された画像の Image オブジェクトを返します。
static ImageDescriptor getImageDescriptor(String key)
          指定されたキーで登録された画像の ImageDescriptor オブジェクトを返します。
static void init(Display display)
          ImageManager を初期化します。
protected static void injectField(Class clazz, Field field, Object o)
           
static void injectImages(Class clazz)
          指定されたクラスの定数フィールドに対して、 ImageManager が 管理するオブジェクトをインジェクションします。
protected static boolean isAssignableFrom(Class<?> clazz, Field target)
           
static Image loadImage(String path)
          path で指定された Image オブジェクトを検索し、存在しなければクラスパスからロードします。
static ImageDescriptor loadImageDescriptor(String path)
          path で指定された ImageDescriptor オブジェクトを検索し、存在しなければクラスパスからロードします。
static void loadImages(ResourceBundle bundle)
          ResourceBundle からイメージを読み込み、一括登録します。
static void loadImages(String baseName)
          ResourceBundle からイメージを読み込み、一括登録します。
static void loadImages(String baseName, ClassLoader loader)
          指定したクラスローダの ResourceBundle からイメージを読み込み、一括登録します。
protected static String normalizePath(String path)
           
static Image putImage(String key, ImageData imageData)
          ImageData から生成した Image オブジェクトを登録します。
static Image putImage(String key, String path)
          Image オブジェクトを登録します。
static ImageDescriptor putImageDescriptor(String key, String path)
          ImageDescriptor オブジェクトを登録します。
protected static boolean validateMask(Field field)
           
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

logger

protected static final Logger logger
メソッドの詳細

init

public static void init(Display display)
ImageManager を初期化します。

パラメータ:
display - 本クラスを使用する前に呼び出してください。

getImage

public static Image getImage(String key)
指定されたキーで登録された画像の Image オブジェクトを返します。

パラメータ:
key - キー
戻り値:
見つかった Image オブジェクト。見つからない場合は null

getImageDescriptor

public static ImageDescriptor getImageDescriptor(String key)
指定されたキーで登録された画像の ImageDescriptor オブジェクトを返します。

パラメータ:
key - キー
戻り値:
見つかった ImageDescriptor オブジェクト。見つからない場合は null

loadImage

public static Image loadImage(String path)
path で指定された Image オブジェクトを検索し、存在しなければクラスパスからロードします。

本メソッドでは、まず path をキーと見なしてレジストリから Image オブジェクトを検索します。 Image オブジェクトが見つからない場合、path で示されるリソースをクラスパスからロードして path をキーとしてレジストリに登録します。
この際、path/(スラッシュ)で始まっていてもいなくても構いません。

【例】
loadImage("icons/app.png");

パラメータ:
path - イメージのパス/キー
戻り値:
見つかった Image オブジェクト
例外:
ResourceNotFoundRuntimeException - 指定されたリソースが見つからなかった場合

loadImageDescriptor

public static ImageDescriptor loadImageDescriptor(String path)
path で指定された ImageDescriptor オブジェクトを検索し、存在しなければクラスパスからロードします。

Image オブジェクトではなく ImageDescriptor オブジェクトを返すという点を除き、本メソッドは loadImage(String) メソッドと同じです。
詳細は loadImage(String) メソッドの説明をご覧ください。

パラメータ:
path - イメージのパス/キー
戻り値:
見つかった ImageDescriptor オブジェクト
例外:
ResourceNotFoundRuntimeException - 指定されたリソースが見つからなかった場合

putImage

public static Image putImage(String key,
                             String path)
Image オブジェクトを登録します。

path で示されるリソースをクラスパス上から読み込み、key で示されるキーでレジストリに登録します。
既に同じキーで Image オブジェクトが登録されている場合、上書きします。

パラメータ:
key - キー
path - イメージのパス
戻り値:
登録した Image オブジェクト
例外:
ResourceNotFoundRuntimeException - 指定されたリソースが見つからなかった場合

putImage

public static Image putImage(String key,
                             ImageData imageData)
ImageData から生成した Image オブジェクトを登録します。

既に同じキーで Image オブジェクトが登録されている場合、上書きします。

パラメータ:
key - キー
imageData - ImageData オブジェクト
戻り値:
登録した Image オブジェクト

putImageDescriptor

public static ImageDescriptor putImageDescriptor(String key,
                                                 String path)
ImageDescriptor オブジェクトを登録します。

path で示されるリソースをクラスパス上から読み込み、ImageDescriptor オブジェクトとして key で示されるキーでレジストリに登録します。
既に同じキーで ImageDescriptor オブジェクトが登録されている場合、上書きします。

パラメータ:
key - キー
path - リソースのパス
戻り値:
登録した ImageDescriptor オブジェクト
例外:
ResourceNotFoundRuntimeException - 指定されたリソースが見つからなかった場合

loadImages

public static void loadImages(ResourceBundle bundle)
ResourceBundle からイメージを読み込み、一括登録します。

「key=path」の形式で記述されたプロパティファイルを元にした ResourceBundle から Image オブジェクトを一括して読み込みます。

本メソッドではイメージを ImageDescriptor として登録します。

コーディング例

 ResourceBundle imageResources = ResourceBundle.getBundle("urumaImages");
 ImageManager.loadImages(imageResources);
 

パラメータ:
bundle - リソースバンドルの参照

loadImages

public static void loadImages(String baseName,
                              ClassLoader loader)
指定したクラスローダの ResourceBundle からイメージを読み込み、一括登録します。

「key=path」の形式で記述されたプロパティファイルを元にした ResourceBundle から Image オブジェクトを一括して読み込みます。

本メソッドではイメージを ImageDescriptor として登録します。

パラメータ:
baseName - リソースバンドルの基底名
loader - リソースバンドルを読み込むクラスローダ

loadImages

public static void loadImages(String baseName)
ResourceBundle からイメージを読み込み、一括登録します。

「key=path」の形式で記述されたプロパティファイルを元にした ResourceBundle から Image オブジェクトを一括して読み込みます。

本メソッドではイメージを ImageDescriptor として登録します。

パラメータ:
baseName - リソースバンドルの基底名

injectImages

public static void injectImages(Class clazz)
指定されたクラスの定数フィールドに対して、 ImageManager が 管理するオブジェクトをインジェクションします。
インジェクション対象となるのは、以下の条件を満たすフィールドです。

  1. public static な定数フィールドであること
  2. Image または ImageDescriptor 型のフィールドであること

以上の条件を満たすフィールドに対して、フィールド名をキーとして ImageManager が登録する Image または ImageDescriptor を検索し、見つかればインジェクションを行います。
見つからなかった場合は、Warning ログを出力します。

【例】
以下の例では、ImageHolder クラスの フィールド、IMAGE_AIMAGE_B に対して、 ImageManager が管理するオブジェクトの中から、IMAGE_AIMAGE_B という名前のキーで登録されたオブジェクトをインジェクションします。

                           public class ImageHolder() {
                               public static Image IMAGE_A;
                               public static ImageDescriptor IMAGE_B;
                           }
 
 ImageManager.injectImages(ImageHolder.class);
 

パラメータ:
clazz - 対象クラス

dispose

public static void dispose()
ImageManager が管理する ImageRegistry を破棄します。

再び ImageManager を使用したい場合、init(Display) メソッドを呼び出してください。


injectField

protected static void injectField(Class clazz,
                                  Field field,
                                  Object o)

validateMask

protected static boolean validateMask(Field field)

isAssignableFrom

protected static boolean isAssignableFrom(Class<?> clazz,
                                          Field target)

checkKey

protected static void checkKey(String key)

normalizePath

protected static String normalizePath(String path)


Copyright © 2006-2008 The Seasar Foundation. All Rights Reserved.