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 }