/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package feuille.theme;
import java.awt.Color;
import java.awt.Frame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
/**
*
* @author The Wingate 2940
*/
public class Theme implements ITheme {
private String name = "Default";
private Color control = new Color(214,217,223); //control
private Color info = new Color(242,242,189); //info
private Color nimbusAlertYellow = new Color(255,220,35); //nimbusAlertYellow
private Color nimbusBase = new Color(51,98,140); //nimbusBase
private Color nimbusDisabledText = new Color(142,143,145); //nimbusDisabledText
private Color nimbusFocus = new Color(115,164,209); //nimbusFocus
private Color nimbusGreen = new Color(176,179,50); //nimbusGreen
private Color nimbusInfoBlue = new Color(47,92,180); //nimbusInfoBlue
private Color nimbusLightBackground = new Color(255,255,255); //nimbusLightBackground
private Color nimbusOrange = new Color(191,98,4); //nimbusOrange
private Color nimbusRed = new Color(169,46,34); //nimbusRed
private Color nimbusSelectedText = new Color(255,255,255); //nimbusSelectedText
private Color nimbusSelectionBackground = new Color(57,105,138); //nimbusSelectionBackground
private Color text = new Color(0,0,0); //text
private Color activeCaption = new Color(186,190,198); //activeCaption
private Color background = new Color(214,217,223); //background
private Color controlDkShadow = new Color(164,171,184); //controlDkShadow
private Color controlHighlight = new Color(233,236,242); //controlHighlight
private Color controlLHighlight = new Color(247,248,250); //controlLHighlight
private Color controlShadow = new Color(204,211,224); //controlShadow
private Color controlText = new Color(0,0,0); //controlText
private Color desktop = new Color(61,96,121); //desktop
private Color inactiveCaption = new Color(189,193,200); //inactiveCaption
private Color infoText = new Color(0,0,0); //infoText
private Color menu = new Color(237,239,242); //menu
private Color menuText = new Color(0,0,0); //menuText
private Color nimbusBlueGrey = new Color(169,176,190); //nimbusBlueGrey
private Color nimbusBorder = new Color(146,151,161); //nimbusBorder
private Color nimbusSelection = new Color(57,105,138); //nimbusSelection
private Color scrollbar = new Color(205,208,213); //scrollbar
private Color textBackground = new Color(57,105,138); //textBackground
private Color textForeground = new Color(0,0,0); //textForeground
private Color textHighlight = new Color(57,105,138); //textHighlight
private Color textHighlightText = new Color(255,255,255); //textHighlightText
private Color textInactiveText = new Color(142,143,145); //textInactiveText
public enum ColorType{
control("control"), info("info"), nimbusAlertYellow("nimbusAlertYellow"),
nimbusBase("nimbusBase"), nimbusDisabledText("nimbusDisabledText"),
nimbusFocus("nimbusFocus"), nimbusGreen("nimbusGreen"),
nimbusInfoBlue("nimbusInfoBlue"), nimbusLightBackground("nimbusLightBackground"),
nimbusOrange("nimbusOrange"), nimbusRed("nimbusRed"),
nimbusSelectedText("nimbusSelectedText"), nimbusSelectionBackground("nimbusSelectionBackground"),
text("text"), activeCaption("activeCaption"), background("background"),
controlDkShadow("controlDkShadow"), controlHighlight("controlHighlight"),
controlLHighlight("controlLHighlight"), controlShadow("controlShadow"),
controlText("controlText"), desktop("desktop"), inactiveCaption("inactiveCaption"),
infoText("infoText"), menu("menu"), menuText("menuText"), nimbusBlueGrey("nimbusBlueGrey"),
nimbusBorder("nimbusBorder"), nimbusSelection("nimbusSelection"), scrollbar("scrollbar"),
textBackground("textBackground"), textForeground("textForeground"),
textHighlight("textHighlight"), textHighlightText("textHighlightText"),
textInactiveText("textInactiveText");
String key;
ColorType(String key){
this.key = key;
}
public String getKey(){
return key;
}
}
public Theme(){
}
public Theme(Color nimbusBase, Color control, String name){
this.nimbusBase = nimbusBase;
this.control = control;
this.name = name;
}
public Theme(Color nimbusBase, Color control, Color text, String name){
this.nimbusBase = nimbusBase;
this.control = control;
this.text = text;
this.name = name;
}
public Theme(Color nimbusBase, Color control, Color text, Color info, String name){
this.nimbusBase = nimbusBase;
this.control = control;
this.text = text;
this.info = info;
this.name = name;
}
@Override
public void setNimbusBaseColor(Color c) {
nimbusBase = c;
}
@Override
public Color getNimbusBaseColor() {
return nimbusBase;
}
@Override
public void setControlColor(Color c) {
control = c;
}
@Override
public Color getControlColor() {
return control;
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public String getName() {
return name;
}
@Override
public String toString(){
return name;
}
@Override
public void setTextColor(Color c) {
text = c;
}
@Override
public Color getTextColor() {
return text;
}
@Override
public void setInfoColor(Color c) {
info = c;
}
@Override
public Color getInfoColor() {
return info;
}
public void applyTheme(Frame frame){
UIManager.put(ColorType.control.getKey(),control);
UIManager.put(ColorType.info.getKey(),info);
UIManager.put(ColorType.nimbusAlertYellow.getKey(),nimbusAlertYellow);
UIManager.put(ColorType.nimbusBase.getKey(),nimbusBase);
UIManager.put(ColorType.nimbusDisabledText.getKey(),nimbusDisabledText);
UIManager.put(ColorType.nimbusFocus.getKey(),nimbusFocus);
UIManager.put(ColorType.nimbusGreen.getKey(),nimbusGreen);
UIManager.put(ColorType.nimbusInfoBlue.getKey(),nimbusInfoBlue);
UIManager.put(ColorType.nimbusLightBackground.getKey(),nimbusLightBackground);
UIManager.put(ColorType.nimbusOrange.getKey(),nimbusOrange);
UIManager.put(ColorType.nimbusRed.getKey(),nimbusRed);
UIManager.put(ColorType.nimbusSelectedText.getKey(),nimbusSelectedText);
UIManager.put(ColorType.nimbusSelectionBackground.getKey(),nimbusSelectionBackground);
UIManager.put(ColorType.text.getKey(),text);
UIManager.put(ColorType.activeCaption.getKey(),activeCaption);
UIManager.put(ColorType.background.getKey(),background);
UIManager.put(ColorType.controlDkShadow.getKey(),controlDkShadow);
UIManager.put(ColorType.controlHighlight.getKey(),controlHighlight);
UIManager.put(ColorType.controlLHighlight.getKey(),controlLHighlight);
UIManager.put(ColorType.controlShadow.getKey(),controlShadow);
UIManager.put(ColorType.controlText.getKey(),controlText);
UIManager.put(ColorType.desktop.getKey(),desktop);
UIManager.put(ColorType.inactiveCaption.getKey(),inactiveCaption);
UIManager.put(ColorType.infoText.getKey(),infoText);
UIManager.put(ColorType.menu.getKey(),menu);
UIManager.put(ColorType.menuText.getKey(),menuText);
UIManager.put(ColorType.nimbusBlueGrey.getKey(),nimbusBlueGrey);
UIManager.put(ColorType.nimbusBorder.getKey(),nimbusBorder);
UIManager.put(ColorType.nimbusSelection.getKey(),nimbusSelection);
UIManager.put(ColorType.scrollbar.getKey(),scrollbar);
UIManager.put(ColorType.textBackground.getKey(),textBackground);
UIManager.put(ColorType.textForeground.getKey(),textForeground);
UIManager.put(ColorType.textHighlight.getKey(),textHighlight);
UIManager.put(ColorType.textHighlightText.getKey(),textHighlightText);
UIManager.put(ColorType.textInactiveText.getKey(),textInactiveText);
SwingUtilities.updateComponentTreeUI(frame);
}
public void setColor(ColorType ct, Color c){
switch(ct){
case control : control = c; break;
case info : info = c; break;
case nimbusAlertYellow : nimbusAlertYellow = c; break;
case nimbusBase : nimbusBase = c; break;
case nimbusDisabledText : nimbusDisabledText = c; break;
case nimbusFocus : nimbusFocus = c; break;
case nimbusGreen : nimbusGreen = c; break;
case nimbusInfoBlue : nimbusInfoBlue = c; break;
case nimbusLightBackground : nimbusLightBackground = c; break;
case nimbusOrange : nimbusOrange = c; break;
case nimbusRed : nimbusRed = c; break;
case nimbusSelectedText : nimbusSelectedText = c; break;
case nimbusSelectionBackground : nimbusSelectionBackground = c; break;
case text : text = c; break;
case activeCaption : activeCaption = c; break;
case background : background = c; break;
case controlDkShadow : controlDkShadow = c; break;
case controlHighlight : controlHighlight = c; break;
case controlLHighlight : controlLHighlight = c; break;
case controlShadow : controlShadow = c; break;
case controlText : controlText = c; break;
case desktop : desktop = c; break;
case inactiveCaption : inactiveCaption = c; break;
case infoText : infoText = c; break;
case menu : menu = c; break;
case menuText : menuText = c; break;
case nimbusBlueGrey : nimbusBlueGrey = c; break;
case nimbusBorder : nimbusBorder = c; break;
case nimbusSelection : nimbusSelection = c; break;
case scrollbar : scrollbar = c; break;
case textBackground : textBackground = c; break;
case textForeground : textForeground = c; break;
case textHighlight : textHighlight = c; break;
case textHighlightText : textHighlightText = c; break;
case textInactiveText : textInactiveText = c; break;
}
}
}