0001: /*
0002: * Copyright (c) 2005-2008 Substance Kirill Grouchnikov. All Rights Reserved.
0003: *
0004: * Redistribution and use in source and binary forms, with or without
0005: * modification, are permitted provided that the following conditions are met:
0006: *
0007: * o Redistributions of source code must retain the above copyright notice,
0008: * this list of conditions and the following disclaimer.
0009: *
0010: * o Redistributions in binary form must reproduce the above copyright notice,
0011: * this list of conditions and the following disclaimer in the documentation
0012: * and/or other materials provided with the distribution.
0013: *
0014: * o Neither the name of Substance Kirill Grouchnikov nor the names of
0015: * its contributors may be used to endorse or promote products derived
0016: * from this software without specific prior written permission.
0017: *
0018: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0019: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
0020: * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
0021: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
0022: * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
0023: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
0024: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
0025: * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
0026: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
0027: * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
0028: * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0029: */
0030: package test.check;
0031:
0032: import java.awt.Event;
0033: import java.awt.Frame;
0034: import java.awt.event.*;
0035: import java.util.LinkedList;
0036: import java.util.Map;
0037:
0038: import javax.swing.*;
0039:
0040: import org.jvnet.substance.SubstanceImageCreator;
0041: import org.jvnet.substance.SubstanceLookAndFeel;
0042: import org.jvnet.substance.skin.SkinInfo;
0043: import org.jvnet.substance.skin.SubstanceSkin;
0044: import org.jvnet.substance.theme.*;
0045: import org.jvnet.substance.theme.SubstanceTheme.ThemeKind;
0046: import org.jvnet.substance.utils.menu.TraitMenuHandler;
0047:
0048: import test.Check;
0049:
0050: /**
0051: * Factory that creates menus for the test applications.
0052: *
0053: * @author Kirill Grouchnikov
0054: */
0055: public class SampleMenuFactory {
0056: /**
0057: * Returns the menu for changing the themes.
0058: *
0059: * @return The menu for changing the themes.
0060: */
0061: public static JMenu getThemeMenu() {
0062: Map<String, ThemeInfo> allThemes = SubstanceLookAndFeel
0063: .getAllThemes();
0064:
0065: final TraitMenuHandler themeMenuHandler = new TraitMenuHandler();
0066: JMenu themeMenu = new JMenu("Theme");
0067: JMenu brightThemes = new JMenu(SubstanceLookAndFeel
0068: .getLabelBundle().getString("SystemMenu.themesBright"));
0069: JMenu coldThemes = new JMenu(SubstanceLookAndFeel
0070: .getLabelBundle().getString("SystemMenu.themesCold"));
0071: JMenu darkThemes = new JMenu(SubstanceLookAndFeel
0072: .getLabelBundle().getString("SystemMenu.themesDark"));
0073: JMenu invertedThemes = SubstanceLookAndFeel
0074: .toEnableInvertedThemes() ? new JMenu(
0075: SubstanceLookAndFeel.getLabelBundle().getString(
0076: "SystemMenu.themesInverted")) : null;
0077: JMenu negatedThemes = SubstanceLookAndFeel
0078: .toEnableNegatedThemes() ? new JMenu(
0079: SubstanceLookAndFeel.getLabelBundle().getString(
0080: "SystemMenu.themesNegated")) : null;
0081: JMenu mixedThemes = SubstanceLookAndFeel.hasMixedThemes() ? new JMenu(
0082: SubstanceLookAndFeel.getLabelBundle().getString(
0083: "SystemMenu.themesMixed"))
0084: : null;
0085: JMenu jmShiftTheme = new JMenu("Shift themes");
0086:
0087: themeMenu.add(brightThemes);
0088: themeMenu.add(coldThemes);
0089: themeMenu.add(darkThemes);
0090: if (invertedThemes != null)
0091: themeMenu.add(invertedThemes);
0092: if (negatedThemes != null)
0093: themeMenu.add(negatedThemes);
0094: if (mixedThemes != null)
0095: themeMenu.add(mixedThemes);
0096:
0097: for (Map.Entry<String, ThemeInfo> themeEntry : allThemes
0098: .entrySet()) {
0099: final ThemeInfo themeInfo = themeEntry.getValue();
0100: final String themeClassName = themeInfo.getClassName();
0101: JRadioButtonMenuItem jmiTheme = new JRadioButtonMenuItem(
0102: themeEntry.getKey());
0103: themeMenuHandler.addTraitButton(themeInfo.getDisplayName(),
0104: jmiTheme);
0105: jmiTheme.addActionListener(new ActionListener() {
0106: public void actionPerformed(ActionEvent e) {
0107: setTheme(themeInfo);
0108: }
0109: });
0110: try {
0111: switch (themeInfo.getThemeKind()) {
0112: case MIXED:
0113: MixedThemeInfo mixedThemeInfo = (MixedThemeInfo) themeInfo;
0114: String[] themeClassNames = mixedThemeInfo
0115: .getThemeClassNames();
0116: SubstanceTheme[] themeInstances = new SubstanceTheme[themeClassNames.length];
0117: for (int i = 0; i < themeClassNames.length; i++) {
0118: Class<?> themeClass = Class
0119: .forName(themeClassNames[i]);
0120: themeInstances[i] = (SubstanceTheme) themeClass
0121: .newInstance();
0122: }
0123:
0124: SubstanceTheme mixTheme = new SubstanceMixTheme(
0125: themeInstances);
0126: jmiTheme.setIcon(SubstanceImageCreator
0127: .getThemeIcon(mixTheme));
0128: break;
0129: default:
0130: Class<?> themeClass = Class.forName(themeClassName);
0131: SubstanceTheme theme = (SubstanceTheme) themeClass
0132: .newInstance();
0133: if (themeInfo.getThemeKind() == ThemeKind.INVERTED)
0134: theme = new SubstanceInvertedTheme(theme);
0135: if (themeInfo.getThemeKind() == ThemeKind.NEGATED)
0136: theme = new SubstanceNegatedTheme(theme);
0137: jmiTheme.setIcon(SubstanceImageCreator
0138: .getThemeIcon(theme));
0139: }
0140: } catch (Exception exc) {
0141: continue;
0142: }
0143: if (themeEntry.getKey().equals(
0144: SubstanceLookAndFeel.getCurrentThemeName())) {
0145: jmiTheme.setSelected(true);
0146: }
0147: switch (themeEntry.getValue().getThemeKind()) {
0148: case BRIGHT:
0149: brightThemes.add(jmiTheme);
0150: break;
0151: case COLD:
0152: coldThemes.add(jmiTheme);
0153: break;
0154: case DARK:
0155: darkThemes.add(jmiTheme);
0156: break;
0157: case INVERTED:
0158: invertedThemes.add(jmiTheme);
0159: break;
0160: case NEGATED:
0161: negatedThemes.add(jmiTheme);
0162: break;
0163: case MIXED:
0164: mixedThemes.add(jmiTheme);
0165: break;
0166: // case DARK_MIXED:
0167: // mixedDarkThemes.add(jmiTheme);
0168: // break;
0169: }
0170: }
0171:
0172: ThemeChangeListener themeChangeListener = new ThemeChangeListener() {
0173: public void themeChanged() {
0174: themeMenuHandler.selectTraitButton(SubstanceLookAndFeel
0175: .getTheme());
0176: }
0177: };
0178: SubstanceLookAndFeel
0179: .registerThemeChangeListener(themeChangeListener);
0180:
0181: JMenuItem jmiAquaTint10Theme = new JMenuItem("Tint Aqua 10%");
0182: jmiAquaTint10Theme.addActionListener(new ActionListener() {
0183: public void actionPerformed(ActionEvent e) {
0184: setTheme(new SubstanceAquaTheme().tint(0.1));
0185: }
0186: });
0187: jmShiftTheme.add(jmiAquaTint10Theme);
0188:
0189: JMenuItem jmiAquaTint25Theme = new JMenuItem("Tint Aqua 25%");
0190: jmiAquaTint25Theme.addActionListener(new ActionListener() {
0191: public void actionPerformed(ActionEvent e) {
0192: setTheme(new SubstanceAquaTheme().tint(0.25));
0193: }
0194: });
0195: jmShiftTheme.add(jmiAquaTint25Theme);
0196:
0197: JMenuItem jmiAquaTint40Theme = new JMenuItem("Tint Aqua 40%");
0198: jmiAquaTint40Theme.addActionListener(new ActionListener() {
0199: public void actionPerformed(ActionEvent e) {
0200: setTheme(new SubstanceAquaTheme().tint(0.4));
0201: }
0202: });
0203: jmShiftTheme.add(jmiAquaTint40Theme);
0204:
0205: JMenuItem jmiAquaTone10Theme = new JMenuItem("Tone Aqua 10%");
0206: jmiAquaTone10Theme.addActionListener(new ActionListener() {
0207: public void actionPerformed(ActionEvent e) {
0208: setTheme(new SubstanceAquaTheme().tone(0.1));
0209: }
0210: });
0211: jmShiftTheme.add(jmiAquaTone10Theme);
0212:
0213: JMenuItem jmiAquaTone25Theme = new JMenuItem("Tone Aqua 25%");
0214: jmiAquaTone25Theme.addActionListener(new ActionListener() {
0215: public void actionPerformed(ActionEvent e) {
0216: setTheme(new SubstanceAquaTheme().tone(0.25));
0217: }
0218: });
0219: jmShiftTheme.add(jmiAquaTone25Theme);
0220:
0221: JMenuItem jmiAquaTone40Theme = new JMenuItem("Tone Aqua 40%");
0222: jmiAquaTone40Theme.addActionListener(new ActionListener() {
0223: public void actionPerformed(ActionEvent e) {
0224: setTheme(new SubstanceAquaTheme().tone(0.4));
0225: }
0226: });
0227: jmShiftTheme.add(jmiAquaTone40Theme);
0228:
0229: JMenuItem jmiAquaShade10Theme = new JMenuItem("Shade Aqua 10%");
0230: jmiAquaShade10Theme.addActionListener(new ActionListener() {
0231: public void actionPerformed(ActionEvent e) {
0232: setTheme(new SubstanceAquaTheme().shade(0.1));
0233: }
0234: });
0235: jmShiftTheme.add(jmiAquaShade10Theme);
0236:
0237: JMenuItem jmiAquaShade25Theme = new JMenuItem("Shade Aqua 25%");
0238: jmiAquaShade25Theme.addActionListener(new ActionListener() {
0239: public void actionPerformed(ActionEvent e) {
0240: setTheme(new SubstanceAquaTheme().shade(0.25));
0241: }
0242: });
0243: jmShiftTheme.add(jmiAquaShade25Theme);
0244:
0245: JMenuItem jmiAquaShade40Theme = new JMenuItem("Shade Aqua 40%");
0246: jmiAquaShade40Theme.addActionListener(new ActionListener() {
0247: public void actionPerformed(ActionEvent e) {
0248: setTheme(new SubstanceAquaTheme().shade(0.4));
0249: }
0250: });
0251: jmShiftTheme.add(jmiAquaShade40Theme);
0252:
0253: JMenuItem jmiSteelBlueTone25Theme = new JMenuItem(
0254: "Tone Steel Blue 25%");
0255: jmiSteelBlueTone25Theme.addActionListener(new ActionListener() {
0256: public void actionPerformed(ActionEvent e) {
0257: setTheme(new SubstanceSteelBlueTheme().tone(0.25));
0258: }
0259: });
0260: jmShiftTheme.add(jmiSteelBlueTone25Theme);
0261:
0262: JMenuItem jmiLimeGreenShade25Theme = new JMenuItem(
0263: "Shade Lime Green 25%");
0264: jmiLimeGreenShade25Theme
0265: .addActionListener(new ActionListener() {
0266: public void actionPerformed(ActionEvent e) {
0267: setTheme(new SubstanceLimeGreenTheme()
0268: .shade(0.25));
0269: }
0270: });
0271: jmShiftTheme.add(jmiLimeGreenShade25Theme);
0272:
0273: JMenuItem jmiBarbyPinkTint25Theme = new JMenuItem(
0274: "Tint Barby Pink 25%");
0275: jmiBarbyPinkTint25Theme.addActionListener(new ActionListener() {
0276: public void actionPerformed(ActionEvent e) {
0277: setTheme(new SubstanceBarbyPinkTheme().tint(0.25));
0278: }
0279: });
0280: jmShiftTheme.add(jmiBarbyPinkTint25Theme);
0281:
0282: JMenuItem jmiAquaBottleGreenMixTint25Theme = new JMenuItem(
0283: "Tint Aqua Bottle Green Mix 25%");
0284: jmiAquaBottleGreenMixTint25Theme
0285: .addActionListener(new ActionListener() {
0286: public void actionPerformed(ActionEvent e) {
0287: setTheme(new SubstanceMixTheme(
0288: new SubstanceAquaTheme(),
0289: new SubstanceBottleGreenTheme())
0290: .tint(0.25));
0291: }
0292: });
0293: jmShiftTheme.add(jmiAquaBottleGreenMixTint25Theme);
0294:
0295: JMenuItem jmiAquaDesaturate50Theme = new JMenuItem(
0296: "Aqua Desaturate 50%");
0297: jmiAquaDesaturate50Theme
0298: .addActionListener(new ActionListener() {
0299: public void actionPerformed(ActionEvent e) {
0300: setTheme(new SubstanceAquaTheme()
0301: .saturate(-0.5));
0302: }
0303: });
0304: jmShiftTheme.add(jmiAquaDesaturate50Theme);
0305:
0306: JMenuItem jmiAquaSaturate50Theme = new JMenuItem(
0307: "Aqua Saturate 50%");
0308: jmiAquaSaturate50Theme.addActionListener(new ActionListener() {
0309: public void actionPerformed(ActionEvent e) {
0310: setTheme(new SubstanceAquaTheme().saturate(0.5));
0311: }
0312: });
0313: jmShiftTheme.add(jmiAquaSaturate50Theme);
0314:
0315: jmShiftTheme.addSeparator();
0316:
0317: JMenuItem jmiGreenBlendTheme = new JMenuItem("Green aqua blend");
0318: jmiGreenBlendTheme.addActionListener(new ActionListener() {
0319: public void actionPerformed(ActionEvent e) {
0320: setTheme(new SubstanceMixTheme(
0321: new SubstanceBlendBiTheme(
0322: new SubstanceBottleGreenTheme(),
0323: new SubstanceLimeGreenTheme(), 0.6),
0324: new SubstanceBlendBiTheme(
0325: new SubstancePurpleTheme(),
0326: new SubstanceAquaTheme(), 0.4)));
0327: }
0328: });
0329: jmShiftTheme.add(jmiGreenBlendTheme);
0330:
0331: themeMenu.add(jmShiftTheme);
0332:
0333: themeMenu.addSeparator();
0334:
0335: JMenu changeTheme = new JMenu("Change current");
0336:
0337: JMenuItem invertCurrent = new JMenuItem("Inverted current");
0338: invertCurrent.addActionListener(new ActionListener() {
0339: public void actionPerformed(ActionEvent e) {
0340: setTheme(SubstanceLookAndFeel.getTheme().invert());
0341: }
0342: });
0343: changeTheme.add(invertCurrent);
0344:
0345: JMenuItem negateCurrent = new JMenuItem("Negated current");
0346: negateCurrent.addActionListener(new ActionListener() {
0347: public void actionPerformed(ActionEvent e) {
0348: setTheme(SubstanceLookAndFeel.getTheme().negate());
0349: }
0350: });
0351: changeTheme.add(negateCurrent);
0352:
0353: changeTheme.addSeparator();
0354:
0355: JMenuItem tintCurrent = new JMenuItem("Tinted current");
0356: tintCurrent.addActionListener(new ActionListener() {
0357: public void actionPerformed(ActionEvent e) {
0358: setTheme(SubstanceLookAndFeel.getTheme().tint(0.3));
0359: }
0360: });
0361: changeTheme.add(tintCurrent);
0362:
0363: JMenuItem toneCurrent = new JMenuItem("Toned current");
0364: toneCurrent.addActionListener(new ActionListener() {
0365: public void actionPerformed(ActionEvent e) {
0366: setTheme(SubstanceLookAndFeel.getTheme().tone(0.3));
0367: }
0368: });
0369: changeTheme.add(toneCurrent);
0370:
0371: JMenuItem shadeCurrent = new JMenuItem("Shaded current");
0372: shadeCurrent.addActionListener(new ActionListener() {
0373: public void actionPerformed(ActionEvent e) {
0374: setTheme(SubstanceLookAndFeel.getTheme().shade(0.3));
0375: }
0376: });
0377: changeTheme.add(shadeCurrent);
0378:
0379: changeTheme.addSeparator();
0380:
0381: JMenuItem saturateCurrent = new JMenuItem("Saturated current");
0382: saturateCurrent.addActionListener(new ActionListener() {
0383: public void actionPerformed(ActionEvent e) {
0384: setTheme(SubstanceLookAndFeel.getTheme().saturate(0.3));
0385: }
0386: });
0387: changeTheme.add(saturateCurrent);
0388:
0389: JMenuItem saturateActiveCurrent = new JMenuItem(
0390: "Saturated active current");
0391: saturateActiveCurrent.addActionListener(new ActionListener() {
0392: public void actionPerformed(ActionEvent e) {
0393: setTheme(SubstanceLookAndFeel.getTheme().saturate(0.3,
0394: false));
0395: }
0396: });
0397: changeTheme.add(saturateActiveCurrent);
0398:
0399: JMenuItem desaturateCurrent = new JMenuItem(
0400: "Desaturated current");
0401: desaturateCurrent.addActionListener(new ActionListener() {
0402: public void actionPerformed(ActionEvent e) {
0403: setTheme(SubstanceLookAndFeel.getTheme().saturate(-0.3));
0404: }
0405: });
0406: changeTheme.add(desaturateCurrent);
0407:
0408: JMenuItem desaturateActiveCurrent = new JMenuItem(
0409: "Desaturated active current");
0410: desaturateActiveCurrent.addActionListener(new ActionListener() {
0411: public void actionPerformed(ActionEvent e) {
0412: setTheme(SubstanceLookAndFeel.getTheme().saturate(-0.3,
0413: false));
0414: }
0415: });
0416: changeTheme.add(desaturateActiveCurrent);
0417:
0418: changeTheme.addSeparator();
0419:
0420: JMenuItem hueShiftCurrent_p002 = new JMenuItem(
0421: "Hue-shift current 0.02");
0422: hueShiftCurrent_p002.addActionListener(new ActionListener() {
0423: public void actionPerformed(ActionEvent e) {
0424: setTheme(SubstanceLookAndFeel.getTheme().hueShift(0.02));
0425: }
0426: });
0427: changeTheme.add(hueShiftCurrent_p002);
0428:
0429: JMenuItem hueShiftCurrent_m002 = new JMenuItem(
0430: "Hue-shift current -0.02");
0431: hueShiftCurrent_m002.addActionListener(new ActionListener() {
0432: public void actionPerformed(ActionEvent e) {
0433: setTheme(SubstanceLookAndFeel.getTheme()
0434: .hueShift(-0.02));
0435: }
0436: });
0437: changeTheme.add(hueShiftCurrent_m002);
0438:
0439: JMenuItem hueShiftCurrent_p01 = new JMenuItem(
0440: "Hue-shift current 0.1");
0441: hueShiftCurrent_p01.addActionListener(new ActionListener() {
0442: public void actionPerformed(ActionEvent e) {
0443: setTheme(SubstanceLookAndFeel.getTheme().hueShift(0.1));
0444: }
0445: });
0446: changeTheme.add(hueShiftCurrent_p01);
0447:
0448: JMenuItem hueShiftCurrent_m01 = new JMenuItem(
0449: "Hue-shift current -0.1");
0450: hueShiftCurrent_m01.addActionListener(new ActionListener() {
0451: public void actionPerformed(ActionEvent e) {
0452: setTheme(SubstanceLookAndFeel.getTheme().hueShift(-0.1));
0453: }
0454: });
0455: changeTheme.add(hueShiftCurrent_m01);
0456:
0457: JMenuItem hueShiftCurrent_p05 = new JMenuItem(
0458: "Hue-shift current 0.5");
0459: hueShiftCurrent_p05.addActionListener(new ActionListener() {
0460: public void actionPerformed(ActionEvent e) {
0461: setTheme(SubstanceLookAndFeel.getTheme().hueShift(0.5));
0462: }
0463: });
0464: changeTheme.add(hueShiftCurrent_p05);
0465:
0466: JMenuItem hueShiftCurrent_m05 = new JMenuItem(
0467: "Hue-shift current -0.5");
0468: hueShiftCurrent_m05.addActionListener(new ActionListener() {
0469: public void actionPerformed(ActionEvent e) {
0470: setTheme(SubstanceLookAndFeel.getTheme().hueShift(-0.5));
0471: }
0472: });
0473: changeTheme.add(hueShiftCurrent_m05);
0474:
0475: changeTheme.addSeparator();
0476:
0477: final JMenuItem restoreOrig = new JMenuItem("Restore original");
0478: restoreOrig
0479: .setEnabled(SubstanceLookAndFeel.getTheme() instanceof SubstanceWrapperTheme);
0480: restoreOrig.addActionListener(new ActionListener() {
0481: public void actionPerformed(ActionEvent e) {
0482: setTheme(((SubstanceWrapperTheme) SubstanceLookAndFeel
0483: .getTheme()).getOriginalTheme());
0484: }
0485: });
0486: SubstanceLookAndFeel
0487: .registerThemeChangeListener(new ThemeChangeListener() {
0488: public void themeChanged() {
0489: restoreOrig
0490: .setEnabled(SubstanceLookAndFeel
0491: .getTheme() instanceof SubstanceWrapperTheme);
0492: }
0493: });
0494: changeTheme.add(restoreOrig);
0495:
0496: themeMenu.add(changeTheme);
0497:
0498: JMenu cbMenu = new JMenu("Color blindness");
0499: JMenuItem protanopiaCurrent = new JMenuItem(
0500: "Protanopia current");
0501: protanopiaCurrent.addActionListener(new ActionListener() {
0502: public void actionPerformed(ActionEvent e) {
0503: setTheme(SubstanceLookAndFeel.getTheme().protanopia());
0504: }
0505: });
0506: cbMenu.add(protanopiaCurrent);
0507: JMenuItem deuteranopiaCurrent = new JMenuItem(
0508: "Deuteranopia current");
0509: deuteranopiaCurrent.addActionListener(new ActionListener() {
0510: public void actionPerformed(ActionEvent e) {
0511: setTheme(SubstanceLookAndFeel.getTheme().deuteranopia());
0512: }
0513: });
0514: cbMenu.add(deuteranopiaCurrent);
0515: JMenuItem tritanopiaCurrent = new JMenuItem(
0516: "Tritanopia current");
0517: tritanopiaCurrent.addActionListener(new ActionListener() {
0518: public void actionPerformed(ActionEvent e) {
0519: setTheme(SubstanceLookAndFeel.getTheme().tritanopia());
0520: }
0521: });
0522: cbMenu.add(tritanopiaCurrent);
0523: themeMenu.add(cbMenu);
0524:
0525: themeMenu.addSeparator();
0526:
0527: JMenuItem jmiCaribbeanBlueTheme = new JMenuItem(
0528: "User - Caribbean blue");
0529: jmiCaribbeanBlueTheme.addActionListener(new ActionListener() {
0530: public void actionPerformed(ActionEvent e) {
0531: setTheme(new SubstanceTheme(
0532: new CaribbeanBlueColorScheme(),
0533: "Caribbean blue",
0534: SubstanceTheme.ThemeKind.BRIGHT));
0535: }
0536: });
0537: themeMenu.add(jmiCaribbeanBlueTheme);
0538:
0539: JMenuItem jmiCrimsonTheme = new JMenuItem("User - Crimson");
0540: jmiCrimsonTheme.addActionListener(new ActionListener() {
0541: public void actionPerformed(ActionEvent e) {
0542: setTheme(new SubstanceTheme(new CrimsonColorScheme(),
0543: "Crimson", SubstanceTheme.ThemeKind.BRIGHT));
0544: }
0545: });
0546: themeMenu.add(jmiCrimsonTheme);
0547:
0548: return themeMenu;
0549: }
0550:
0551: /**
0552: * Sets the specified theme.
0553: *
0554: * @param theme
0555: * Theme to set.
0556: */
0557: public static void setTheme(final SubstanceTheme theme) {
0558: SwingUtilities.invokeLater(new Runnable() {
0559: public void run() {
0560: try {
0561: SubstanceLookAndFeel.setCurrentTheme(theme);
0562: } catch (Exception exc) {
0563: exc.printStackTrace();
0564: }
0565: for (Frame frame : Frame.getFrames())
0566: SwingUtilities.updateComponentTreeUI(frame);
0567: }
0568: });
0569: }
0570:
0571: /**
0572: * Sets the specified theme.
0573: *
0574: * @param themeInfo
0575: * Theme information object.
0576: */
0577: public static void setTheme(final ThemeInfo themeInfo) {
0578: SwingUtilities.invokeLater(new Runnable() {
0579: public void run() {
0580: try {
0581: SubstanceLookAndFeel.setCurrentTheme(themeInfo);
0582: } catch (Exception exc) {
0583: exc.printStackTrace();
0584: }
0585: for (Frame frame : Frame.getFrames())
0586: SwingUtilities.updateComponentTreeUI(frame);
0587: }
0588: });
0589: }
0590:
0591: /**
0592: * Returns a sample test menu.
0593: *
0594: * @return Sample test menu.
0595: */
0596: public static JMenu getTestMenu() {
0597: JMenu testMenu = new JMenu("Test");
0598: testMenu.setMnemonic('1');
0599: int mcount = 0;
0600: for (LinkedList<JMenuItem> miList : getTestMenuItems()) {
0601: if (mcount > 0) {
0602: if (mcount % 2 == 0)
0603: testMenu.addSeparator();
0604: else
0605: testMenu.add(new JSeparator());
0606: }
0607: for (JMenuItem menuItem : miList) {
0608: testMenu.add(menuItem);
0609: }
0610: mcount++;
0611: }
0612:
0613: return testMenu;
0614: }
0615:
0616: /**
0617: * Returns menu items for a sample test menu.
0618: *
0619: * @return Menu items for a sample test menu.
0620: */
0621: public static LinkedList<LinkedList<JMenuItem>> getTestMenuItems() {
0622: LinkedList<LinkedList<JMenuItem>> result = new LinkedList<LinkedList<JMenuItem>>();
0623: LinkedList<JMenuItem> list1 = new LinkedList<JMenuItem>();
0624: final JMenuItem jmi1 = new JMenuItem("Menu item enabled", Check
0625: .getIcon("flag_sweden"));
0626: jmi1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
0627: Event.CTRL_MASK));
0628: JMenuItem jmi2 = new JMenuItem("Menu item disabled");
0629: jmi2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,
0630: Event.CTRL_MASK | Event.ALT_MASK));
0631: jmi2.setEnabled(false);
0632:
0633: list1.add(jmi1);
0634: list1.add(jmi2);
0635: result.add(list1);
0636:
0637: LinkedList<JMenuItem> list2 = new LinkedList<JMenuItem>();
0638: final JCheckBoxMenuItem jcbmi1 = new JCheckBoxMenuItem(
0639: "Check enabled selected", SubstanceImageCreator
0640: .getHexaMarker(2, SubstanceLookAndFeel
0641: .getTheme()));
0642: jcbmi1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
0643: Event.CTRL_MASK));
0644: jcbmi1.setSelected(true);
0645: JCheckBoxMenuItem jcbmi2 = new JCheckBoxMenuItem(
0646: "Check enabled unselected");
0647: jcbmi2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,
0648: Event.CTRL_MASK));
0649: jcbmi2.setSelected(false);
0650: JCheckBoxMenuItem jcbmi3 = new JCheckBoxMenuItem(
0651: "Check disabled selected");
0652: jcbmi3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,
0653: Event.CTRL_MASK));
0654: jcbmi3.setSelected(true);
0655: jcbmi3.setEnabled(false);
0656: final JCheckBoxMenuItem jcbmi4 = new JCheckBoxMenuItem(
0657: "Check disabled unselected", SubstanceImageCreator
0658: .getHexaMarker(3, SubstanceLookAndFeel
0659: .getTheme()));
0660: jcbmi4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,
0661: Event.CTRL_MASK));
0662: jcbmi4.setSelected(false);
0663: jcbmi4.setEnabled(false);
0664:
0665: list2.add(jcbmi1);
0666: list2.add(jcbmi2);
0667: list2.add(jcbmi3);
0668: list2.add(jcbmi4);
0669: result.add(list2);
0670:
0671: LinkedList<JMenuItem> list3 = new LinkedList<JMenuItem>();
0672: final JRadioButtonMenuItem jrbmi1 = new JRadioButtonMenuItem(
0673: "Radio enabled selected", SubstanceImageCreator
0674: .getHexaMarker(4, SubstanceLookAndFeel
0675: .getTheme()));
0676: jrbmi1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,
0677: Event.CTRL_MASK));
0678: jrbmi1.setSelected(true);
0679: JRadioButtonMenuItem jrbmi2 = new JRadioButtonMenuItem(
0680: "Radio enabled unselected");
0681: jrbmi2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,
0682: Event.CTRL_MASK));
0683: jrbmi2.setSelected(false);
0684: ButtonGroup bgRadioMenu1 = new ButtonGroup();
0685: bgRadioMenu1.add(jrbmi1);
0686: bgRadioMenu1.add(jrbmi2);
0687: JRadioButtonMenuItem jrbmi3 = new JRadioButtonMenuItem(
0688: "Radio disabled selected");
0689: jrbmi3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,
0690: Event.CTRL_MASK));
0691: jrbmi3.setSelected(true);
0692: jrbmi3.setEnabled(false);
0693: JRadioButtonMenuItem jrbmi4 = new JRadioButtonMenuItem(
0694: "Radio disabled unselected");
0695: jrbmi4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_J,
0696: Event.CTRL_MASK));
0697: jrbmi4.setSelected(false);
0698: jrbmi4.setEnabled(false);
0699: ButtonGroup bgRadioMenu2 = new ButtonGroup();
0700: bgRadioMenu2.add(jrbmi3);
0701: bgRadioMenu2.add(jrbmi4);
0702:
0703: list3.add(jrbmi1);
0704: list3.add(jrbmi2);
0705: list3.add(jrbmi3);
0706: list3.add(jrbmi4);
0707: result.add(list3);
0708:
0709: LinkedList<JMenuItem> list4 = new LinkedList<JMenuItem>();
0710: JMenu submenu1 = new JMenu("submenu1");
0711: submenu1.add(new JMenuItem("submenu item1"));
0712: submenu1.add(new JMenuItem("submenu item2"));
0713: submenu1.add(new JMenuItem("submenu item3"));
0714: final JMenu submenu11 = new JMenu("submenu1-1");
0715: submenu11.setIcon(SubstanceImageCreator.getHexaMarker(5,
0716: SubstanceLookAndFeel.getTheme()));
0717: submenu11.add(new JMenuItem("submenu item111"));
0718: submenu11.add(new JMenuItem("submenu item112"));
0719: submenu11.add(new JMenuItem("submenu item113"));
0720: submenu11.add(new JMenuItem("submenu item114"));
0721: submenu1.add(submenu11);
0722: final JMenu submenu12 = new JMenu("submenu1-2");
0723: submenu12.setIcon(SubstanceImageCreator.getHexaMarker(5,
0724: SubstanceLookAndFeel.getTheme()));
0725: submenu12.add(new JMenuItem("submenu item121"));
0726: submenu12.add(new JMenuItem("submenu item122"));
0727: submenu12.add(new JMenuItem("submenu item123"));
0728: submenu12.add(new JMenuItem("submenu item124"));
0729: submenu1.add(submenu12);
0730: final JMenu submenu13 = new JMenu("submenu1-3");
0731: submenu13.setIcon(SubstanceImageCreator.getHexaMarker(5,
0732: SubstanceLookAndFeel.getTheme()));
0733: submenu13.add(new JMenuItem("submenu item131"));
0734: submenu13.add(new JMenuItem("submenu item132"));
0735: submenu13.add(new JMenuItem("submenu item133"));
0736: submenu13.add(new JMenuItem("submenu item134"));
0737: submenu13.add(new JMenuItem("submenu item135"));
0738: submenu1.add(submenu13);
0739: list4.add(submenu1);
0740:
0741: JMenu submenu2 = new JMenu("submenu2");
0742: submenu2.add(new JMenuItem("submenu item1"));
0743: submenu2.add(new JMenuItem("submenu item2"));
0744: submenu2.add(new JMenuItem("submenu item3"));
0745: final JMenu submenu21 = new JMenu("submenu2-1");
0746: submenu21.setIcon(SubstanceImageCreator.getHexaMarker(5,
0747: SubstanceLookAndFeel.getTheme()));
0748: submenu21.add(new JMenuItem("submenu item211"));
0749: submenu21.add(new JMenuItem("submenu item212"));
0750: submenu21.add(new JMenuItem("submenu item213"));
0751: submenu21.add(new JMenuItem("submenu item214"));
0752: submenu2.add(submenu21);
0753: final JMenu submenu22 = new JMenu("submenu2-2");
0754: submenu22.setIcon(SubstanceImageCreator.getHexaMarker(5,
0755: SubstanceLookAndFeel.getTheme()));
0756: submenu22.add(new JMenuItem("submenu item221"));
0757: submenu22.add(new JMenuItem("submenu item222"));
0758: submenu22.add(new JMenuItem("submenu item223"));
0759: submenu22.add(new JMenuItem("submenu item224"));
0760: submenu2.add(submenu22);
0761: final JMenu submenu23 = new JMenu("submenu2-3");
0762: submenu23.setIcon(SubstanceImageCreator.getHexaMarker(5,
0763: SubstanceLookAndFeel.getTheme()));
0764: submenu23.add(new JMenuItem("submenu item231"));
0765: submenu23.add(new JMenuItem("submenu item232"));
0766: submenu23.add(new JMenuItem("submenu item233"));
0767: submenu23.add(new JMenuItem("submenu item234"));
0768: submenu2.add(submenu23);
0769: list4.add(submenu2);
0770:
0771: JMenu submenu3 = new JMenu("submenu3 (disabled)");
0772: submenu3.setEnabled(false);
0773: list4.add(submenu3);
0774:
0775: result.add(list4);
0776:
0777: SubstanceLookAndFeel
0778: .registerThemeChangeListener(new ThemeChangeListener() {
0779: public void themeChanged() {
0780: // jmi1.setIcon(SubstanceImageCreator.getHexaMarker(1,
0781: // SubstanceLookAndFeel.getTheme()));
0782: jcbmi1.setIcon(SubstanceImageCreator
0783: .getHexaMarker(2, SubstanceLookAndFeel
0784: .getTheme()));
0785: jcbmi4.setIcon(SubstanceImageCreator
0786: .getHexaMarker(3, SubstanceLookAndFeel
0787: .getTheme()));
0788: jrbmi1.setIcon(SubstanceImageCreator
0789: .getHexaMarker(4, SubstanceLookAndFeel
0790: .getTheme()));
0791: submenu11.setIcon(SubstanceImageCreator
0792: .getHexaMarker(5, SubstanceLookAndFeel
0793: .getTheme()));
0794: submenu12.setIcon(SubstanceImageCreator
0795: .getHexaMarker(5, SubstanceLookAndFeel
0796: .getTheme()));
0797: submenu13.setIcon(SubstanceImageCreator
0798: .getHexaMarker(5, SubstanceLookAndFeel
0799: .getTheme()));
0800: submenu21.setIcon(SubstanceImageCreator
0801: .getHexaMarker(5, SubstanceLookAndFeel
0802: .getTheme()));
0803: submenu22.setIcon(SubstanceImageCreator
0804: .getHexaMarker(5, SubstanceLookAndFeel
0805: .getTheme()));
0806: submenu23.setIcon(SubstanceImageCreator
0807: .getHexaMarker(5, SubstanceLookAndFeel
0808: .getTheme()));
0809: }
0810: });
0811:
0812: return result;
0813: }
0814:
0815: /**
0816: * Returns menu for setting skins.
0817: *
0818: * @return Menu for setting skins.
0819: */
0820: public static JMenu getSkinMenu() {
0821: JMenu jmSkin = new JMenu("Skins");
0822: Map<String, SkinInfo> skinMap = SubstanceLookAndFeel
0823: .getAllSkins();
0824: for (final Map.Entry<String, SkinInfo> entry : skinMap
0825: .entrySet()) {
0826: JMenuItem jmiSkin = new JMenuItem(entry.getValue()
0827: .getDisplayName());
0828: jmiSkin.addActionListener(new ActionListener() {
0829: public void actionPerformed(ActionEvent e) {
0830: SubstanceLookAndFeel.setSkin(entry.getValue()
0831: .getClassName());
0832: }
0833: });
0834:
0835: try {
0836: SubstanceSkin skin = ((SubstanceSkin) Class.forName(
0837: entry.getValue().getClassName()).newInstance());
0838: jmiSkin
0839: .setIcon(new ImageIcon(
0840: SubstanceImageCreator
0841: .getThemeImage(
0842: jmiSkin,
0843: new ImageIcon(
0844: SampleMenuFactory.class
0845: .getClassLoader()
0846: .getResource(
0847: "test/resource/image-x-generic.png")),
0848: skin.getTheme(), false)));
0849: } catch (Exception exc) {
0850: }
0851:
0852: jmSkin.add(jmiSkin);
0853: }
0854: return jmSkin;
0855: }
0856:
0857: public static JMenu getLookAndFeelMenu(JFrame frame) {
0858: JMenu lafMenu = new JMenu("Look & feel");
0859: JMenu substanceMenus = new JMenu("Substance family");
0860: substanceMenus.add(SubstanceLafChanger
0861: .getMenuItem(frame, "Substance",
0862: "org.jvnet.substance.SubstanceLookAndFeel"));
0863: substanceMenus.add(SubstanceLafChanger.getMenuItem(frame,
0864: "Default",
0865: "org.jvnet.substance.SubstanceDefaultLookAndFeel"));
0866: substanceMenus.addSeparator();
0867: substanceMenus
0868: .add(SubstanceLafChanger
0869: .getMenuItem(frame, "Business",
0870: "org.jvnet.substance.skin.SubstanceBusinessLookAndFeel"));
0871: substanceMenus
0872: .add(SubstanceLafChanger
0873: .getMenuItem(frame, "Business Black Steel",
0874: "org.jvnet.substance.skin.SubstanceBusinessBlackSteelLookAndFeel"));
0875: substanceMenus
0876: .add(SubstanceLafChanger
0877: .getMenuItem(frame, "Business Blue Steel",
0878: "org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel"));
0879: substanceMenus.add(SubstanceLafChanger.getMenuItem(frame,
0880: "Creme",
0881: "org.jvnet.substance.skin.SubstanceCremeLookAndFeel"));
0882: substanceMenus
0883: .add(SubstanceLafChanger
0884: .getMenuItem(frame, "Creme Coffee",
0885: "org.jvnet.substance.skin.SubstanceCremeCoffeeLookAndFeel"));
0886: substanceMenus
0887: .add(SubstanceLafChanger
0888: .getMenuItem(frame, "Moderate",
0889: "org.jvnet.substance.skin.SubstanceModerateLookAndFeel"));
0890: substanceMenus.add(SubstanceLafChanger.getMenuItem(frame,
0891: "Nebula",
0892: "org.jvnet.substance.skin.SubstanceNebulaLookAndFeel"));
0893: substanceMenus
0894: .add(SubstanceLafChanger
0895: .getMenuItem(frame, "Nebula Brick Wall",
0896: "org.jvnet.substance.skin.SubstanceNebulaBrickWallLookAndFeel"));
0897: substanceMenus
0898: .add(SubstanceLafChanger
0899: .getMenuItem(frame, "Office Silver 2007",
0900: "org.jvnet.substance.skin.SubstanceOfficeSilver2007LookAndFeel"));
0901: substanceMenus.add(SubstanceLafChanger.getMenuItem(frame,
0902: "Sahara",
0903: "org.jvnet.substance.skin.SubstanceSaharaLookAndFeel"));
0904: substanceMenus.addSeparator();
0905: substanceMenus
0906: .add(SubstanceLafChanger
0907: .getMenuItem(frame, "Field of Wheat",
0908: "org.jvnet.substance.skin.SubstanceFieldOfWheatLookAndFeel"));
0909: substanceMenus
0910: .add(SubstanceLafChanger
0911: .getMenuItem(frame, "Finding Nemo",
0912: "org.jvnet.substance.skin.SubstanceFindingNemoLookAndFeel"));
0913: substanceMenus
0914: .add(SubstanceLafChanger
0915: .getMenuItem(frame, "Green Magic",
0916: "org.jvnet.substance.skin.SubstanceGreenMagicLookAndFeel"));
0917: substanceMenus.add(SubstanceLafChanger.getMenuItem(frame,
0918: "Mango",
0919: "org.jvnet.substance.skin.SubstanceMangoLookAndFeel"));
0920: substanceMenus
0921: .add(SubstanceLafChanger
0922: .getMenuItem(frame, "Office Blue 2007",
0923: "org.jvnet.substance.skin.SubstanceOfficeBlue2007LookAndFeel"));
0924: substanceMenus.addSeparator();
0925: substanceMenus
0926: .add(SubstanceLafChanger
0927: .getMenuItem(frame, "Challenger Deep",
0928: "org.jvnet.substance.skin.SubstanceChallengerDeepLookAndFeel"));
0929: substanceMenus
0930: .add(SubstanceLafChanger
0931: .getMenuItem(frame, "Emerald Dusk",
0932: "org.jvnet.substance.skin.SubstanceEmeraldDuskLookAndFeel"));
0933: substanceMenus.add(SubstanceLafChanger.getMenuItem(frame,
0934: "Magma",
0935: "org.jvnet.substance.skin.SubstanceMagmaLookAndFeel"));
0936: substanceMenus.add(SubstanceLafChanger.getMenuItem(frame,
0937: "Raven",
0938: "org.jvnet.substance.skin.SubstanceRavenLookAndFeel"));
0939: substanceMenus
0940: .add(SubstanceLafChanger
0941: .getMenuItem(frame, "Raven Graphite",
0942: "org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel"));
0943: substanceMenus
0944: .add(SubstanceLafChanger
0945: .getMenuItem(frame, "Raven Graphite Glass",
0946: "org.jvnet.substance.skin.SubstanceRavenGraphiteGlassLookAndFeel"));
0947: lafMenu.add(substanceMenus);
0948: lafMenu.addSeparator();
0949: JMenu coreLafMenus = new JMenu("Core LAFs");
0950: lafMenu.add(coreLafMenus);
0951: coreLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
0952: "System", UIManager.getSystemLookAndFeelClassName()));
0953: coreLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
0954: "Metal", "javax.swing.plaf.metal.MetalLookAndFeel"));
0955: coreLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
0956: "Windows",
0957: "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"));
0958: coreLafMenus
0959: .add(SubstanceLafChanger
0960: .getMenuItem(frame, "Windows Classic",
0961: "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"));
0962: coreLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
0963: "Motif",
0964: "com.sun.java.swing.plaf.motif.MotifLookAndFeel"));
0965: coreLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
0966: "Nimbus",
0967: "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"));
0968:
0969: JMenu customLafMenus = new JMenu("Custom LAFs");
0970: lafMenu.add(customLafMenus);
0971: JMenu jgoodiesMenu = new JMenu("JGoodies family");
0972: customLafMenus.add(jgoodiesMenu);
0973: jgoodiesMenu.add(SubstanceLafChanger.getMenuItem(frame,
0974: "JGoodies Plastic",
0975: "com.jgoodies.looks.plastic.PlasticLookAndFeel"));
0976: jgoodiesMenu.add(SubstanceLafChanger.getMenuItem(frame,
0977: "JGoodies PlasticXP",
0978: "com.jgoodies.looks.plastic.PlasticXPLookAndFeel"));
0979: jgoodiesMenu.add(SubstanceLafChanger.getMenuItem(frame,
0980: "JGoodies Plastic3D",
0981: "com.jgoodies.looks.plastic.Plastic3DLookAndFeel"));
0982: jgoodiesMenu.add(SubstanceLafChanger.getMenuItem(frame,
0983: "JGoodies Windows",
0984: "com.jgoodies.looks.windows.WindowsLookAndFeel"));
0985:
0986: JMenu jtattooMenu = new JMenu("JTattoo family");
0987: customLafMenus.add(jtattooMenu);
0988: jtattooMenu.add(SubstanceLafChanger.getMenuItem(frame,
0989: "JTattoo Acryl",
0990: "com.jtattoo.plaf.acryl.AcrylLookAndFeel"));
0991: jtattooMenu.add(SubstanceLafChanger
0992: .getMenuItem(frame, "JTattoo Aero",
0993: "com.jtattoo.plaf.aero.AeroLookAndFeel"));
0994: jtattooMenu.add(SubstanceLafChanger.getMenuItem(frame,
0995: "JTattoo Aluminium",
0996: "com.jtattoo.plaf.aluminium.AluminiumLookAndFeel"));
0997: jtattooMenu.add(SubstanceLafChanger.getMenuItem(frame,
0998: "JTattoo Bernstein",
0999: "com.jtattoo.plaf.bernstein.BernsteinLookAndFeel"));
1000: jtattooMenu.add(SubstanceLafChanger
1001: .getMenuItem(frame, "JTattoo Fast",
1002: "com.jtattoo.plaf.fast.FastLookAndFeel"));
1003: jtattooMenu.add(SubstanceLafChanger
1004: .getMenuItem(frame, "JTattoo HiFi",
1005: "com.jtattoo.plaf.hifi.HiFiLookAndFeel"));
1006: jtattooMenu.add(SubstanceLafChanger
1007: .getMenuItem(frame, "JTattoo Luna",
1008: "com.jtattoo.plaf.luna.LunaLookAndFeel"));
1009: jtattooMenu.add(SubstanceLafChanger.getMenuItem(frame,
1010: "JTattoo McWin",
1011: "com.jtattoo.plaf.mcwin.McWinLookAndFeel"));
1012: jtattooMenu.add(SubstanceLafChanger
1013: .getMenuItem(frame, "JTattoo Mint",
1014: "com.jtattoo.plaf.mint.MintLookAndFeel"));
1015: jtattooMenu.add(SubstanceLafChanger.getMenuItem(frame,
1016: "JTattoo Smart",
1017: "com.jtattoo.plaf.smart.SmartLookAndFeel"));
1018:
1019: JMenu syntheticaMenu = new JMenu("Synthetica family");
1020: customLafMenus.add(syntheticaMenu);
1021: syntheticaMenu
1022: .add(SubstanceLafChanger
1023: .getMenuItem(frame, "Synthetica base",
1024: "de.javasoft.plaf.synthetica.SyntheticaStandardLookAndFeel"));
1025: syntheticaMenu
1026: .add(SubstanceLafChanger
1027: .getMenuItem(frame, "Synthetica BlackMoon",
1028: "de.javasoft.plaf.synthetica.SyntheticaBlackMoonLookAndFeel"));
1029: syntheticaMenu
1030: .add(SubstanceLafChanger
1031: .getMenuItem(frame, "Synthetica BlackStar",
1032: "de.javasoft.plaf.synthetica.SyntheticaBlackStarLookAndFeel"));
1033: syntheticaMenu
1034: .add(SubstanceLafChanger
1035: .getMenuItem(frame, "Synthetica BlueIce",
1036: "de.javasoft.plaf.synthetica.SyntheticaBlueIceLookAndFeel"));
1037: syntheticaMenu
1038: .add(SubstanceLafChanger
1039: .getMenuItem(frame, "Synthetica BlueMoon",
1040: "de.javasoft.plaf.synthetica.SyntheticaBlueMoonLookAndFeel"));
1041: syntheticaMenu
1042: .add(SubstanceLafChanger
1043: .getMenuItem(frame, "Synthetica BlueSteel",
1044: "de.javasoft.plaf.synthetica.SyntheticaBlueSteelLookAndFeel"));
1045: syntheticaMenu
1046: .add(SubstanceLafChanger
1047: .getMenuItem(frame, "Synthetica GreenDream",
1048: "de.javasoft.plaf.synthetica.SyntheticaGreenDreamLookAndFeel"));
1049: syntheticaMenu
1050: .add(SubstanceLafChanger
1051: .getMenuItem(frame, "Synthetica MauveMetallic",
1052: "de.javasoft.plaf.synthetica.SyntheticaMauveMetallicLookAndFeel"));
1053: syntheticaMenu
1054: .add(SubstanceLafChanger
1055: .getMenuItem(frame,
1056: "Synthetica OrangeMetallic",
1057: "de.javasoft.plaf.synthetica.SyntheticaOrangeMetallicLookAndFeel"));
1058: syntheticaMenu
1059: .add(SubstanceLafChanger
1060: .getMenuItem(frame, "Synthetica SkyMetallic",
1061: "de.javasoft.plaf.synthetica.SyntheticaSkyMetallicLookAndFeel"));
1062: syntheticaMenu
1063: .add(SubstanceLafChanger
1064: .getMenuItem(frame, "Synthetica SilverMoon",
1065: "de.javasoft.plaf.synthetica.SyntheticaSilverMoonLookAndFeel"));
1066: syntheticaMenu
1067: .add(SubstanceLafChanger
1068: .getMenuItem(frame, "Synthetica WhiteVision",
1069: "de.javasoft.plaf.synthetica.SyntheticaWhiteVisionLookAndFeel"));
1070:
1071: JMenu officeMenu = new JMenu("Office family");
1072: customLafMenus.add(officeMenu);
1073: officeMenu.add(SubstanceLafChanger.getMenuItem(frame,
1074: "Office 2003",
1075: "org.fife.plaf.Office2003.Office2003LookAndFeel"));
1076: officeMenu.add(SubstanceLafChanger.getMenuItem(frame,
1077: "Office XP",
1078: "org.fife.plaf.OfficeXP.OfficeXPLookAndFeel"));
1079: officeMenu
1080: .add(SubstanceLafChanger
1081: .getMenuItem(frame, "Visual Studio 2005",
1082: "org.fife.plaf.VisualStudio2005.VisualStudio2005LookAndFeel"));
1083:
1084: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1085: "A03", "a03.swing.plaf.A03LookAndFeel"));
1086: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1087: "Alloy", "com.incors.plaf.alloy.AlloyLookAndFeel"));
1088: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame, "FH",
1089: "com.shfarr.ui.plaf.fh.FhLookAndFeel"));
1090: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1091: "Hippo", "se.diod.hippo.plaf.HippoLookAndFeel"));
1092: customLafMenus
1093: .add(SubstanceLafChanger.getMenuItem(frame, "InfoNode",
1094: "net.infonode.gui.laf.InfoNodeLookAndFeel"));
1095: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1096: "Kuntstoff",
1097: "com.incors.plaf.kunststoff.KunststoffLookAndFeel"));
1098: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1099: "Liquid", "com.birosoft.liquid.LiquidLookAndFeel"));
1100: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1101: "Lipstik", "com.lipstikLF.LipstikLookAndFeel"));
1102: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1103: "Metouia",
1104: "net.sourceforge.mlf.metouia.MetouiaLookAndFeel"));
1105: customLafMenus.add(SubstanceLafChanger
1106: .getMenuItem(frame, "Napkin",
1107: "net.sourceforge.napkinlaf.NapkinLookAndFeel"));
1108: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1109: "Nimbus",
1110: "org.jdesktop.swingx.plaf.nimbus.NimbusLookAndFeel"));
1111: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1112: "NimROD", "com.nilo.plaf.nimrod.NimRODLookAndFeel"));
1113: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1114: "Oyoaha",
1115: "com.oyoaha.swing.plaf.oyoaha.OyoahaLookAndFeel"));
1116: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1117: "Pagosoft", "com.pagosoft.plaf.PgsLookAndFeel"));
1118: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1119: "Simple", "com.memoire.slaf.SlafLookAndFeel"));
1120: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1121: "Skin", "com.l2fprod.gui.plaf.skin.SkinLookAndFeel"));
1122: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1123: "Smooth Metal", "smooth.metal.SmoothLookAndFeel"));
1124: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1125: "Squareness",
1126: "net.beeger.squareness.SquarenessLookAndFeel"));
1127: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1128: "Tiny", "de.muntjak.tinylookandfeel.TinyLookAndFeel"));
1129: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1130: "Tonic", "com.digitprop.tonic.TonicLookAndFeel"));
1131: customLafMenus.add(SubstanceLafChanger.getMenuItem(frame,
1132: "Trendy", "com.Trendy.swing.plaf.TrendyLookAndFeel"));
1133:
1134: lafMenu.addSeparator();
1135: JMenu localeMenus = new JMenu("Change locale");
1136: lafMenu.add(localeMenus);
1137: // Locale changing
1138: JMenuItem localeArabic = new JMenuItem("Arabic Locale", Check
1139: .getIcon("flag_saudi_arabia"));
1140: localeArabic.addActionListener(new MyLocaleChangeListener("ar",
1141: "AR", frame));
1142:
1143: JMenuItem localeBulgarian = new JMenuItem("Bulgarian Locale",
1144: Check.getIcon("flag_bulgaria"));
1145: localeBulgarian.addActionListener(new MyLocaleChangeListener(
1146: "bg", "BG", frame));
1147:
1148: JMenuItem localeChinese = new JMenuItem(
1149: "Chinese (Simplified) Locale", Check
1150: .getIcon("flag_china"));
1151: localeChinese.addActionListener(new MyLocaleChangeListener(
1152: "zh", "CN", frame));
1153:
1154: JMenuItem localeChineseHK = new JMenuItem(
1155: "Chinese (Hong Kong) Locale", Check
1156: .getIcon("flag_hong_kong"));
1157: localeChineseHK.addActionListener(new MyLocaleChangeListener(
1158: "zh", "HK", frame));
1159:
1160: JMenuItem localeChineseTW = new JMenuItem(
1161: "Chinese (Taiwan) Locale", Check.getIcon("flag_taiwan"));
1162: localeChineseTW.addActionListener(new MyLocaleChangeListener(
1163: "zh", "TW", frame));
1164:
1165: JMenuItem localeCzech = new JMenuItem("Czech Locale", Check
1166: .getIcon("flag_czech_republic"));
1167: localeCzech.addActionListener(new MyLocaleChangeListener("cs",
1168: "CZ", frame));
1169:
1170: JMenuItem localeDanish = new JMenuItem("Danish Locale", Check
1171: .getIcon("flag_denmark"));
1172: localeDanish.addActionListener(new MyLocaleChangeListener("da",
1173: "DK", frame));
1174:
1175: JMenuItem localeDutch = new JMenuItem("Dutch Locale", Check
1176: .getIcon("flag_netherlands"));
1177: localeDutch.addActionListener(new MyLocaleChangeListener("nl",
1178: "NL", frame));
1179:
1180: JMenuItem localeEnglish = new JMenuItem("English Locale", Check
1181: .getIcon("flag_united_states"));
1182: localeEnglish.addActionListener(new MyLocaleChangeListener(
1183: "en", "US", frame));
1184:
1185: JMenuItem localeFinnish = new JMenuItem("Finnish Locale", Check
1186: .getIcon("flag_finland"));
1187: localeFinnish.addActionListener(new MyLocaleChangeListener(
1188: "fi", "FI", frame));
1189:
1190: JMenuItem localeFrench = new JMenuItem("French Locale", Check
1191: .getIcon("flag_france"));
1192: localeFrench.addActionListener(new MyLocaleChangeListener("fr",
1193: "FR", frame));
1194:
1195: JMenuItem localeFrenchCA = new JMenuItem(
1196: "French (Canada) Locale", Check.getIcon("flag_canada"));
1197: localeFrenchCA.addActionListener(new MyLocaleChangeListener(
1198: "fr", "CA", frame));
1199:
1200: JMenuItem localeGerman = new JMenuItem("German Locale", Check
1201: .getIcon("flag_germany"));
1202: localeGerman.addActionListener(new MyLocaleChangeListener("de",
1203: "DE", frame));
1204:
1205: JMenuItem localeGreek = new JMenuItem("Greek Locale", Check
1206: .getIcon("flag_greece"));
1207: localeGreek.addActionListener(new MyLocaleChangeListener("el",
1208: "GR", frame));
1209:
1210: JMenuItem localeHebrew = new JMenuItem("Hebrew Locale", Check
1211: .getIcon("flag_israel"));
1212: localeHebrew.addActionListener(new MyLocaleChangeListener("iw",
1213: "IL", frame));
1214:
1215: JMenuItem localeHungarian = new JMenuItem("Hungarian Locale",
1216: Check.getIcon("flag_hungary"));
1217: localeHungarian.addActionListener(new MyLocaleChangeListener(
1218: "hu", "HU", frame));
1219:
1220: JMenuItem localeItalian = new JMenuItem("Italian Locale", Check
1221: .getIcon("flag_italy"));
1222: localeItalian.addActionListener(new MyLocaleChangeListener(
1223: "it", "IT", frame));
1224:
1225: JMenuItem localeJapanese = new JMenuItem("Japanese Locale",
1226: Check.getIcon("flag_japan"));
1227: localeJapanese.addActionListener(new MyLocaleChangeListener(
1228: "ja", "JP", frame));
1229:
1230: JMenuItem localeNorwegian = new JMenuItem("Norwegian Locale",
1231: Check.getIcon("flag_norway"));
1232: localeNorwegian.addActionListener(new MyLocaleChangeListener(
1233: "no", "NO", frame));
1234:
1235: JMenuItem localePolish = new JMenuItem("Polish Locale", Check
1236: .getIcon("flag_poland"));
1237: localePolish.addActionListener(new MyLocaleChangeListener("pl",
1238: "PL", frame));
1239:
1240: JMenuItem localePortuguese = new JMenuItem("Portuguese Locale",
1241: Check.getIcon("flag_portugal"));
1242: localePortuguese.addActionListener(new MyLocaleChangeListener(
1243: "pt", "PT", frame));
1244:
1245: JMenuItem localePortugueseBR = new JMenuItem(
1246: "Portuguese (Brazil) Locale", Check
1247: .getIcon("flag_brazil"));
1248: localePortugueseBR
1249: .addActionListener(new MyLocaleChangeListener("pt",
1250: "BR", frame));
1251:
1252: JMenuItem localeRomanian = new JMenuItem("Romanian Locale",
1253: Check.getIcon("flag_romania"));
1254: localeRomanian.addActionListener(new MyLocaleChangeListener(
1255: "ro", "RO", frame));
1256:
1257: JMenuItem localeRussian = new JMenuItem("Russian Locale", Check
1258: .getIcon("flag_russia"));
1259: localeRussian.addActionListener(new MyLocaleChangeListener(
1260: "ru", "RU", frame));
1261:
1262: JMenuItem localeSpanish = new JMenuItem("Spanish Locale", Check
1263: .getIcon("flag_spain"));
1264: localeSpanish.addActionListener(new MyLocaleChangeListener(
1265: "es", "ES", frame));
1266:
1267: JMenuItem localeSpanishMX = new JMenuItem(
1268: "Spanish (Mexico) Locale", Check.getIcon("flag_mexico"));
1269: localeSpanishMX.addActionListener(new MyLocaleChangeListener(
1270: "es", "MX", frame));
1271:
1272: JMenuItem localeSwedish = new JMenuItem("Swedish Locale", Check
1273: .getIcon("flag_sweden"));
1274: localeSwedish.addActionListener(new MyLocaleChangeListener(
1275: "sv", "SE", frame));
1276:
1277: JMenuItem localeThai = new JMenuItem("Thai Locale", Check
1278: .getIcon("flag_thailand"));
1279: localeThai.addActionListener(new MyLocaleChangeListener("th",
1280: "TH", frame));
1281:
1282: JMenuItem localeTurkish = new JMenuItem("Turkish Locale", Check
1283: .getIcon("flag_turkey"));
1284: localeTurkish.addActionListener(new MyLocaleChangeListener(
1285: "tr", "TR", frame));
1286:
1287: localeMenus.add(localeEnglish);
1288: localeMenus.add(localeArabic);
1289: localeMenus.add(localeBulgarian);
1290: localeMenus.add(localeChinese);
1291: localeMenus.add(localeChineseHK);
1292: localeMenus.add(localeChineseTW);
1293: localeMenus.add(localeCzech);
1294: localeMenus.add(localeDanish);
1295: localeMenus.add(localeDutch);
1296: localeMenus.add(localeFinnish);
1297: localeMenus.add(localeFrench);
1298: localeMenus.add(localeFrenchCA);
1299: localeMenus.add(localeGerman);
1300: localeMenus.add(localeGreek);
1301: localeMenus.add(localeHebrew);
1302: localeMenus.add(localeHungarian);
1303: localeMenus.add(localeItalian);
1304: localeMenus.add(localeJapanese);
1305: localeMenus.add(localeNorwegian);
1306: localeMenus.add(localePolish);
1307: localeMenus.add(localePortuguese);
1308: localeMenus.add(localePortugueseBR);
1309: localeMenus.add(localeRomanian);
1310: localeMenus.add(localeRussian);
1311: localeMenus.add(localeSpanish);
1312: localeMenus.add(localeSpanishMX);
1313: localeMenus.add(localeSwedish);
1314: localeMenus.add(localeThai);
1315: localeMenus.add(localeTurkish);
1316:
1317: return lafMenu;
1318: }
1319: }
|