001 /* PAVLOV -- Multiple Choice Study System
002 * Copyright (C) 2000 - 2004 T.J. Willis
003 *
004 * This program is free software; you can redistribute it and/or
005 * modify it under the terms of the GNU General Public License
006 * as published by the Free Software Foundation; either version 2
007 * of the License, or (at your option) any later version.
008 *
009 * This program is distributed in the hope that it will be useful,
010 * but WITHOUT ANY WARRANTY; without even the implied warranty of
011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
012 * GNU General Public License for more details.
013 *
014 * You should have received a copy of the GNU General Public License
015 * along with this program; if not, write to the Free Software
016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
017 *
018 * $Header: /cvsroot/pavlov/net/sourceforge/pavlov/main/standalone/ResourceBroker.java,v 1.4 2004/07/01 05:50:20 tj_willis Exp $
019 */
020 package net.sourceforge.pavlov.main.standalone;
021 import java.util.MissingResourceException;
022 import java.util.ResourceBundle;
023 import java.io.File;
024 import java.net.URL;
025
026 public class ResourceBroker
027 {
028
029 // From SwingUIFactory
030 public static final String SKINS_DEFAULT_DIR = "skins.default";
031 public static final String THEMES_DEFAULT_DIR = "themes.default";
032 public static final String ABOUT_IMAGE = "about.image";
033 public static final String INCORRECT_TITLE = "incorrect.title";
034 public static final String SKINS_ERROR_DEFAULT = "skins.error.default";
035 public static final String QUIT = "pavlov.quit";
036 public static final String LIBRARY_ERROR = "library.error";
037 public static final String USER_NULL = "user.null";
038 //public static String CHAPTER_NULL = "chapter.null";
039 public static final String QUIZVIEW_ERROR_CREATE = "quizview.error.create";
040 public static final String LOGIN_ERROR = "login.error";
041 public static final String HARDCOPY_ERROR = "hardcopy.error";
042 public static final String HELPSET_URL = "helpset.url";
043 public static final String BOOK_NULL = "book.null";
044 public static final String CHAPTER_NULL = "chapter.null";
045 public static final String LIBRARY_NULL = "library.null";
046
047 //from AbstractPavlovApplication.java
048 public static final String LIBRARY_DIR = "library.dir";
049 public static final String STATUS_LOADING_PLUGLETS = "status.loading.pluglets";
050 public static final String STATUS_LOADING_LIBRARY = "status.loading.library";
051 public static final String STATUS_LOGGING_IN = "status.logging.in";
052 public static final String STATUS_VALIDATING_STATISTICS= "status.validating.statistics";
053 public static final String STATUS_CONFIGURING_THEMES = "status.configuring.themes";
054 public static final String STATUS_CONFIGURING_UI = "status.configuring.ui";
055 public static final String STATUS_CREATING_LIBRARY_VIEW = "status.creating.library.view";
056 public static final String STATUS_CLOSING_SPLASH_SCREEN = "status.closing.splash.screen";
057 public static final String USER_SAVING_ERROR = "user.saving.error";
058 public static final String FEEDBACK_PLUGLET_DIRECTORY = "pluglet.feedback.directory";
059 public static final String VELOCITY_PLUGLET_DIRECTORY = "pluglet.velocity.directory";
060 public static final String STRATEGY_PLUGLET_DIRECTORY = "pluglet.strategy.directory";
061 public static final String TOOL_PLUGLET_DIRECTORY = "pluglet.tool.directory";
062
063
064 //from Pavlov.java
065 public static final String TITLE ="pavlov.title";
066
067 // General use
068 public static final String CORRECT = "pavlov.correct";
069 public static final String INCORRECT = "pavlov.incorrect";
070 public static final String PAVLOV_CORRECT = "pavlov.correct";
071 public static final String PAVLOV_INCORRECT = "pavlov.incorrect";
072 public static final String PAVLOV_QUESTIONS = "pavlov.questions";
073 public static final String PAVLOV_ANSWERS = "pavlov.answers";
074 public static final String PAVLOV_QUIZ = "pavlov.quiz";
075 public static final String PAVLOV_QUIZZES = "pavlov.quizzes";
076 public static final String PAVLOV_SCORE = "pavlov.score";
077 public static final String PAVLOV_LOGIN = "pavlov.login";
078
079 static ResourceBundle resources = null;
080 static ResourceBroker instance = null;
081
082 private ResourceBroker()
083 {
084 super();
085 try {
086 resources = ResourceBundle.getBundle("Pavlov");
087 } catch (MissingResourceException mre) {
088 System.out.println("Couldn't load Pavlov.properties" +mre);
089 System.out.println("Current locale is: " +java.util.Locale.getDefault());
090 }
091 }
092
093
094 public static ResourceBroker getInstance(){
095 if(instance==null){
096 instance = new ResourceBroker();
097 }
098 return instance;
099 }
100
101 public String getString(final String key){
102 return getString(key,null);
103 }
104
105
106 /**
107 * Returns the named resource value or the given default, if the
108 * resource value is unavailable.
109 *
110 * @param key a <code>String</code> value
111 * @param def a <code>String</code> value
112 * @return a <code>String</code> value
113 */
114 public String getString(final String key, final String def)
115 {
116 try {
117 String la = resources.getString(key);
118 if(la!=null) return la;
119 System.out.println("Can't find resource string: " + key);
120 return def;
121 } catch (Exception ex) {
122 System.out.println("Can't find resource string: " + key);
123 return def;
124 }
125 }
126
127 public File getFile(final String key)
128 {
129 return new File(getString(key));
130 }
131
132 public URL getURL(final String key)
133 throws java.net.MalformedURLException
134 {
135 return new URL(getString(key));
136 }
137
138
139 }