/******************************************************************************* * Copyright (c) 2002-2006 Innoopract Informationssysteme GmbH. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Innoopract Informationssysteme GmbH - initial API and implementation ******************************************************************************/ package com.w4t.util; import java.io.*; import java.util.Properties; import org.eclipse.rwt.internal.ConfigurationReader; import org.eclipse.rwt.internal.resources.ResourceManagerImpl; import org.eclipse.rwt.resources.IResourceManager; /** <p>Contains the default color scheme used by the W4 Toolkit components.</p> */ public class DefaultColorScheme { public static final String DEFAULT_COLOR_SCHEME_PROPS = "defaultColorScheme.properties"; private static Properties properties; public static final String WEB_OBJECT_BG = "WEB_OBJECT_BG"; // org.eclipse.rap.WebForm public static final String WEB_FORM_TEXT = "WEB_FORM_TEXT"; // org.eclipse.rap.WebCardLayout public static final String CARD_LAYOUT_BORDER = "CARD_LAYOUT_BORDER"; public static final String CARD_LAYOUT_INACTIVE_TAB = "CARD_LAYOUT_INACTIVE_TAB"; public static final String CARD_LAYOUT_ACTIVE_TAB_LINK = "CARD_LAYOUT_ACTIVE_TAB_LINK"; public static final String CARD_LAYOUT_INACTIVE_TAB_LINK = "CARD_LAYOUT_INACTIVE_TAB_LINK"; // org.eclipse.rap.dhtml public static final String ITEM_FONT = "ITEM_FONT"; public static final String ITEM_DISABLED_FONT = "ITEM_DISABLED_FONT"; public static final String ITEM_MARKED_FONT = "ITEM_MARKED_FONT"; public static final String ITEM_MARKED_BG = "ITEM_MARKED_BG"; // org.eclipse.rap.dhtml.menustyle public static final String MENU_BG = "MENU_BG"; public static final String MENU_BORDER = "MENU_BORDER"; public static final String MENU_DEFAULT_FONT = "MENU_DEFAULT_FONT"; public static final String MENU_DISABLED_FONT = "MENU_DISABLED_FONT"; public static final String MENU_HOVER_FONT = "MENU_HOVER_FONT"; // still old settings!! /////////////////////// // org.eclipse.rap.WebButton public static final String BUTTON_DISABLED = "BUTTON_DISABLED"; // org.eclipse.rap.WebTable public static final String TABLE_BG = "TABLE_BG"; // org.eclipse.rap.WebDataBaseTable public static final String DBTABLE_ERR = "DBTABLE_ERR"; public static final String DBTABLE_HEAD_CELL_BG = "DBTABLE_HEAD_CELL_BG"; public static final String DBTABLE_TABLE_CELL_BG = "DBTABLE_TABLE_CELL_BG"; // org.eclipse.rap.Style public static final String STYLE_BG = "STYLE_BG"; public static final String STYLE_FONT = "STYLE_FONT"; public static final String STYLE_BORDER = "STYLE_BORDER"; public static final String STYLE_BORDER_TOP = "STYLE_BORDER_TOP"; public static final String STYLE_BORDER_BOTTOM = "STYLE_BORDER_BOTTOM"; public static final String STYLE_BORDER_LEFT = "STYLE_BORDER_LEFT"; public static final String STYLE_BORDER_RIGHT = "STYLE_BORDER_RIGHT"; // org.eclipse.rap.WebBorderComponent public static final String BORDER_COMPONENT_BG = "BORDER_COMPONENT_BG"; public static final String BORDER_COMPONENT_LIGHT = "BORDER_COMPONENT_LIGHT"; public static final String BORDER_COMPONENT_DARK = "BORDER_COMPONENT_DARK"; // org.eclipse.rap.extensions.DesignButton public static final String DESIGN_BUTTON_FONT = "DESIGN_BUTTON_FONT"; // org.eclipse.rap.dhtml public static final String ABSOLUTE_LAYOUT_BG = "ABSOLUTE_LAYOUT_BG"; // org.eclipse.rap.administration public static final String ADMIN_BG = "ADMIN_BG"; public static final String ADMIN_LINK = "ADMIN_LINK"; public static final String ADMIN_HEADER_FONT = "ADMIN_HEADER_FONT"; public static final String ADMIN_MENU = "ADMIN_MENU"; public static final String ADMIN_CENTER = "ADMIN_CENTER"; public static final String ADMIN_INACTIVE_TAB = "ADMIN_INACTIVE_TAB"; public static final String ADMIN_MESSAGE_FORM_BG = "ADMIN_MESSAGE_FORM_BG"; public static final String ADMIN_LABEL_BG = "ADMIN_LABEL_BG"; public static String get( final String key ) { if( properties == null ) { init(); } return ( String )properties.get( key ); } // helping methods ////////////////// private static void init() { properties = new Properties(); try { if( createFile().exists() ) { loadFromFile(); } else { loadFromStream(); } if( properties.isEmpty() ) { loadFallBackValues(); } } catch( Exception ex ) { loadFallBackValues(); } } private static void loadFromStream() throws IOException { IResourceManager manager = ResourceManagerImpl.getInstance(); InputStream is = manager.getResourceAsStream( DEFAULT_COLOR_SCHEME_PROPS ); try { properties.load( is ); } finally { is.close(); } } private static void loadFromFile() throws IOException { File file = createFile(); if( file.exists() ) { FileInputStream fis = new FileInputStream( file ); try { properties.load( fis ); } finally { fis.close(); } } } private static File createFile() { return new File( createFileName() ); } private static String createFileName() { String result = "not_found"; if( ConfigurationReader.getEngineConfig() != null ) { result = ConfigurationReader.getEngineConfig().getServerContextDir() + File.separator + "WEB-INF" + File.separator + "conf" + File.separator + DEFAULT_COLOR_SCHEME_PROPS; } return result; } private static void loadFallBackValues() { System.out.println( "WARNING: Could not load default color scheme " + "from file:\n" + " WEB-INF/conf/defaultColorScheme.properties\n" + " Loading fallback values." ); properties.put( WEB_OBJECT_BG, "#ffffff" ); // org.eclipse.rap.WebForm properties.put( WEB_FORM_TEXT, "#000000" ); // org.eclipse.rap.WebCardLayout properties.put( CARD_LAYOUT_BORDER, "#ff9900" ); properties.put( CARD_LAYOUT_INACTIVE_TAB, "#e6e3e6" ); properties.put( CARD_LAYOUT_ACTIVE_TAB_LINK, "#000000" ); properties.put( CARD_LAYOUT_INACTIVE_TAB_LINK, "#000000" ); // org.eclipse.rap.dhtml properties.put( ITEM_FONT, "#000000" ); properties.put( ITEM_DISABLED_FONT, "gray" ); properties.put( ITEM_MARKED_FONT, "#ffffff" ); properties.put( ITEM_MARKED_BG, "#C6DBEF" ); // org.eclipse.rap.dhtml.menustyle properties.put( MENU_BG, "#ffffff" ); properties.put( MENU_BORDER, "#d6d3d6" ); properties.put( MENU_DEFAULT_FONT, "#000000" ); properties.put( MENU_DISABLED_FONT, "#808080" ); properties.put( MENU_HOVER_FONT, "#ff9a00" ); // still old settings!! /////////////////////// loadOldFallbackSettings(); } private static void loadOldFallbackSettings() { // org.eclipse.rap.WebButton properties.put( BUTTON_DISABLED, "gray" ); // org.eclipse.rap.WebTable properties.put( TABLE_BG, "" ); // org.eclipse.rap.WebDataBaseTable properties.put( DBTABLE_ERR, "red" ); properties.put( DBTABLE_HEAD_CELL_BG, "" ); properties.put( DBTABLE_TABLE_CELL_BG, "" ); // org.eclipse.rap.Style properties.put( STYLE_BG, "" ); properties.put( STYLE_FONT, "" ); properties.put( STYLE_BORDER, "" ); properties.put( STYLE_BORDER_TOP, "" ); properties.put( STYLE_BORDER_BOTTOM, "" ); properties.put( STYLE_BORDER_LEFT, "" ); properties.put( STYLE_BORDER_RIGHT, "" ); // org.eclipse.rap.WebBorderComponent properties.put( BORDER_COMPONENT_BG, "" ); properties.put( BORDER_COMPONENT_LIGHT, "#ffffff" ); properties.put( BORDER_COMPONENT_DARK, "#808080" ); // org.eclipse.rap.extensions.DesignButton properties.put( DESIGN_BUTTON_FONT, "#ffffff" ); // org.eclipse.rap.dhtml properties.put( ABSOLUTE_LAYOUT_BG, "" ); // org.eclipse.rap.administration properties.put( ADMIN_BG, "#d6d3ce" ); properties.put( ADMIN_LINK, "#d6d3ce" ); properties.put( ADMIN_HEADER_FONT, "#ffffff" ); properties.put( ADMIN_MENU, "#990000" ); properties.put( ADMIN_CENTER, "#d8d8d8" ); properties.put( ADMIN_INACTIVE_TAB, "#404040" ); properties.put( ADMIN_MESSAGE_FORM_BG, "#000080" ); properties.put( ADMIN_LABEL_BG, "#ffffff" ); } }