/*FreeMind - A Program for creating and viewing Mindmaps *Copyright (C) 2000-2006 Joerg Mueller, Daniel Polansky, Christian Foltin, Dimitri Polivaev and others. * *See COPYING for Details * *This program is free software; you can redistribute it and/or *modify it under the terms of the GNU General Public License *as published by the Free Software Foundation; either version 2 *of the License, or (at your option) any later version. * *This program is distributed in the hope that it will be useful, *but WITHOUT ANY WARRANTY; without even the implied warranty of *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *GNU General Public License for more details. * *You should have received a copy of the GNU General Public License *along with this program; if not, write to the Free Software *Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* * Created on 12.07.2005 * Copyright (C) 2005-2008 Dimitri Polivaev, Christian Foltin */ package freemind.main; import java.net.URL; import java.text.MessageFormat; import java.util.HashMap; import java.util.Properties; import java.util.ResourceBundle; import java.util.logging.Level; import java.util.logging.Logger; import tests.freemind.FreeMindMainMock; import freemind.common.NamedObject; import freemind.common.TextTranslator; import freemind.main.FreeMindMain.VersionInformation; /** * @author Dimitri Polivaev 12.07.2005 */ public class Resources implements TextTranslator { private FreeMindMain main; static Resources resourcesInstance = null; private HashMap countryMap; private Logger logger = null; private Resources(FreeMindMain frame) { this.main = frame; if (logger == null) { logger = main.getLogger(this.getClass().getName()); } } static public void createInstance(FreeMindMain frame) { if (resourcesInstance == null) { resourcesInstance = new Resources(frame); } } public URL getResource(String resource) { return main.getResource(resource); } public String getResourceString(String resource) { return main.getResourceString(resource); } public String getResourceString(String key, String resource) { return main.getResourceString(key, resource); } static public Resources getInstance() { if(resourcesInstance == null) { createInstance(new FreeMindMainMock()); System.err.println("Resources without FreeMind called."); } return resourcesInstance; } public String getFreemindDirectory() { return main.getFreemindDirectory(); } public VersionInformation getFreemindVersion() { return main.getFreemindVersion(); } public int getIntProperty(String key, int defaultValue) { return main.getIntProperty(key, defaultValue); } public long getLongProperty(String key, long defaultValue) { try { return Long.parseLong(getProperty(key)); } catch (NumberFormatException nfe) { return defaultValue; } } /** * @param key * Property key * @return the boolean value of the property resp. the default. */ public boolean getBoolProperty(String key) { String boolProperty = getProperty(key); return Tools.safeEquals("true", boolProperty); } public Properties getProperties() { return main.getProperties(); } public String getProperty(String key) { return main.getProperty(key); } public ResourceBundle getResources() { return main.getResources(); } public HashMap getCountryMap() { if (countryMap == null) { String[] countryMapArray = new String[] { "de", "DE", "en", "UK", "en", "US", "es", "ES", "es", "MX", "fi", "FI", "fr", "FR", "hu", "HU", "it", "CH", "it", "IT", "nl", "NL", "no", "NO", "pt", "PT", "ru", "RU", "sl", "SI", "uk", "UA", "zh", "CN" }; countryMap = new HashMap(); for (int i = 0; i < countryMapArray.length; i = i + 2) { countryMap.put(countryMapArray[i], countryMapArray[i + 1]); } } return countryMap; } /* To obtain a logging element, ask here. */ public java.util.logging.Logger getLogger(String forClass) { return main.getLogger(forClass); } public void logException(Throwable e) { logException(e, ""); } public void logException(Throwable e, String comment) { logger.log(Level.SEVERE, "An exception occured: " + comment, e); } public String format(String resourceKey, Object[] messageArguments) { MessageFormat formatter = new MessageFormat(getResourceString(resourceKey)); String stringResult = formatter.format(messageArguments); return stringResult; } public NamedObject createTranslatedString(String key) { String fs = getResourceString(key); return new NamedObject(key, fs); } public String getText(String pKey) { return getResourceString(pKey); } }