package org.pzone.crypto;
|
|
import java.io.File;
|
import java.io.FileWriter;
|
import java.io.IOException;
|
|
import javax.swing.JDialog;
|
import javax.swing.JFrame;
|
import javax.swing.UIManager;
|
|
import org.dom4j.Document;
|
import org.dom4j.DocumentException;
|
import org.dom4j.DocumentHelper;
|
import org.dom4j.Element;
|
import org.dom4j.io.OutputFormat;
|
import org.dom4j.io.SAXReader;
|
import org.dom4j.io.XMLWriter;
|
import org.jvnet.substance.SubstanceLookAndFeel;
|
import org.jvnet.substance.border.ClassicBorderPainter;
|
import org.jvnet.substance.border.FlatBorderPainter;
|
import org.jvnet.substance.border.GlassBorderPainter;
|
import org.jvnet.substance.border.NullBorderPainter;
|
import org.jvnet.substance.border.SimplisticSoftBorderPainter;
|
import org.jvnet.substance.border.StandardBorderPainter;
|
import org.jvnet.substance.border.SubstanceBorderPainter;
|
import org.jvnet.substance.button.ClassicButtonShaper;
|
import org.jvnet.substance.button.StandardButtonShaper;
|
import org.jvnet.substance.button.SubstanceButtonShaper;
|
import org.jvnet.substance.painter.ClassicGradientPainter;
|
import org.jvnet.substance.painter.FlatGradientPainter;
|
import org.jvnet.substance.painter.GlassGradientPainter;
|
import org.jvnet.substance.painter.GradientWaveGradientPainter;
|
import org.jvnet.substance.painter.MatteGradientPainter;
|
import org.jvnet.substance.painter.NoiseGradientPainter;
|
import org.jvnet.substance.painter.SimplisticGradientPainter;
|
import org.jvnet.substance.painter.SpecularGradientPainter;
|
import org.jvnet.substance.painter.SpecularWaveGradientPainter;
|
import org.jvnet.substance.painter.StandardGradientPainter;
|
import org.jvnet.substance.painter.SubduedGradientPainter;
|
import org.jvnet.substance.painter.SubstanceGradientPainter;
|
import org.jvnet.substance.painter.WaveGradientPainter;
|
import org.jvnet.substance.skin.AutumnSkin;
|
import org.jvnet.substance.skin.BusinessBlackSteelSkin;
|
import org.jvnet.substance.skin.BusinessBlueSteelSkin;
|
import org.jvnet.substance.skin.BusinessSkin;
|
import org.jvnet.substance.skin.ChallengerDeepSkin;
|
import org.jvnet.substance.skin.CremeSkin;
|
import org.jvnet.substance.skin.EbonyHighContrastSkin;
|
import org.jvnet.substance.skin.EmeraldDuskSkin;
|
import org.jvnet.substance.skin.FieldOfWheatSkin;
|
import org.jvnet.substance.skin.FindingNemoSkin;
|
import org.jvnet.substance.skin.GreenMagicSkin;
|
import org.jvnet.substance.skin.MagmaSkin;
|
import org.jvnet.substance.skin.MangoSkin;
|
import org.jvnet.substance.skin.MistAquaSkin;
|
import org.jvnet.substance.skin.MistSilverSkin;
|
import org.jvnet.substance.skin.ModerateSkin;
|
import org.jvnet.substance.skin.NebulaBrickWallSkin;
|
import org.jvnet.substance.skin.NebulaSkin;
|
import org.jvnet.substance.skin.OfficeBlue2007Skin;
|
import org.jvnet.substance.skin.OfficeSilver2007Skin;
|
import org.jvnet.substance.skin.RavenGraphiteGlassSkin;
|
import org.jvnet.substance.skin.RavenGraphiteSkin;
|
import org.jvnet.substance.skin.RavenSkin;
|
import org.jvnet.substance.skin.SaharaSkin;
|
import org.jvnet.substance.skin.SubstanceBusinessBlackSteelLookAndFeel;
|
import org.jvnet.substance.skin.SubstanceSkin;
|
import org.jvnet.substance.theme.SubstanceAquaTheme;
|
import org.jvnet.substance.theme.SubstanceBarbyPinkTheme;
|
import org.jvnet.substance.theme.SubstanceBlendBiTheme;
|
import org.jvnet.substance.theme.SubstanceBottleGreenTheme;
|
import org.jvnet.substance.theme.SubstanceBrownTheme;
|
import org.jvnet.substance.theme.SubstanceCharcoalTheme;
|
import org.jvnet.substance.theme.SubstanceCremeTheme;
|
import org.jvnet.substance.theme.SubstanceDarkVioletTheme;
|
import org.jvnet.substance.theme.SubstanceDesertSandTheme;
|
import org.jvnet.substance.theme.SubstanceEbonyTheme;
|
import org.jvnet.substance.theme.SubstanceJadeForestTheme;
|
import org.jvnet.substance.theme.SubstanceLightAquaTheme;
|
import org.jvnet.substance.theme.SubstanceLimeGreenTheme;
|
import org.jvnet.substance.theme.SubstanceOliveTheme;
|
import org.jvnet.substance.theme.SubstanceOrangeTheme;
|
import org.jvnet.substance.theme.SubstancePurpleTheme;
|
import org.jvnet.substance.theme.SubstanceRaspberryTheme;
|
import org.jvnet.substance.theme.SubstanceSepiaTheme;
|
import org.jvnet.substance.theme.SubstanceSteelBlueTheme;
|
import org.jvnet.substance.theme.SubstanceSunGlareTheme;
|
import org.jvnet.substance.theme.SubstanceSunsetTheme;
|
import org.jvnet.substance.theme.SubstanceTerracottaTheme;
|
import org.jvnet.substance.theme.SubstanceTheme;
|
import org.jvnet.substance.theme.SubstanceUltramarineTheme;
|
import org.jvnet.substance.title.ArcHeaderPainter;
|
import org.jvnet.substance.title.BrushedMetalHeaderPainter;
|
import org.jvnet.substance.title.ClassicTitlePainter;
|
import org.jvnet.substance.title.FlatTitlePainter;
|
import org.jvnet.substance.title.Glass3DTitlePainter;
|
import org.jvnet.substance.title.MarbleNoiseHeaderPainter;
|
import org.jvnet.substance.title.MatteHeaderPainter;
|
import org.jvnet.substance.title.RandomCubesTitlePainter;
|
import org.jvnet.substance.title.SubstanceTitlePainter;
|
import org.jvnet.substance.watermark.SubstanceBinaryWatermark;
|
import org.jvnet.substance.watermark.SubstanceBubblesWatermark;
|
import org.jvnet.substance.watermark.SubstanceCopperplateEngravingWatermark;
|
import org.jvnet.substance.watermark.SubstanceCrosshatchWatermark;
|
import org.jvnet.substance.watermark.SubstanceFabricWatermark;
|
import org.jvnet.substance.watermark.SubstanceGenericNoiseWatermark;
|
import org.jvnet.substance.watermark.SubstanceKatakanaWatermark;
|
import org.jvnet.substance.watermark.SubstanceLatchWatermark;
|
import org.jvnet.substance.watermark.SubstanceMagneticFieldWatermark;
|
import org.jvnet.substance.watermark.SubstanceMarbleVeinWatermark;
|
import org.jvnet.substance.watermark.SubstanceMazeWatermark;
|
import org.jvnet.substance.watermark.SubstanceMetalWallWatermark;
|
import org.jvnet.substance.watermark.SubstanceMosaicWatermark;
|
import org.jvnet.substance.watermark.SubstanceNoneWatermark;
|
import org.jvnet.substance.watermark.SubstanceNullWatermark;
|
import org.jvnet.substance.watermark.SubstancePlanktonWatermark;
|
import org.jvnet.substance.watermark.SubstanceStripeWatermark;
|
import org.jvnet.substance.watermark.SubstanceWatermark;
|
import org.jvnet.substance.watermark.SubstanceWoodWatermark;
|
|
public class SkinConfig {
|
|
static public final String ConfigFileName = "skin_config.xml";
|
static public final int ProgamTypeType_PC = 0;
|
static public final int ProgamTypeType_PAD = 1;
|
|
static public final int ShowLowMonBarType_Count = 0;
|
static public final int ShowLowMonBarType_Percent = 1;
|
|
public String mTheme = "Steel Blue";
|
public String mButtonShaper = "Standard";
|
public String mWatermark = "Metal Wall";
|
public String mBorderPainter = "Classic";
|
public String mGradientPainter = "Wave";
|
public String mTitlePainter = "Glass 3D";
|
|
public SkinConfig()
|
{
|
File f = new File(ConfigFileName);
|
if(false == f.exists())
|
{
|
writeConfigToXml();
|
}
|
|
readConfigFromXml();
|
}
|
|
public void writeConfigToXml()
|
{
|
try {
|
Document document = DocumentHelper.createDocument();
|
Element root = document.addElement("root");
|
//root.addComment("���һ��ע��");
|
|
Element param = root.addElement("theme"); param.addText(mTheme);
|
param = root.addElement("button_shaper"); param.addText(mButtonShaper);
|
param = root.addElement("water_mark"); param.addText(mWatermark);
|
param = root.addElement("border_painter"); param.addText(mBorderPainter);
|
param = root.addElement("gradient_painter"); param.addText(mGradientPainter);
|
param = root.addElement("title_painter"); param.addText(mTitlePainter);
|
|
OutputFormat format = OutputFormat.createPrettyPrint();
|
format.setEncoding("gbk");
|
XMLWriter writer2 = new XMLWriter(new FileWriter(ConfigFileName), format);
|
writer2.write(document);
|
writer2.close();
|
} catch (IllegalArgumentException | IOException e) {
|
e.printStackTrace();
|
}
|
}
|
|
public void readConfigFromXml()
|
{
|
boolean res = true;
|
try
|
{
|
SAXReader reader = new SAXReader();
|
Document document = reader.read(new File(ConfigFileName));
|
Element rootnode = document.getRootElement();
|
|
Element node = rootnode.element("theme"); mTheme = node.getTextTrim();
|
node = rootnode.element("button_shaper"); mButtonShaper = node.getTextTrim();
|
node = rootnode.element("water_mark"); mWatermark = node.getTextTrim();
|
node = rootnode.element("border_painter"); mBorderPainter = node.getTextTrim();
|
node = rootnode.element("gradient_painter"); mGradientPainter = node.getTextTrim();
|
node = rootnode.element("title_painter"); mTitlePainter = node.getTextTrim();
|
|
} catch (NullPointerException | DocumentException e) {
|
res = false;
|
e.printStackTrace();
|
} finally{
|
if(false == res)
|
writeConfigToXml();
|
}
|
}
|
|
public void saveLookAndFeel()
|
{
|
mTheme = SubstanceLookAndFeel.getCurrentThemeName();
|
mButtonShaper = SubstanceLookAndFeel.getCurrentButtonShaperName();
|
mWatermark = SubstanceLookAndFeel.getCurrentWatermarkName();
|
mBorderPainter = SubstanceLookAndFeel.getCurrentBorderPainterName();
|
mGradientPainter = SubstanceLookAndFeel.getCurrentGradientPainterName();
|
mTitlePainter = SubstanceLookAndFeel.getCurrentTitlePainterName();
|
if((null != mTheme) && (null != mButtonShaper)) {
|
writeConfigToXml();
|
}
|
/*
|
System.out.println("ThemeName: " + mTheme);
|
System.out.println("ButtonShaperName: " + mButtonShaper);
|
System.out.println("WatermarkName: " + mWatermark);
|
System.out.println("BorderPainterName: " + mBorderPainter);
|
System.out.println("GradientPainterName: " + mGradientPainter);
|
System.out.println("TitlePainterName: " + mTitlePainter);
|
*/
|
}
|
|
public SubstanceSkin getSkin()
|
{
|
SubstanceSkin sk = new BusinessSkin();
|
String skin = mTheme;
|
|
if(skin.equals("Autumn")) {
|
sk = new AutumnSkin();
|
}
|
if(skin.equals("Business Black Steel")) {
|
sk = new BusinessBlackSteelSkin();
|
}
|
if(skin.equals("Business Blue Steel")) {
|
sk = new BusinessBlueSteelSkin();
|
}
|
if(skin.equals("Business")) {
|
sk = new BusinessSkin();
|
}
|
if(skin.equals("Challenger Deep")) {
|
sk = new ChallengerDeepSkin();
|
}
|
if(skin.equals("Creme")) {
|
sk = new CremeSkin();
|
}
|
if(skin.equals("Ebony High Contrast")) {
|
sk = new EbonyHighContrastSkin();
|
}
|
if(skin.equals("Emerald Dusk")) {
|
sk = new EmeraldDuskSkin();
|
}
|
if(skin.equals("Field Of Wheat")) {
|
sk = new FieldOfWheatSkin();
|
}
|
if(skin.equals("Finding Nemo")) {
|
sk = new FindingNemoSkin();
|
}
|
if(skin.equals("Green Magic")) {
|
sk = new GreenMagicSkin();
|
}
|
if(skin.equals("Magma")) {
|
sk = new MagmaSkin();
|
}
|
if(skin.equals("Mango")) {
|
sk = new MangoSkin();
|
}
|
if(skin.equals("Mist Aqua")) {
|
sk = new MistAquaSkin();
|
}
|
if(skin.equals("Mist Silver")) {
|
sk = new MistSilverSkin();
|
}
|
if(skin.equals("Moderate")) {
|
sk = new ModerateSkin();
|
}
|
if(skin.equals("Nebula Brick Wall")) {
|
sk = new NebulaBrickWallSkin();
|
}
|
if(skin.equals("Nebula")) {
|
sk = new NebulaSkin();
|
}
|
if(skin.equals("Office Blue 2007")) {
|
sk = new OfficeBlue2007Skin();
|
}
|
if(skin.equals("Office Silver 2007")) {
|
sk = new OfficeSilver2007Skin();
|
}
|
if(skin.equals("Raven Graphite Glass")) {
|
sk = new RavenGraphiteGlassSkin();
|
}
|
if(skin.equals("Raven Graphite")) {
|
sk = new RavenGraphiteSkin();
|
}
|
if(skin.equals("Raven")) {
|
sk = new RavenSkin();
|
}
|
if(skin.equals("Sahara")) {
|
sk = new SaharaSkin();
|
}
|
|
return sk;
|
}
|
|
public SubstanceTheme getTheme()
|
{
|
SubstanceTheme st = null;
|
|
if(mTheme.equals("Aqua")) {
|
st = new SubstanceAquaTheme();
|
}
|
if(mTheme.equals("Barby Pink")) {
|
st = new SubstanceBarbyPinkTheme();
|
}
|
if(mTheme.equals("Blend Bi")) {
|
st = new SubstanceBlendBiTheme(null, null, 0);
|
}
|
if(mTheme.equals("Bottle Green")) {
|
st = new SubstanceBottleGreenTheme();
|
}
|
if(mTheme.equals("Brown")) {
|
st = new SubstanceBrownTheme();
|
}
|
if(mTheme.equals("Charcoal")) {
|
st = new SubstanceCharcoalTheme();
|
}
|
if(mTheme.equals("Creme")) {
|
st = new SubstanceCremeTheme();
|
}
|
if(mTheme.equals("Dark Violet")) {
|
st = new SubstanceDarkVioletTheme();
|
}
|
if(mTheme.equals("Desert Sand")) {
|
st = new SubstanceDesertSandTheme();
|
}
|
if(mTheme.equals("Ebony")) {
|
st = new SubstanceEbonyTheme();
|
}
|
if(mTheme.equals("Jade Forest")) {
|
st = new SubstanceJadeForestTheme();
|
}
|
if(mTheme.equals("Light Aqua")) {
|
st = new SubstanceLightAquaTheme();
|
}
|
if(mTheme.equals("Lime Green")) {
|
st = new SubstanceLimeGreenTheme();
|
}
|
if(mTheme.equals("Olive")) {
|
st = new SubstanceOliveTheme();
|
}
|
if(mTheme.equals("Orange")) {
|
st = new SubstanceOrangeTheme();
|
}
|
if(mTheme.equals("Purple")) {
|
st = new SubstancePurpleTheme();
|
}
|
if(mTheme.equals("Raspberry")) {
|
st = new SubstanceRaspberryTheme();
|
}
|
if(mTheme.equals("Sepia")) {
|
st = new SubstanceSepiaTheme();
|
}
|
if(mTheme.equals("Steel Blue")) {
|
st = new SubstanceSteelBlueTheme();
|
}
|
if(mTheme.equals("Sun Glare")) {
|
st = new SubstanceSunGlareTheme();
|
}
|
if(mTheme.equals("Sunset")) {
|
st = new SubstanceSunsetTheme();
|
}
|
if(mTheme.equals("Terracotta")) {
|
st = new SubstanceTerracottaTheme();
|
}
|
if(mTheme.equals("Ultramarine")) {
|
st = new SubstanceUltramarineTheme();
|
}
|
|
return st;
|
}
|
|
public SubstanceButtonShaper getButtonShaper()
|
{
|
if(mButtonShaper.equals("Classic"))
|
{
|
return new ClassicButtonShaper();
|
}
|
if(mButtonShaper.equals("Standard"))
|
{
|
return new StandardButtonShaper();
|
}
|
return new ClassicButtonShaper();
|
}
|
|
public SubstanceWatermark getWatermark()
|
{
|
if(mWatermark.equals("Binary"))
|
{
|
return new SubstanceBinaryWatermark();
|
}
|
if(mWatermark.equals("Bubbles"))
|
{
|
return new SubstanceBubblesWatermark();
|
}
|
if(mWatermark.equals("Copperplate Engraving"))
|
{
|
return new SubstanceCopperplateEngravingWatermark();
|
}
|
if(mWatermark.equals("Crosshatch"))
|
{
|
return new SubstanceCrosshatchWatermark();
|
}
|
if(mWatermark.equals("Fabric"))
|
{
|
return new SubstanceFabricWatermark();
|
}
|
if(mWatermark.equals("Generic Noise"))
|
{
|
return new SubstanceGenericNoiseWatermark();
|
}
|
if(mWatermark.equals("Katakana"))
|
{
|
return new SubstanceKatakanaWatermark();
|
}
|
if(mWatermark.equals("Latch"))
|
{
|
return new SubstanceLatchWatermark();
|
}
|
if(mWatermark.equals("Magnetic Field"))
|
{
|
return new SubstanceMagneticFieldWatermark();
|
}
|
if(mWatermark.equals("Marble Vein"))
|
{
|
return new SubstanceMarbleVeinWatermark();
|
}
|
if(mWatermark.equals("Maze"))
|
{
|
return new SubstanceMazeWatermark();
|
}
|
if(mWatermark.equals("Metal Wall"))
|
{
|
return new SubstanceMetalWallWatermark();
|
}
|
if(mWatermark.equals("Mosaic"))
|
{
|
return new SubstanceMosaicWatermark();
|
}
|
if(mWatermark.equals("None"))
|
{
|
return new SubstanceNoneWatermark();
|
}
|
if(mWatermark.equals("Null"))
|
{
|
return new SubstanceNullWatermark();
|
}
|
if(mWatermark.equals("Plankton"))
|
{
|
return new SubstancePlanktonWatermark();
|
}
|
if(mWatermark.equals("Stripe"))
|
{
|
return new SubstanceStripeWatermark();
|
}
|
if(mWatermark.equals("Wood"))
|
{
|
return new SubstanceWoodWatermark();
|
}
|
return new SubstanceBinaryWatermark();
|
}
|
|
public SubstanceBorderPainter getBorderPainter()
|
{
|
if(mBorderPainter.equals("Classic"))
|
{
|
return new ClassicBorderPainter();
|
}
|
if(mBorderPainter.equals("Flat"))
|
{
|
return new FlatBorderPainter();
|
}
|
if(mBorderPainter.equals("Glass"))
|
{
|
return new GlassBorderPainter();
|
}
|
if(mBorderPainter.equals("Null"))
|
{
|
return new NullBorderPainter();
|
}
|
if(mBorderPainter.equals("Simplistic Soft"))
|
{
|
return new SimplisticSoftBorderPainter();
|
}
|
if(mBorderPainter.equals("Standard"))
|
{
|
return new StandardBorderPainter();
|
}
|
return new ClassicBorderPainter();
|
}
|
|
public SubstanceGradientPainter getGradientPainter()
|
{
|
if(mGradientPainter.equals("Classic"))
|
{
|
return new ClassicGradientPainter();
|
}
|
if(mGradientPainter.equals("Flat"))
|
{
|
return new FlatGradientPainter();
|
}
|
if(mGradientPainter.equals("Glass"))
|
{
|
return new GlassGradientPainter();
|
}
|
if(mGradientPainter.equals("Gradient Wave"))
|
{
|
return new GradientWaveGradientPainter();
|
}
|
if(mGradientPainter.equals("Matte"))
|
{
|
return new MatteGradientPainter();
|
}
|
if(mGradientPainter.equals("Noise"))
|
{
|
return new NoiseGradientPainter();
|
}
|
if(mGradientPainter.equals("Simplistic"))
|
{
|
return new SimplisticGradientPainter();
|
}
|
if(mGradientPainter.equals("Specular"))
|
{
|
return new SpecularGradientPainter();
|
}
|
if(mGradientPainter.equals("Specular Wave"))
|
{
|
return new SpecularWaveGradientPainter();
|
}
|
if(mGradientPainter.equals("Standard"))
|
{
|
return new StandardGradientPainter();
|
}
|
if(mGradientPainter.equals("Subdued"))
|
{
|
return new SubduedGradientPainter();
|
}
|
if(mGradientPainter.equals("Wave"))
|
{
|
return new WaveGradientPainter();
|
}
|
return new ClassicGradientPainter();
|
}
|
|
public SubstanceTitlePainter getTitlePainter()
|
{
|
if(mTitlePainter.equals("Arc"))
|
{
|
return new ArcHeaderPainter();
|
}
|
if(mTitlePainter.equals("Brushed Metal"))
|
{
|
return new BrushedMetalHeaderPainter();
|
}
|
if(mTitlePainter.equals("Classic"))
|
{
|
return new ClassicTitlePainter();
|
}
|
if(mTitlePainter.equals("Flat"))
|
{
|
return new FlatTitlePainter();
|
}
|
if(mTitlePainter.equals("Glass 3D"))
|
{
|
return new Glass3DTitlePainter();
|
}
|
if(mTitlePainter.equals("Marble Noise"))
|
{
|
return new MarbleNoiseHeaderPainter();
|
}
|
if(mTitlePainter.equals("Matte"))
|
{
|
return new MatteHeaderPainter();
|
}
|
if(mTitlePainter.equals("Random Cubes"))
|
{
|
return new RandomCubesTitlePainter();
|
}
|
return new ArcHeaderPainter();
|
}
|
|
public static void setupLookAndFeel(boolean hide_title_bar)
|
{
|
try {
|
UIManager.setLookAndFeel(new SubstanceBusinessBlackSteelLookAndFeel());
|
if(false == hide_title_bar)
|
{
|
JFrame.setDefaultLookAndFeelDecorated(true); //���ϴ������ͬ�������Ҳ�ı�
|
}
|
|
JDialog.setDefaultLookAndFeelDecorated(true); //���ϴ�����ʹ�����ĶԻ���Ҳ�ı�
|
|
SkinConfig sc = new SkinConfig();
|
|
if(null != sc.getTheme())
|
{
|
SubstanceLookAndFeel.setCurrentTheme(sc.getTheme());
|
}
|
else
|
{
|
SubstanceLookAndFeel.setSkin(sc.getSkin());
|
}
|
|
SubstanceLookAndFeel.setCurrentButtonShaper(sc.getButtonShaper());
|
SubstanceLookAndFeel.setCurrentWatermark(sc.getWatermark());
|
SubstanceLookAndFeel.setCurrentBorderPainter(sc.getBorderPainter());
|
SubstanceLookAndFeel.setCurrentGradientPainter(sc.getGradientPainter());
|
SubstanceLookAndFeel.setCurrentTitlePainter(sc.getTitlePainter());
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
System.out.println("SubstanceLookAndFeel: " + e.getMessage());
|
}
|
}
|
}
|