/*
* Created on 22-feb-2005
*
* Ritorna il LookAndFeel specificato dal file di configurazione
* Copyright (C) 2006 by Andrea Vacondio.
*
* 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.
* 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
*/
package org.pdfsam.guiclient.utils;
import java.util.LinkedList;
import javax.swing.UIManager;
import org.pdfsam.guiclient.dto.StringItem;
import com.jgoodies.looks.plastic.PlasticLookAndFeel;
import com.jgoodies.looks.plastic.theme.BrownSugar;
import com.jgoodies.looks.plastic.theme.DarkStar;
import com.jgoodies.looks.plastic.theme.DesertBlue;
import com.jgoodies.looks.plastic.theme.DesertGreen;
import com.jgoodies.looks.plastic.theme.DesertRed;
import com.jgoodies.looks.plastic.theme.ExperienceBlue;
import com.jgoodies.looks.plastic.theme.ExperienceGreen;
import com.jgoodies.looks.plastic.theme.Silver;
import com.jgoodies.looks.plastic.theme.SkyBlue;
import com.jgoodies.looks.plastic.theme.SkyBluer;
import com.jgoodies.looks.plastic.theme.SkyGreen;
import com.jgoodies.looks.plastic.theme.SkyKrupp;
import com.jgoodies.looks.plastic.theme.SkyPink;
import com.jgoodies.looks.plastic.theme.SkyYellow;
/**
* ThemeSelector utility. It provides functions to let the user select the GUI theme
* @author Andrea Vacondio
*/
public class ThemeUtility {
/**
* @param lafNumber
* @return le LookAndFeel
*/
public static String getLAF(int lafNumber){
String ThemeSelected;
switch (lafNumber) {
case 1:
ThemeSelected = UIManager.getSystemLookAndFeelClassName();
break;
case 2:
ThemeSelected = "javax.swing.plaf.metal.MetalLookAndFeel";
break;
case 3:
ThemeSelected = "com.jgoodies.looks.plastic.Plastic3DLookAndFeel";
break;
case 4:
ThemeSelected = "com.jgoodies.looks.plastic.PlasticLookAndFeel";
break;
case 5:
ThemeSelected = "com.jgoodies.looks.plastic.PlasticXPLookAndFeel";
break;
case 6:
ThemeSelected = "com.jgoodies.looks.windows.WindowsLookAndFeel";
break;
default:
ThemeSelected = UIManager.getCrossPlatformLookAndFeelClassName();
break;
}
return ThemeSelected;
}
/**
*
* @return a LinkedList of ListItem objects with the availales LAF
*/
public static LinkedList<StringItem> getLAFList(){
LinkedList<StringItem> retval = new LinkedList<StringItem>();
retval.add(new StringItem("0","Java"));
retval.add(new StringItem("1","System"));
retval.add(new StringItem("2","Metal"));
retval.add(new StringItem("3","Plastic3D"));
retval.add(new StringItem("4","Plastic"));
retval.add(new StringItem("5","PlasticXP"));
retval.add(new StringItem("6","Windows"));
return retval;
}
/**
*
* @return LinkedList of ListItem objects with the available Themes form Plastic
*/
public static LinkedList<StringItem> getThemeList(){
LinkedList<StringItem> retval = new LinkedList<StringItem>();
retval.add(new StringItem("0","None"));
retval.add(new StringItem("1","DesertBlue"));
retval.add(new StringItem("2","DesertRed"));
retval.add(new StringItem("3","Silver"));
retval.add(new StringItem("4","SkyPink"));
retval.add(new StringItem("5","SkyKrupp"));
retval.add(new StringItem("6","SkyYellow"));
retval.add(new StringItem("7","SkyGreen"));
retval.add(new StringItem("8","DarkStar"));
retval.add(new StringItem("9","BrownSugar"));
retval.add(new StringItem("10","DesertGreen"));
retval.add(new StringItem("11","ExperienceBlue"));
retval.add(new StringItem("12","ExperienceGreen"));
retval.add(new StringItem("13","SkyBlue"));
retval.add(new StringItem("14","SkyBluer"));
return retval;
}
/**
*
* @param lafNumber
* @return true if the LookAndFeel is Plastic type
*/
public static boolean isPlastic(int lafNumber){
return ((lafNumber >= 3) && (lafNumber <= 5));
}
/**
* Sets the theme
* @param themeNumber Theme number
*/
public static void setTheme(int themeNumber){
switch (themeNumber) {
case 1: PlasticLookAndFeel.setPlasticTheme(new DesertBlue());
break;
case 2: PlasticLookAndFeel.setPlasticTheme(new DesertRed());
break;
case 3: PlasticLookAndFeel.setPlasticTheme(new Silver());
break;
case 4: PlasticLookAndFeel.setPlasticTheme(new SkyPink());
break;
case 5: PlasticLookAndFeel.setPlasticTheme(new SkyKrupp());
break;
case 6: PlasticLookAndFeel.setPlasticTheme(new SkyYellow());
break;
case 7: PlasticLookAndFeel.setPlasticTheme(new SkyGreen());
break;
case 8: PlasticLookAndFeel.setPlasticTheme(new DarkStar());
break;
case 9: PlasticLookAndFeel.setPlasticTheme(new BrownSugar());
break;
case 10: PlasticLookAndFeel.setPlasticTheme(new DesertGreen());
break;
case 11: PlasticLookAndFeel.setPlasticTheme(new ExperienceBlue());
break;
case 12: PlasticLookAndFeel.setPlasticTheme(new ExperienceGreen());
break;
case 13: PlasticLookAndFeel.setPlasticTheme(new SkyBlue());
break;
case 14: PlasticLookAndFeel.setPlasticTheme(new SkyBluer());
break;
default:
break;
}
}
}