001 /*
002 * Copyright 2002-2004 the original author or authors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005 * use this file except in compliance with the License. You may obtain a copy of
006 * the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013 * License for the specific language governing permissions and limitations under
014 * the License.
015 */
016 package org.springframework.richclient.image;
017
018 import java.awt.Image;
019
020 /**
021 * A interface for retrieving images by key. The key abstracts away the path to
022 * the image resource, effectively acting as an alias. For example, the key
023 * <code>wizard.pageImage</code> may map to a image resource in the classpath
024 * at <code>/images/wizard/title_banner.gif</code>
025 * <p>
026 * <p>
027 * Image source implementations are responsible for resolving the underlying
028 * image resource and loading it into memory. They may also cache image
029 * resources.
030 *
031 * @author Keith Donald
032 */
033 public interface ImageSource {
034
035 /**
036 * Loads the image with the specified key. Caching may or may not be
037 * performed.
038 * <p>
039 * <p>
040 * If the load is successful, the image resource is returned. If the load
041 * fails, a broken image indicator is returned if it is set for this source.
042 * If not set, an exception is thrown.
043 *
044 * @param key
045 * The image key
046 * @return The image.
047 * @throws NoSuchImageResourceException,
048 * if no image could be found and no broken image indicator is
049 * set.
050 */
051 public Image getImage(String key);
052
053 /**
054 * Returns the image resource indexed by the specified key. A resource is a
055 * lightweight pointer to the image in the classpath, filesystem, or
056 * network, and not the actual loaded image itself.
057 *
058 * @param key
059 * The image key.
060 * @return The image resource.
061 */
062 public AwtImageResource getImageResource(String key);
063
064 }