/* * File : LFUtil.java * Created : 24-oct-2001 21:22 * By : fbusquets * * JClic - Authoring and playing system for educational activities * * Copyright (C) 2000 - 2005 Francesc Busquets & Departament * d'Educacio de la Generalitat de Catalunya * * 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 (see the LICENSE file). */ package edu.xtec.util; import java.awt.Color; import java.awt.Component; import java.awt.Font; import javax.swing.SwingUtilities; /** * * @author Francesc Busquets (fbusquets@xtec.cat) * @version 1.0 */ public abstract class LFUtil { /** Key for Options */ public static final String LOOK_AND_FEEL="lookAndFeel"; /** Default look & feel name */ public static final String DEFAULT="default"; /** System look & feel name */ public static final String SYSTEM="system"; /** Metal look & feel name */ public static final String METAL="metal"; /** Motif look & feel name */ public static final String MOTIF="motif"; /** Windows look & feel name */ public static final String WINDOWS="windows"; public static final String[] VALUES={DEFAULT, SYSTEM, METAL, MOTIF}; /** Sets the app look & feel * @param friendlyName Look & feel name. If null, empty or not recognized this function does nohing. */ public static void setLookAndFeel(String friendlyName, Component rootComponent){ if(friendlyName!=null){ try{ if(friendlyName.equals(DEFAULT)) setLookAndFeel(null, javax.swing.UIManager.getCrossPlatformLookAndFeelClassName(), rootComponent); else if(friendlyName.equals(SYSTEM)) setLookAndFeel(null, javax.swing.UIManager.getSystemLookAndFeelClassName(), rootComponent); else if(friendlyName.equals(METAL)) setLookAndFeel("javax.swing.plaf", "metal.MetalLookAndFeel", rootComponent); else if(friendlyName.equals(MOTIF)) setLookAndFeel("com.sun.java.swing.plaf", "motif.MotifLookAndFeel", rootComponent); else if(friendlyName.equals(WINDOWS)) setLookAndFeel("com.sun.java.swing.plaf", "windows.WindowsLookAndFeel", rootComponent); } catch(Exception ex){ System.err.println("unable to set lookAndFeel to: \""+friendlyName+"\"\n"+ex); } } } private static void setLookAndFeel(String prefix, String className, Component rootComponent) throws Exception{ String cl=(prefix!=null && prefix.length()>0) ? prefix+"."+className : className; javax.swing.UIManager.setLookAndFeel(cl); if(rootComponent!=null) SwingUtilities.updateComponentTreeUI(rootComponent); } public static Color getSysColor(String key, Color defaultValue){ Color result=javax.swing.UIManager.getColor(key); return result==null ? defaultValue : result; } public static Color getColor(String key, Color defaultValue){ Color result=defaultValue; Object o=javax.swing.UIManager.get(key); if(o!=null && o instanceof Color) result=(Color)o; return result; } public static Font getFont(String key, Font defaultValue){ Font result=defaultValue; Object o=javax.swing.UIManager.get(key); if(o!=null && o instanceof Font) result=(Font)o; return result; } }