001    // This file is part of the program FRYSK.
002    //
003    // Copyright 2005, Red Hat Inc.
004    //
005    // FRYSK is free software; you can redistribute it and/or modify it
006    // under the terms of the GNU General Public License as published by
007    // the Free Software Foundation; version 2 of the License.
008    //
009    // FRYSK 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 for more details.
013    // 
014    // You should have received a copy of the GNU General Public License
015    // along with FRYSK; if not, write to the Free Software Foundation,
016    // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
017    // 
018    // In addition, as a special exception, Red Hat, Inc. gives You the
019    // additional right to link the code of FRYSK with code not covered
020    // under the GNU General Public License ("Non-GPL Code") and to
021    // distribute linked combinations including the two, subject to the
022    // limitations in this paragraph. Non-GPL Code permitted under this
023    // exception must only link to the code of FRYSK through those well
024    // defined interfaces identified in the file named EXCEPTION found in
025    // the source code files (the "Approved Interfaces"). The files of
026    // Non-GPL Code may instantiate templates or use macros or inline
027    // functions from the Approved Interfaces without causing the
028    // resulting work to be covered by the GNU General Public
029    // License. Only Red Hat, Inc. may make changes or additions to the
030    // list of Approved Interfaces. You must obey the GNU General Public
031    // License in all respects for all of the FRYSK code and other code
032    // used in conjunction with FRYSK except the Non-GPL Code covered by
033    // this exception. If you modify this file, you may extend this
034    // exception to your version of the file, but you are not obligated to
035    // do so. If you do not wish to provide this exception without
036    // modification, you must delete this exception statement from your
037    // version and license this file solely under the GPL without
038    // exception.
039    package frysk.gui.common;
040    
041    // If you're trying to run the source window in eclipse, comment the next line out
042    import java.io.File;
043    import java.io.FileInputStream;
044    import java.util.MissingResourceException;
045    import java.util.PropertyResourceBundle;
046    import java.util.ResourceBundle;
047    
048    public class Messages {
049            // Comment the first line and uncomment the second if running in eclipse
050            private static String[] BUNDLE_PATHS = null;
051            private static final String BUNDLE_NAME = "/messages.properties"; //$NON-NLS-1$
052    //      private static final String BUNDLE_NAME = "frysk-gui/frysk/gui/common"+"/messages.properties"; //$NON-NLS-1$
053    
054            private static ResourceBundle RESOURCE_BUNDLE;
055    
056            private Messages(){}
057            
058            public static void setBundlePaths(String[] paths){
059                    BUNDLE_PATHS = paths;
060                    
061                    for(int i = 0; i < BUNDLE_PATHS.length; i++){
062                            try{
063                                    Messages.RESOURCE_BUNDLE = new PropertyResourceBundle(new FileInputStream(new File(BUNDLE_PATHS[i] + BUNDLE_NAME)));
064                            }
065                            catch (Exception e){
066                                    continue;
067                            }
068    
069                            return;
070                    }
071                    
072                    System.err.println("Could not find resource bundle for externalized strings");
073                    System.exit(1);
074            }
075            
076    
077    
078            public static String getString(String key) {
079                    try {
080                            return RESOURCE_BUNDLE.getString(key);
081                    } catch (MissingResourceException e) {
082                            return '!' + key + '!';
083                    } catch (Exception e1) {
084                            return '!' + key + '!';
085                    }
086                    
087            }
088    
089    }