[Squirrel-sql-commits] sql12/plugins/laf/src/net/sourceforge/squirrel_sql/plugins/laf AbstractPlasti
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
Update of /cvsroot/squirrel-sql/sql12/plugins/laf/src/net/sourceforge/squirrel_sql/plugins/laf In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17456/plugins/laf/src/net/sourceforge/squirrel_sql/plugins/laf Modified Files: AbstractPlasticController.java LAFPlugin.java LAFPluginResources.properties PlasticLookAndFeelController.java Log Message: Updated plastic laf. Scrollable tabs now work with plastic lafs. Index: LAFPlugin.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/plugins/laf/src/net/sourceforge/squirrel_sql/plugins/laf/LAFPlugin.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** LAFPlugin.java 1 May 2005 20:33:18 -0000 1.6 --- LAFPlugin.java 1 May 2005 21:25:37 -0000 1.7 *************** *** 26,30 **** import javax.swing.UIManager; ! import com.jgoodies.plaf.Options; import net.sourceforge.squirrel_sql.fw.util.DuplicateObjectException; --- 26,30 ---- import javax.swing.UIManager; ! import com.jgoodies.looks.Options; import net.sourceforge.squirrel_sql.fw.util.DuplicateObjectException; *************** *** 212,217 **** // Setup preferences to make jGoodies LAF look better. ! UIManager.put(Options.USE_SYSTEM_FONTS_APP_KEY, Boolean.TRUE); ! UIManager.put(Options.USE_NARROW_BUTTONS_KEY, Boolean.TRUE); // Create the Look and Feel register. --- 212,217 ---- // Setup preferences to make jGoodies LAF look better. ! // UIManager.put(Options.USE_SYSTEM_FONTS_APP_KEY, Boolean.TRUE); ! // UIManager.put(Options.USE_NARROW_BUTTONS_KEY, Boolean.TRUE); // Create the Look and Feel register. Index: AbstractPlasticController.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/plugins/laf/src/net/sourceforge/squirrel_sql/plugins/laf/AbstractPlasticController.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AbstractPlasticController.java 5 May 2003 11:47:38 -0000 1.1 --- AbstractPlasticController.java 1 May 2005 21:25:37 -0000 1.2 *************** *** 1,347 **** ! package net.sourceforge.squirrel_sql.plugins.laf; ! /* ! * Copyright (C) 2003 Colin Bell ! * co...@us... ! * ! * 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 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. ! */ ! import java.awt.GridBagConstraints; ! import java.awt.GridBagLayout; ! import java.awt.Insets; ! import java.util.Iterator; ! import java.util.Map; ! import java.util.TreeMap; ! ! import javax.swing.JComboBox; ! import javax.swing.JLabel; ! import javax.swing.LookAndFeel; ! import javax.swing.SwingConstants; ! import javax.swing.plaf.metal.MetalTheme; ! ! import net.sourceforge.squirrel_sql.fw.id.IHasIdentifier; ! import net.sourceforge.squirrel_sql.fw.id.IIdentifier; ! import net.sourceforge.squirrel_sql.fw.id.IntegerIdentifier; ! import net.sourceforge.squirrel_sql.fw.util.BaseException; ! import net.sourceforge.squirrel_sql.fw.util.log.ILogger; ! import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; ! /** ! * Base class for the LAF controllers for Plastic and Metal. ! * responsibility for the metal Look and Feel. ! * ! * @author <A HREF="mailto:co...@us...">Colin Bell</A> ! */ ! abstract class AbstractPlasticController extends DefaultLookAndFeelController ! { ! /** Logger for this class. */ ! private static ILogger s_log = ! LoggerController.createLogger(AbstractPlasticController.class); ! ! /** ! * This interface defines locale specific strings. This should be ! * replaced with a property file. ! */ ! protected interface i18n ! { ! String THEME = "Theme:"; ! } ! ! /** Class names of all the Plastic themes. */ ! protected static final String[] PLASTIC_THEME_CLASS_NAMES = new String[] ! { ! "com.jgoodies.plaf.plastic.theme.BrownSugar", ! "com.jgoodies.plaf.plastic.theme.DarkStar", ! "com.jgoodies.plaf.plastic.theme.DesertBlue", ! "com.jgoodies.plaf.plastic.theme.DesertBluer", ! "com.jgoodies.plaf.plastic.theme.DesertGreen", ! "com.jgoodies.plaf.plastic.theme.DesertRed", ! "com.jgoodies.plaf.plastic.theme.DesertYellow", ! "com.jgoodies.plaf.plastic.theme.ExperienceBlue", ! "com.jgoodies.plaf.plastic.theme.ExperienceGreen", ! "com.jgoodies.plaf.plastic.theme.Silver", ! "com.jgoodies.plaf.plastic.theme.SkyBlue", ! "com.jgoodies.plaf.plastic.theme.SkyBluer", ! "com.jgoodies.plaf.plastic.theme.SkyBluerTahoma", ! "com.jgoodies.plaf.plastic.theme.SkyGreen", ! "com.jgoodies.plaf.plastic.theme.SkyKrupp", ! "com.jgoodies.plaf.plastic.theme.SkyPink", ! "com.jgoodies.plaf.plastic.theme.SkyRed", ! "com.jgoodies.plaf.plastic.theme.SkyYellow", ! }; ! ! /** Look and Feel Plugin. */ ! private final LAFPlugin _lafPlugin; ! ! /** Look and Feel Register. */ ! private final LAFRegister _lafRegister; ! ! /** The Plastic themes keyed by the theme name. */ ! private Map _themes = new TreeMap(); ! ! /** ! * Ctor specifying the Look and Feel plugin and register. ! * ! * @param plugin The plugin that this controller is a part of. ! * @param lafRegister LAF register. ! */ ! AbstractPlasticController(LAFPlugin plugin, ! LAFRegister lafRegister) ! { ! super(); ! _lafPlugin = plugin; ! _lafRegister = lafRegister; ! } ! ! /** ! * Initialization. ! */ ! public void initialize() ! { ! _themes.clear(); ! ! ClassLoader cl = getLAFRegister().getLookAndFeelClassLoader(); ! MetalTheme[] extras = getExtraThemes(); ! if (extras == null) ! { ! extras = new MetalTheme[0]; ! } ! ! for (int i = 0; i < extras.length; ++i) ! { ! _themes.put(extras[i].getName(), extras[i]);; ! } ! ! for (int i = 0; i < PLASTIC_THEME_CLASS_NAMES.length; ++i) ! { ! try ! { ! Class clazz = cl.loadClass(PLASTIC_THEME_CLASS_NAMES[i]); ! MetalTheme theme = (MetalTheme)clazz.newInstance(); ! _themes.put(theme.getName(), theme); ! } ! catch (Throwable th) ! { ! s_log.error("Error loading theme " + PLASTIC_THEME_CLASS_NAMES[i], th); ! } ! } ! } ! ! /** ! * A Look and Feel is about to be installed. Apply the selected ! * theme. ! * ! * @param lafRegister The LAF Register. ! * @param laf The Look and Feel being installed. ! */ ! public void aboutToBeInstalled(LAFRegister lafRegister, LookAndFeel laf) ! { ! final String name = getCurrentThemeName(); ! if (name != null) ! { ! MetalTheme theme = getThemeForName(name); ! if (theme != null) ! { ! try ! { ! installCurrentTheme(laf, theme); ! } ! catch (BaseException ex) ! { ! s_log.error("Error installing a Theme", ex); ! } ! } ! } ! } ! ! /** ! * Retrieve the extra panel to be displayed in the LAF preferences ! * panel for the current LAF. ! * ! * @return LAF preferences extra panel ! */ ! public BaseLAFPreferencesPanelComponent getPreferencesComponent() ! { ! return new PrefsPanel(this); ! } ! ! ! /** ! * Retrieve the name of the current theme. ! * ! * @return Name of the current theme. ! */ ! abstract String getCurrentThemeName(); ! ! /** ! * Set the current theme name. ! * ! * @param name name of the current theme. ! */ ! abstract void setCurrentThemeName(String name); ! ! /** ! * Override in subclasses to actually set the current theme. ! * ! * @param name ! * @return ! */ ! abstract void installCurrentTheme(LookAndFeel laf, MetalTheme theme) ! throws BaseException; ! ! final MetalTheme getThemeForName(String name) ! { ! return (MetalTheme)_themes.get(name); ! } ! ! /** ! * Override in subclasses to retrieve the extra themes for the Look and ! * Feel classes that the subclass is responsible for. ! * @return ! */ ! MetalTheme[] getExtraThemes() ! { ! return new MetalTheme[0]; ! } ! ! /** ! * Retrieve the LAF register. ! * ! * @return <TT>LAFRegister</TT>. ! */ ! LAFRegister getLAFRegister() ! { ! return _lafRegister; ! } ! ! /** ! * Retrieve the LAF plugin. ! * ! * @return <TT>LAFPlugin</TT>. ! */ ! LAFPlugin getLAFPlugin() ! { ! return _lafPlugin; ! } ! ! Iterator themesIterator() ! { ! return _themes.values().iterator(); ! } ! ! /** ! * Preferences panel. Show a dropdown of themes. ! */ ! final static class PrefsPanel extends BaseLAFPreferencesPanelComponent ! { ! private AbstractPlasticController _ctrl; ! private JComboBox _themeCmb; ! private int _origSelThemeIdx; ! ! PrefsPanel(AbstractPlasticController ctrl) ! { ! super(); ! _ctrl = ctrl; ! createUserInterface(); ! } ! ! private void createUserInterface() ! { ! setLayout(new GridBagLayout()); ! _themeCmb = new JComboBox(); ! ! final GridBagConstraints gbc = new GridBagConstraints(); ! gbc.anchor = GridBagConstraints.WEST; ! gbc.fill = GridBagConstraints.HORIZONTAL; ! gbc.insets = new Insets(4, 4, 4, 4); ! ! gbc.gridx = 0; ! gbc.gridy = 0; ! add(new JLabel(i18n.THEME, SwingConstants.RIGHT), gbc); ! ! ++gbc.gridx; ! add(_themeCmb, gbc); ! } ! ! /** ! * @see BaseLAFPreferencesPanelComponent#loadPreferencesPanel() ! */ ! public void loadPreferencesPanel() ! { ! super.loadPreferencesPanel(); ! loadThemesCombo(); ! } ! ! /** ! * @see BaseLAFPreferencesPanelComponent#applyChanges() ! */ ! public boolean applyChanges() ! { ! super.applyChanges(); ! if (_origSelThemeIdx != _themeCmb.getSelectedIndex()) ! { ! _ctrl.setCurrentThemeName((String)_themeCmb.getSelectedItem()); ! return true; ! } ! return false; ! } ! ! private void loadThemesCombo() ! { ! _themeCmb.removeAllItems(); ! ! for(Iterator it = _ctrl.themesIterator(); it.hasNext();) ! { ! _themeCmb.addItem(((MetalTheme)it.next()).getName()); ! } ! ! if (_themeCmb.getModel().getSize() > 0) ! { ! String selThemeName = _ctrl.getCurrentThemeName(); ! if (selThemeName != null && selThemeName.length() > 0) ! { ! _themeCmb.setSelectedItem(selThemeName); ! } ! if (_themeCmb.getSelectedIndex() == -1) ! { ! _themeCmb.setSelectedIndex(0); ! } ! } ! _origSelThemeIdx = _themeCmb.getSelectedIndex(); ! } ! } ! ! public static abstract class ThemePreferences implements IHasIdentifier ! { ! private String _themeName; ! private IntegerIdentifier _id = new IntegerIdentifier(1); ! ! public String getThemeName() ! { ! return _themeName; ! } ! ! public void setThemeName(String value) ! { ! _themeName = value; ! } ! ! /** ! * @return The unique identifier for this object. ! */ ! public IIdentifier getIdentifier() ! { ! return _id; ! } ! } ! } --- 1,347 ---- ! package net.sourceforge.squirrel_sql.plugins.laf; ! /* ! * Copyright (C) 2003 Colin Bell ! * co...@us... ! * ! * 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 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. ! */ ! import java.awt.GridBagConstraints; ! import java.awt.GridBagLayout; ! import java.awt.Insets; ! import java.util.Iterator; ! import java.util.Map; ! import java.util.TreeMap; ! ! import javax.swing.JComboBox; ! import javax.swing.JLabel; ! import javax.swing.LookAndFeel; ! import javax.swing.SwingConstants; ! import javax.swing.plaf.metal.MetalTheme; ! ! import net.sourceforge.squirrel_sql.fw.id.IHasIdentifier; ! import net.sourceforge.squirrel_sql.fw.id.IIdentifier; ! import net.sourceforge.squirrel_sql.fw.id.IntegerIdentifier; ! import net.sourceforge.squirrel_sql.fw.util.BaseException; ! import net.sourceforge.squirrel_sql.fw.util.log.ILogger; ! import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; ! /** ! * Base class for the LAF controllers for Plastic and Metal. ! * responsibility for the metal Look and Feel. ! * ! * @author <A HREF="mailto:co...@us...">Colin Bell</A> ! */ ! abstract class AbstractPlasticController extends DefaultLookAndFeelController ! { ! /** Logger for this class. */ ! private static ILogger s_log = ! LoggerController.createLogger(AbstractPlasticController.class); ! ! /** ! * This interface defines locale specific strings. This should be ! * replaced with a property file. ! */ ! protected interface i18n ! { ! String THEME = "Theme:"; ! } ! ! /** Class names of all the Plastic themes. */ ! protected static final String[] PLASTIC_THEME_CLASS_NAMES = new String[] ! { ! "com.jgoodies.looks.plastic.theme.BrownSugar", ! "com.jgoodies.looks.plastic.theme.DarkStar", ! "com.jgoodies.looks.plastic.theme.DesertBlue", ! "com.jgoodies.looks.plastic.theme.DesertBluer", ! "com.jgoodies.looks.plastic.theme.DesertGreen", ! "com.jgoodies.looks.plastic.theme.DesertRed", ! "com.jgoodies.looks.plastic.theme.DesertYellow", ! "com.jgoodies.looks.plastic.theme.ExperienceBlue", ! "com.jgoodies.looks.plastic.theme.ExperienceGreen", ! "com.jgoodies.looks.plastic.theme.Silver", ! "com.jgoodies.looks.plastic.theme.SkyBlue", ! "com.jgoodies.looks.plastic.theme.SkyBluer", ! "com.jgoodies.looks.plastic.theme.SkyBluerTahoma", ! "com.jgoodies.looks.plastic.theme.SkyGreen", ! "com.jgoodies.looks.plastic.theme.SkyKrupp", ! "com.jgoodies.looks.plastic.theme.SkyPink", ! "com.jgoodies.looks.plastic.theme.SkyRed", ! "com.jgoodies.looks.plastic.theme.SkyYellow", ! }; ! ! /** Look and Feel Plugin. */ ! private final LAFPlugin _lafPlugin; ! ! /** Look and Feel Register. */ ! private final LAFRegister _lafRegister; ! ! /** The Plastic themes keyed by the theme name. */ ! private Map _themes = new TreeMap(); ! ! /** ! * Ctor specifying the Look and Feel plugin and register. ! * ! * @param plugin The plugin that this controller is a part of. ! * @param lafRegister LAF register. ! */ ! AbstractPlasticController(LAFPlugin plugin, ! LAFRegister lafRegister) ! { ! super(); ! _lafPlugin = plugin; ! _lafRegister = lafRegister; ! } ! ! /** ! * Initialization. ! */ ! public void initialize() ! { ! _themes.clear(); ! ! ClassLoader cl = getLAFRegister().getLookAndFeelClassLoader(); ! MetalTheme[] extras = getExtraThemes(); ! if (extras == null) ! { ! extras = new MetalTheme[0]; ! } ! ! for (int i = 0; i < extras.length; ++i) ! { ! _themes.put(extras[i].getName(), extras[i]);; ! } ! ! for (int i = 0; i < PLASTIC_THEME_CLASS_NAMES.length; ++i) ! { ! try ! { ! Class clazz = cl.loadClass(PLASTIC_THEME_CLASS_NAMES[i]); ! MetalTheme theme = (MetalTheme)clazz.newInstance(); ! _themes.put(theme.getName(), theme); ! } ! catch (Throwable th) ! { ! s_log.error("Error loading theme " + PLASTIC_THEME_CLASS_NAMES[i], th); ! } ! } ! } ! ! /** ! * A Look and Feel is about to be installed. Apply the selected ! * theme. ! * ! * @param lafRegister The LAF Register. ! * @param laf The Look and Feel being installed. ! */ ! public void aboutToBeInstalled(LAFRegister lafRegister, LookAndFeel laf) ! { ! final String name = getCurrentThemeName(); ! if (name != null) ! { ! MetalTheme theme = getThemeForName(name); ! if (theme != null) ! { ! try ! { ! installCurrentTheme(laf, theme); ! } ! catch (BaseException ex) ! { ! s_log.error("Error installing a Theme", ex); ! } ! } ! } ! } ! ! /** ! * Retrieve the extra panel to be displayed in the LAF preferences ! * panel for the current LAF. ! * ! * @return LAF preferences extra panel ! */ ! public BaseLAFPreferencesPanelComponent getPreferencesComponent() ! { ! return new PrefsPanel(this); ! } ! ! ! /** ! * Retrieve the name of the current theme. ! * ! * @return Name of the current theme. ! */ ! abstract String getCurrentThemeName(); ! ! /** ! * Set the current theme name. ! * ! * @param name name of the current theme. ! */ ! abstract void setCurrentThemeName(String name); ! ! /** ! * Override in subclasses to actually set the current theme. ! * ! * @param name ! * @return ! */ ! abstract void installCurrentTheme(LookAndFeel laf, MetalTheme theme) ! throws BaseException; ! ! final MetalTheme getThemeForName(String name) ! { ! return (MetalTheme)_themes.get(name); ! } ! ! /** ! * Override in subclasses to retrieve the extra themes for the Look and ! * Feel classes that the subclass is responsible for. ! * @return ! */ ! MetalTheme[] getExtraThemes() ! { ! return new MetalTheme[0]; ! } ! ! /** ! * Retrieve the LAF register. ! * ! * @return <TT>LAFRegister</TT>. ! */ ! LAFRegister getLAFRegister() ! { ! return _lafRegister; ! } ! ! /** ! * Retrieve the LAF plugin. ! * ! * @return <TT>LAFPlugin</TT>. ! */ ! LAFPlugin getLAFPlugin() ! { ! return _lafPlugin; ! } ! ! Iterator themesIterator() ! { ! return _themes.values().iterator(); ! } ! ! /** ! * Preferences panel. Show a dropdown of themes. ! */ ! final static class PrefsPanel extends BaseLAFPreferencesPanelComponent ! { ! private AbstractPlasticController _ctrl; ! private JComboBox _themeCmb; ! private int _origSelThemeIdx; ! ! PrefsPanel(AbstractPlasticController ctrl) ! { ! super(); ! _ctrl = ctrl; ! createUserInterface(); ! } ! ! private void createUserInterface() ! { ! setLayout(new GridBagLayout()); ! _themeCmb = new JComboBox(); ! ! final GridBagConstraints gbc = new GridBagConstraints(); ! gbc.anchor = GridBagConstraints.WEST; ! gbc.fill = GridBagConstraints.HORIZONTAL; ! gbc.insets = new Insets(4, 4, 4, 4); ! ! gbc.gridx = 0; ! gbc.gridy = 0; ! add(new JLabel(i18n.THEME, SwingConstants.RIGHT), gbc); ! ! ++gbc.gridx; ! add(_themeCmb, gbc); ! } ! ! /** ! * @see BaseLAFPreferencesPanelComponent#loadPreferencesPanel() ! */ ! public void loadPreferencesPanel() ! { ! super.loadPreferencesPanel(); ! loadThemesCombo(); ! } ! ! /** ! * @see BaseLAFPreferencesPanelComponent#applyChanges() ! */ ! public boolean applyChanges() ! { ! super.applyChanges(); ! if (_origSelThemeIdx != _themeCmb.getSelectedIndex()) ! { ! _ctrl.setCurrentThemeName((String)_themeCmb.getSelectedItem()); ! return true; ! } ! return false; ! } ! ! private void loadThemesCombo() ! { ! _themeCmb.removeAllItems(); ! ! for(Iterator it = _ctrl.themesIterator(); it.hasNext();) ! { ! _themeCmb.addItem(((MetalTheme)it.next()).getName()); ! } ! ! if (_themeCmb.getModel().getSize() > 0) ! { ! String selThemeName = _ctrl.getCurrentThemeName(); ! if (selThemeName != null && selThemeName.length() > 0) ! { ! _themeCmb.setSelectedItem(selThemeName); ! } ! if (_themeCmb.getSelectedIndex() == -1) ! { ! _themeCmb.setSelectedIndex(0); ! } ! } ! _origSelThemeIdx = _themeCmb.getSelectedIndex(); ! } ! } ! ! public static abstract class ThemePreferences implements IHasIdentifier ! { ! private String _themeName; ! private IntegerIdentifier _id = new IntegerIdentifier(1); ! ! public String getThemeName() ! { ! return _themeName; ! } ! ! public void setThemeName(String value) ! { ! _themeName = value; ! } ! ! /** ! * @return The unique identifier for this object. ! */ ! public IIdentifier getIdentifier() ! { ! return _id; ! } ! } ! } Index: LAFPluginResources.properties =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/plugins/laf/src/net/sourceforge/squirrel_sql/plugins/laf/LAFPluginResources.properties,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** LAFPluginResources.properties 10 Aug 2004 10:40:42 -0000 1.2 --- LAFPluginResources.properties 1 May 2005 21:25:37 -0000 1.3 *************** *** 1,33 **** ! ############################ ! # LAFPluginResources.properties ! ! ! path.images=/net/sourceforge/squirrel_sql/plugins/laf/images/ ! ! ! ######## ! # Define the Look and Feels available. Dont skip a trailing digit in ! # the sequence. The java code will look for classname0, classname1 etc and ! # as soon as it doesn't find one it assumes that there are no more. ! ######## ! classname0=com.incors.plaf.kunststoff.KunststoffLookAndFeel ! jar0=kunststoff.jar ! ! classname1=net.sourceforge.mlf.metouia.MetouiaLookAndFeel ! jar1=metouia.jar ! ! classname2=com.oyoaha.swing.plaf.oyoaha.OyoahaLookAndFeel ! jar2=oalnf.jar ! ! classname3=com.jgoodies.plaf.plastic.PlasticLookAndFeel ! jar3=plastic.jar ! ! classname4=com.jgoodies.plaf.plastic.Plastic3DLookAndFeel ! jar4=plastic.jar ! ! classname5=com.jgoodies.plaf.plastic.PlasticXPLookAndFeel ! jar5=plastic.jar ! ! classname6=com.l2fprod.gui.plaf.skin.SkinLookAndFeel ! jar6=skinlf.jar ! --- 1,33 ---- ! ############################ ! # LAFPluginResources.properties ! ! ! path.images=/net/sourceforge/squirrel_sql/plugins/laf/images/ ! ! ! ######## ! # Define the Look and Feels available. Dont skip a trailing digit in ! # the sequence. The java code will look for classname0, classname1 etc and ! # as soon as it doesn't find one it assumes that there are no more. ! ######## ! classname0=com.incors.plaf.kunststoff.KunststoffLookAndFeel ! jar0=kunststoff.jar ! ! classname1=net.sourceforge.mlf.metouia.MetouiaLookAndFeel ! jar1=metouia.jar ! ! classname2=com.oyoaha.swing.plaf.oyoaha.OyoahaLookAndFeel ! jar2=oalnf.jar ! ! classname3=com.jgoodies.looks.plastic.PlasticLookAndFeel ! jar3=looks-1.3.1.jar ! ! classname4=com.jgoodies.looks.plastic.Plastic3DLookAndFeel ! jar4=looks-1.3.1.jar ! ! classname5=com.jgoodies.looks.plastic.PlasticXPLookAndFeel ! jar5=looks-1.3.1.jar ! ! classname6=com.l2fprod.gui.plaf.skin.SkinLookAndFeel ! jar6=skinlf.jar ! Index: PlasticLookAndFeelController.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/plugins/laf/src/net/sourceforge/squirrel_sql/plugins/laf/PlasticLookAndFeelController.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PlasticLookAndFeelController.java 5 May 2003 11:47:38 -0000 1.2 --- PlasticLookAndFeelController.java 1 May 2005 21:25:37 -0000 1.3 *************** *** 1,157 **** ! package net.sourceforge.squirrel_sql.plugins.laf; ! /* ! * Copyright (C) 2003 Colin Bell ! * co...@us... ! * ! * 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 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. ! */ ! import java.lang.reflect.Method; ! import java.util.Iterator; ! ! import javax.swing.LookAndFeel; ! import javax.swing.plaf.metal.MetalTheme; ! ! import net.sourceforge.squirrel_sql.fw.util.BaseException; ! import net.sourceforge.squirrel_sql.fw.util.DuplicateObjectException; ! import net.sourceforge.squirrel_sql.fw.util.log.ILogger; ! import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; ! import net.sourceforge.squirrel_sql.fw.xml.XMLObjectCache; ! /** ! * Behaviour for the jGoodies Plastic Look and Feel. ! * ! * @author <A HREF="mailto:co...@us...">Colin Bell</A> ! */ ! class PlasticLookAndFeelController extends AbstractPlasticController ! { ! /** Logger for this class. */ ! private static ILogger s_log = ! LoggerController.createLogger(PlasticLookAndFeelController.class); ! ! /** ! * Look and Feel class names that this controller is responsible for. ! */ ! static final String[] LAF_CLASS_NAMES = new String[] ! { ! "com.jgoodies.plaf.plastic.PlasticLookAndFeel", ! "com.jgoodies.plaf.plastic.Plastic3DLookAndFeel", ! "com.jgoodies.plaf.plastic.PlasticXPLookAndFeel", ! }; ! ! /** Name of package that contains Plastic Themes. */ ! private static final String THEME_PACKAGE = "com.jgoodies.plaf.plastic.theme"; ! ! /** Base class for all Plastic themes. */ ! private static final String THEME_BASE_CLASS = "com.jgoodies.plaf.plastic.PlasticTheme"; ! ! /** Preferences for this LAF. */ ! private PlasticThemePreferences _prefs; ! ! /** ! * Ctor specifying the Look and Feel plugin and register. ! * ! * @param plugin The plugin that this controller is a part of. ! * @param lafRegister LAF register. ! */ ! PlasticLookAndFeelController(LAFPlugin plugin, ! LAFRegister lafRegister) ! { ! super(plugin, lafRegister); ! ! XMLObjectCache cache = plugin.getSettingsCache(); ! Iterator it = cache.getAllForClass(PlasticThemePreferences.class); ! if (it.hasNext()) ! { ! _prefs = (PlasticThemePreferences)it.next(); ! } ! else ! { ! _prefs = new PlasticThemePreferences(); ! try ! { ! cache.add(_prefs); ! } ! catch (DuplicateObjectException ex) ! { ! s_log.error("PlasticThemePreferences object already in XMLObjectCache", ex); ! } ! } ! } ! ! /** ! * Retrieve the name of the current theme. ! * ! * @return Name of the current theme. ! */ ! String getCurrentThemeName() ! { ! return _prefs.getThemeName(); ! } ! ! /** ! * Set the current theme name. ! * ! * @param name name of the current theme. ! */ ! void setCurrentThemeName(String name) ! { ! _prefs.setThemeName(name); ! } ! ! void installCurrentTheme(LookAndFeel laf, MetalTheme theme) ! throws BaseException ! { ! try ! { ! ClassLoader cl = getLAFRegister().getLookAndFeelClassLoader(); ! Class themeBaseClass; ! try ! { ! themeBaseClass = cl.loadClass(THEME_BASE_CLASS); ! } ! catch (Throwable th) ! { ! s_log.error("Error loading theme base class " + THEME_BASE_CLASS, th); ! throw new BaseException(th); ! } ! ! // Ensure that this is a Plastic Theme. ! if (!themeBaseClass.isAssignableFrom(theme.getClass())) ! { ! throw new BaseException("NonPlastic Theme passed in"); ! } ! ! Method method = laf.getClass().getMethod("setMyCurrentTheme", ! new Class[] { themeBaseClass }); ! Object[] parms = new Object[] { theme }; ! method.invoke(laf, parms); ! } ! catch (Throwable th) ! { ! throw new BaseException(th); ! } ! } ! ! /** ! * Preferences for the Plastic LAFs. Subclassed purely to give it a ! * different data type when stored in the plugin preferences so that it ! * doesn't get mixed up with preferences for other subclasses of ! * AbstractPlasticController ! */ ! public static final class PlasticThemePreferences ! extends AbstractPlasticController.ThemePreferences ! { ! } ! } ! --- 1,157 ---- ! package net.sourceforge.squirrel_sql.plugins.laf; ! /* ! * Copyright (C) 2003 Colin Bell ! * co...@us... ! * ! * 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 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. ! */ ! import java.lang.reflect.Method; ! import java.util.Iterator; ! ! import javax.swing.LookAndFeel; ! import javax.swing.plaf.metal.MetalTheme; ! ! import net.sourceforge.squirrel_sql.fw.util.BaseException; ! import net.sourceforge.squirrel_sql.fw.util.DuplicateObjectException; ! import net.sourceforge.squirrel_sql.fw.util.log.ILogger; ! import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; ! import net.sourceforge.squirrel_sql.fw.xml.XMLObjectCache; ! /** ! * Behaviour for the jGoodies Plastic Look and Feel. ! * ! * @author <A HREF="mailto:co...@us...">Colin Bell</A> ! */ ! class PlasticLookAndFeelController extends AbstractPlasticController ! { ! /** Logger for this class. */ ! private static ILogger s_log = ! LoggerController.createLogger(PlasticLookAndFeelController.class); ! ! /** ! * Look and Feel class names that this controller is responsible for. ! */ ! static final String[] LAF_CLASS_NAMES = new String[] ! { ! "com.jgoodies.looks.plastic.PlasticLookAndFeel", ! "com.jgoodies.looks.plastic.Plastic3DLookAndFeel", ! "com.jgoodies.looks.plastic.PlasticXPLookAndFeel", ! }; ! ! /** Name of package that contains Plastic Themes. */ ! private static final String THEME_PACKAGE = "com.jgoodies.looks.plastic.theme"; ! ! /** Base class for all Plastic themes. */ ! private static final String THEME_BASE_CLASS = "com.jgoodies.looks.plastic.PlasticTheme"; ! ! /** Preferences for this LAF. */ ! private PlasticThemePreferences _prefs; ! ! /** ! * Ctor specifying the Look and Feel plugin and register. ! * ! * @param plugin The plugin that this controller is a part of. ! * @param lafRegister LAF register. ! */ ! PlasticLookAndFeelController(LAFPlugin plugin, ! LAFRegister lafRegister) ! { ! super(plugin, lafRegister); ! ! XMLObjectCache cache = plugin.getSettingsCache(); ! Iterator it = cache.getAllForClass(PlasticThemePreferences.class); ! if (it.hasNext()) ! { ! _prefs = (PlasticThemePreferences)it.next(); ! } ! else ! { ! _prefs = new PlasticThemePreferences(); ! try ! { ! cache.add(_prefs); ! } ! catch (DuplicateObjectException ex) ! { ! s_log.error("PlasticThemePreferences object already in XMLObjectCache", ex); ! } ! } ! } ! ! /** ! * Retrieve the name of the current theme. ! * ! * @return Name of the current theme. ! */ ! String getCurrentThemeName() ! { ! return _prefs.getThemeName(); ! } ! ! /** ! * Set the current theme name. ! * ! * @param name name of the current theme. ! */ ! void setCurrentThemeName(String name) ! { ! _prefs.setThemeName(name); ! } ! ! void installCurrentTheme(LookAndFeel laf, MetalTheme theme) ! throws BaseException ! { ! try ! { ! ClassLoader cl = getLAFRegister().getLookAndFeelClassLoader(); ! Class themeBaseClass; ! try ! { ! themeBaseClass = cl.loadClass(THEME_BASE_CLASS); ! } ! catch (Throwable th) ! { ! s_log.error("Error loading theme base class " + THEME_BASE_CLASS, th); ! throw new BaseException(th); ! } ! ! // Ensure that this is a Plastic Theme. ! if (!themeBaseClass.isAssignableFrom(theme.getClass())) ! { ! throw new BaseException("NonPlastic Theme passed in"); ! } ! ! Method method = laf.getClass().getMethod("setMyCurrentTheme", ! new Class[] { themeBaseClass }); ! Object[] parms = new Object[] { theme }; ! method.invoke(laf, parms); ! } ! catch (Throwable th) ! { ! throw new BaseException(th); ! } ! } ! ! /** ! * Preferences for the Plastic LAFs. Subclassed purely to give it a ! * different data type when stored in the plugin preferences so that it ! * doesn't get mixed up with preferences for other subclasses of ! * AbstractPlasticController ! */ ! public static final class PlasticThemePreferences ! extends AbstractPlasticController.ThemePreferences ! { ! } ! } ! |