001: /*
002: * Copyright 1990-2006 Sun Microsystems, Inc. All Rights Reserved.
003: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
004: *
005: * This program is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU General Public License version
007: * 2 only, as published by the Free Software Foundation.
008: *
009: * This program is distributed in the hope that it will be useful, but
010: * WITHOUT ANY WARRANTY; without even the implied warranty of
011: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
012: * General Public License version 2 for more details (a copy is
013: * included at /legal/license.txt).
014: *
015: * You should have received a copy of the GNU General Public License
016: * version 2 along with this work; if not, write to the Free Software
017: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
018: * 02110-1301 USA
019: *
020: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
021: * Clara, CA 95054 or visit www.sun.com if you need additional
022: * information or have any questions.
023: */
024:
025: package com.sun.jumpimpl.module.installer;
026:
027: import com.sun.jump.common.JUMPAppModel;
028: import com.sun.jump.common.JUMPApplication;
029: import java.net.MalformedURLException;
030: import java.net.URL;
031:
032: /**
033: * Representation of an XLET application.
034: */
035: public class XLETApplication extends JUMPApplication {
036:
037: /**
038: * The name of the directory to hold XLET and Main icons
039: */
040: private final static String REPOSITORY_ICONS_DIRNAME = "./icons";
041:
042: public static final String CLASSPATH_KEY = "XLETApplication_classpath";
043: public static final String BUNDLE_KEY = "XLETApplication_bundle";
044: public static final String INITIAL_CLASS_KEY = "XLETApplication_initialClass";
045: private String contentStoreDir = null;
046:
047: /**
048: * Create an instance of an application.
049: *
050: * @param bundle The name of the bundle the application belongs to
051: * @param clazz The class name of the application
052: * @param classpath The path to the application
053: * @param title The application's title, can be null
054: * @param iconPath The location of the application's icon in, can be null
055: */
056: public XLETApplication(String contentStoreDir, String bundle,
057: String clazz, URL classpath, String title, URL iconPath,
058: int id) {
059:
060: super (title, iconPath, JUMPAppModel.XLET, id);
061: this .contentStoreDir = contentStoreDir;
062: addProperty(INITIAL_CLASS_KEY, clazz);
063: if (classpath != null) {
064: addProperty(CLASSPATH_KEY, classpath.getFile());
065: }
066: addProperty(BUNDLE_KEY, bundle);
067: }
068:
069: /**
070: * Get the name of the bundle this application belongs to
071: * @return the bundle this application belongs to
072: */
073: public String getBundle() {
074: return getProperty(BUNDLE_KEY);
075: }
076:
077: /**
078: * Set the bundle name of the application.
079: * @param bundle the bundle this application belongs to
080: */
081: public void setBundle(String bundle) {
082: addProperty(BUNDLE_KEY, bundle);
083: }
084:
085: /**
086: * Set the classpath value of this application
087: * @param classpath the classpath value
088: */
089: public void setClasspath(URL classpath) {
090: if (classpath != null) {
091: addProperty(CLASSPATH_KEY, classpath.getFile());
092: }
093: }
094:
095: /**
096: * Get the classpath value of this application
097: * @return the classpath value
098: */
099: public URL getClasspath() {
100: URL url = null;
101: try {
102: url = new URL("file", null, getProperty(CLASSPATH_KEY));
103: } catch (MalformedURLException ex) {
104: ex.printStackTrace();
105: }
106: return url;
107: }
108:
109: /**
110: * Set the initial class of this application
111: * @param initialClass the initial class of this application
112: */
113: public void setInitialClass(String initialClass) {
114: addProperty(INITIAL_CLASS_KEY, initialClass);
115: }
116:
117: /**
118: * Get the path to the application's icon.
119: * @return A URL defining the path to the icon in
120: * the downloaded content.
121: */
122: public URL getIconPath() {
123: String file = getProperty(ICONPATH_KEY);
124: URL url = null;
125: try {
126: url = new URL("file", null, file);
127: } catch (MalformedURLException ex) {
128: ex.printStackTrace();
129: }
130: return url;
131: }
132: }
|