/** *######################################################################### * Configuration * A component of the GAI application, part of the Greenstone digital * library suite from the New Zealand Digital Library Project at the * University of Waikato, New Zealand. * *

* * Copyright (C) 1999 New Zealand Digital Library Project * *

* * 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., 675 Mass Ave, Cambridge, MA 02139, USA. *######################################################################## */ package org.greenstone.admin; import java.awt.Color; import java.util.Locale; import java.util.Hashtable; import java.util.StringTokenizer; // eventually this class will hold configuration settings from a config file. For now, lets use static info // loosely based around Gatherer Configuration public class Configuration { static private Hashtable hash = null; /** The first of three patterns used during tokenization, this pattern handles a comma separated list. */ static final private String TOKENIZER_PATTERN1 = " ,\n\t"; /** The second of three patterns used during tokenization, this pattern handles an underscore separated list. */ static final private String TOKENIZER_PATTERN2 = "_\n\t"; /** The last of three patterns used during tokenization, this pattern handles an comma separated list containing spaces. */ static final private String TOKENIZER_PATTERN3 = ",\n\t"; public Configuration() { hash = new Hashtable(); // load up all the initial stuff hash.put("admin.log", "true"); hash.put("admin.conf", "true"); hash.put("admin.ext", "true"); hash.put("admin.monitor", "true"); hash.put("coloring.workspace_selection_foreground", "0, 0, 0"); hash.put("coloring.workspace_selection_background", "176, 208, 176"); hash.put("coloring.table_noneditable_background", ""); hash.put("coloring.table_editable_background", ""); hash.put("coloring.collection_tree_background", "224, 240, 224"); hash.put("coloring.collection_tree_foreground", "0, 0, 0"); hash.put("coloring.workspace_tree_foreground", "0, 0, 0"); hash.put("coloring.workspace_tree_background", "218, 237, 252"); hash.put("coloring.workspace_heading_background", "128, 180, 216"); hash.put("coloring.workspace_heading_foreground", "0, 0, 0"); } /** Retrieve whether the named property is set or not */ static public boolean get(String property) { String value = (String)hash.get(property); return (value != null && value.equalsIgnoreCase("true")); } /** Retrieve the value of the named property as a String */ static public String getString(String property) { return (String)hash.get(property); } /** Retrieve the value of the named property as a Locale. */ static public Locale getLocale(String property) { Locale result = Locale.getDefault(); try { String raw = (String) hash.get(property); if (raw==null) { return result; } // Locale is a underscore separated code. StringTokenizer tokenizer = new StringTokenizer(raw, TOKENIZER_PATTERN2); String language = tokenizer.nextToken(); if(tokenizer.hasMoreTokens()) { String country = tokenizer.nextToken(); result = new Locale(language, country); } else { result = new Locale(language); } } catch(Exception error) { error.printStackTrace(); } return result; } /** Retrieve the value of the named property as a Color. */ static public Color getColor(String property) { Color result = Color.white; // Default String raw = (String)hash.get(property); if (raw == null) { return result; } try { // Color is a RGB triplet list, comma separated (also remove whitespace) StringTokenizer tokenizer = new StringTokenizer(raw, TOKENIZER_PATTERN1); int red = Integer.parseInt(tokenizer.nextToken()); int green = Integer.parseInt(tokenizer.nextToken()); int blue = Integer.parseInt(tokenizer.nextToken()); result = new Color(red, green, blue); } catch(Exception error) { error.printStackTrace(); } return result; } }