001: /*
002: * Copyright (c) 2004 JETA Software, Inc. All rights reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without modification,
005: * are permitted provided that the following conditions are met:
006: *
007: * o Redistributions of source code must retain the above copyright notice,
008: * this list of conditions and the following disclaimer.
009: *
010: * o Redistributions in binary form must reproduce the above copyright notice,
011: * this list of conditions and the following disclaimer in the documentation
012: * and/or other materials provided with the distribution.
013: *
014: * o Neither the name of JETA Software nor the names of its contributors may
015: * be used to endorse or promote products derived from this software without
016: * specific prior written permission.
017: *
018: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
019: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
020: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
021: * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
022: * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
023: * INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
024: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
025: * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
026: * INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
027: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
028: */
029:
030: package com.jeta.forms.project;
031:
032: import javax.swing.ImageIcon;
033:
034: import com.jeta.open.registry.JETARegistry;
035: import com.jeta.open.resources.ResourceLoader;
036:
037: /**
038: * Concrete implementation of ProjectManager for loading form resources during
039: * runtime (as opposed to design time which uses a different ProjectManager).
040: *
041: * @author Jeff Tassin
042: */
043: public class RuntimeProjectManager implements ProjectManager {
044:
045: /**
046: * Creates a <code>RuntimeProjectManager</code> instance.
047: */
048: public RuntimeProjectManager() {
049:
050: }
051:
052: /**
053: * Clears any cached resources such as images. No op for this
054: * implementation.
055: */
056: public void clearResourceCache() {
057:
058: }
059:
060: /**
061: * This method is not required when running in run-mode.
062: *
063: * @return a valid absolute path given a relative path.
064: */
065: public String getAbsolutePath(String relativePath) {
066: return null;
067: }
068:
069: /**
070: * This method is not required when running in run-mode.
071: *
072: * @return a valid relative package/filename given an absolute path.
073: */
074: public String getRelativePath(String absPath) {
075: assert (false);
076: return null;
077: }
078:
079: /**
080: * This method is not required when running in run-mode.
081: *
082: * @return true if the given absolute path lies within one of the source
083: * directories.
084: */
085: public boolean isValidAbsolutePath(String path) {
086: assert (false);
087: return false;
088: }
089:
090: /**
091: * This method is not required when running in run-mode.
092: *
093: * @return true if the given relative resource exists and is a file
094: */
095: public boolean isValidResource(String relpath) {
096: assert (false);
097: return false;
098: }
099:
100: /**
101: * Utility method that loads an image from the CLASSPATH.
102: *
103: * @param imageName
104: * the subdirectory and name of image file (i.e.
105: * images/edit16.gif )
106: * @return a valid Icon for the given imageName. If the imageName is not
107: * found in the CLASSPATH, null is returned.
108: */
109: public ImageIcon loadImage(String imageName) {
110: try {
111: if (imageName != null)
112: imageName = imageName.replace('\\', '/');
113: ResourceLoader loader = (ResourceLoader) JETARegistry
114: .lookup(ResourceLoader.COMPONENT_ID);
115: return loader.loadImage(imageName);
116: } catch (Exception e) {
117: System.out.println("Error loading image: " + imageName);
118: e.printStackTrace();
119: return null;
120: }
121: }
122: }
|