0001: /*
0002: * CategoryChooser.java Copyright (c) 2006,07 Swaroop Belur
0003: *
0004: * This program is free software; you can redistribute it and/or
0005: * modify it under the terms of the GNU General Public License
0006: * as published by the Free Software Foundation; either version 2
0007: * of the License, or (at your option) any later version.
0008:
0009: * This program is distributed in the hope that it will be useful,
0010: * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0012: * GNU General Public License for more details.
0013:
0014: * You should have received a copy of the GNU General Public License
0015: * along with this program; if not, write to the Free Software
0016: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
0017: *
0018: */
0019:
0020: package net.sf.jdec.ui.util.highlight;
0021:
0022: import java.awt.BorderLayout;
0023: import java.awt.Color;
0024: import java.awt.Dimension;
0025: import java.awt.event.ActionEvent;
0026: import java.awt.event.ActionListener;
0027: import java.util.StringTokenizer;
0028:
0029: import javax.swing.BoxLayout;
0030: import javax.swing.JButton;
0031: import javax.swing.JComboBox;
0032: import javax.swing.JEditorPane;
0033: import javax.swing.JFrame;
0034: import javax.swing.JLabel;
0035: import javax.swing.JList;
0036: import javax.swing.JOptionPane;
0037: import javax.swing.JPanel;
0038: import javax.swing.JScrollPane;
0039: import javax.swing.JSeparator;
0040:
0041: import javax.swing.border.TitledBorder;
0042: import javax.swing.event.ListSelectionEvent;
0043: import javax.swing.event.ListSelectionListener;
0044:
0045: import net.sf.jdec.ui.core.JdecEditorKit;
0046: import net.sf.jdec.ui.core.JdecPreviewKit;
0047: import net.sf.jdec.ui.main.UILauncher;
0048: import net.sf.jdec.ui.config.UIConfig;
0049:
0050: public class CategoryChooser extends JFrame implements ActionListener {
0051:
0052: ListListener listL = null;
0053:
0054: public static void main(String[] args) {
0055:
0056: new CategoryChooser("Jdec Syntax Highlighting Module");
0057:
0058: }
0059:
0060: private JPanel catg = new JPanel();
0061: private JPanel values = new JPanel();
0062: private static String[] data = { "Keyword ",
0063: "Number ",
0064: "Operator ", "String " };
0065: private static JList list = new JList(data);
0066: private JEditorPane ta = new JEditorPane();
0067: private JPanel applyP = new JPanel();
0068: private JButton apply = new JButton("Apply Change");
0069: private JButton preview = new JButton("Preview");
0070: private JPanel fonts = null;
0071: private JPanel main = null;
0072:
0073: public CategoryChooser(String s) {
0074:
0075: super (s);
0076: UILauncher.getUIConfigRef().cc = this ;
0077: createList();
0078: //catg.add(list);
0079: createValues();
0080: createApplyPanel();
0081: //getContentPane().setLayout(new BoxLayout(this,BoxLayout.PAGE_AXIS));
0082: getContentPane().add(new JSeparator());
0083: main = new JPanel();
0084: getContentPane().add(new JSeparator());
0085: main.add(catg, BorderLayout.WEST);
0086: TitledBorder tb1 = new TitledBorder("Categories");
0087: catg.setBorder(tb1);
0088: main.add(fonts, BorderLayout.NORTH);
0089: main.add(values, BorderLayout.EAST);
0090: main.add(applyP, BorderLayout.SOUTH);
0091: values.setBorder(new TitledBorder("Set Color and Effects"));
0092: getContentPane().add(main, BorderLayout.CENTER);
0093: getContentPane().add(new JSeparator());
0094: getContentPane().add(main, BorderLayout.CENTER);
0095: main.setBorder(new TitledBorder(""));
0096: main.setBackground(Color.lightGray);
0097: // TODO : call a method here to apply the color changes to sample code
0098:
0099: JdecEditorKit kit = new JdecEditorKit();
0100: ta.setEditorKitForContentType("text/java", kit);
0101: ta.setContentType("text/java");
0102: ta.setText(getSampleCode());
0103: JScrollPane sp = new JScrollPane(ta);
0104: getContentPane().add(sp, BorderLayout.SOUTH);
0105: pack();
0106: setSize(700, 500);
0107: listL = ListListener.getListener();
0108: list.addListSelectionListener(listL);
0109:
0110: /*try
0111: {
0112: String def=UILauncher.getUIutil().getDefaultLnkNFeelName();
0113: if(def==null)def=UIManager.getSystemLookAndFeelClassName();
0114: if(def==null)def=UIManager.getCrossPlatformLookAndFeelClassName();
0115: UIManager.setLookAndFeel(def);
0116: SwingUtilities.updateComponentTreeUI(this);
0117: }
0118: catch(Exception exp)
0119: {
0120:
0121:
0122: }*/
0123:
0124: setVisible(true);
0125:
0126: }
0127:
0128: private void createApplyPanel() {
0129: //applyP.setLayout(new BoxLayout(applyP,BoxLayout.X_AXIS));
0130: applyP.add(apply);
0131: applyP.add(preview);
0132: JButton cl = new JButton("Close");
0133: cl.addActionListener(new ActionListener() {
0134: public void actionPerformed(ActionEvent ae) {
0135: CategoryChooser.this .setVisible(false);
0136: CategoryChooser.this .dispose();
0137: }
0138: });
0139: applyP.add(cl);
0140: applyP.add(ta);
0141: apply.addActionListener(this );
0142: preview.addActionListener(this );
0143: pack();
0144:
0145: }
0146:
0147: private static JComboBox backg = null;
0148: private static JComboBox foreg = null;
0149: private static JComboBox effects = null;
0150: private JPanel types2 = null;
0151:
0152: private void createValues() {
0153:
0154: JLabel fore = new JLabel("Set Foreground");
0155: fore.setForeground(Color.blue);
0156: JLabel back = new JLabel("Set Background");
0157: back.setForeground(Color.blue);
0158: JLabel eft = new JLabel("Effects");
0159: eft.setForeground(Color.blue);
0160: JLabel dummy1 = new JLabel(" ");
0161: JLabel dummy2 = new JLabel(" ");
0162: JLabel dummy3 = new JLabel(" ");
0163: effects = new JComboBox();
0164: effects.addItem("Underlined");
0165: effects.addItem("StrikeThrough");
0166: effects.addItem("None");
0167: effects.setSelectedItem("None");
0168:
0169: foreg = new JComboBox();
0170: foreg.removeActionListener(this );
0171: //foreg.addActionListener(this);
0172: foreg.setActionCommand("foregr");
0173: foreg.addItem("---");
0174: foreg.addItem("Choose Foreground");
0175: foreg.setSelectedIndex(0);
0176:
0177: backg = new JComboBox();
0178: backg.removeActionListener(this );
0179: //backg.addActionListener(this);
0180: backg.setActionCommand("backgr");
0181: backg.addItem("---");
0182: backg.addItem("Choose Background");
0183: backg.setSelectedIndex(0);
0184:
0185: //values.setLayout(new BoxLayout(values,BoxLayout.Y_AXIS));
0186:
0187: fonts = new JPanel();
0188: fonts.setBorder(new TitledBorder("Select Font"));
0189: JLabel font = new JLabel("Configure Font");
0190: font.setForeground(Color.blue);
0191: JButton confF = new JButton("Go");
0192: confF.addActionListener(new ActionListener() {
0193: public void actionPerformed(ActionEvent ae) {
0194:
0195: Object cat = list.getSelectedValue();
0196: if (cat != null) {
0197: FontChooser fc = new FontChooser(new JFrame(
0198: "Jdec Font Chooser"));
0199: fc.setCategory((String) cat.toString());
0200: fc.createAllComponents();
0201: fc.showFontWindow();
0202: } else {
0203: JOptionPane.showMessageDialog(CategoryChooser.this ,
0204: "Please select a category type first");
0205: }
0206:
0207: }
0208:
0209: });
0210: fonts.add(font);
0211: fonts.add(confF);
0212: JLabel selfontfml = new JLabel("Selected FontFamily");
0213: JLabel selfontsz = new JLabel("Selected FontSize");
0214: //fonts.add(selfontfml);
0215: // fonts.add(selfontsz);
0216:
0217: JPanel types = new JPanel();
0218: types.setLayout(new BoxLayout(types, BoxLayout.Y_AXIS));
0219: types.add(dummy1);
0220: types.add(fore);
0221: types.add(dummy2);
0222: types.add(back);
0223: types.add(dummy3);
0224: types.add(eft);
0225: types2 = new JPanel();
0226: types2.setLayout(new BoxLayout(types2, BoxLayout.Y_AXIS));
0227: types2.add(foreg, BorderLayout.NORTH);
0228: types2.add(new JLabel(" "));
0229: types2.add(backg, BorderLayout.CENTER);
0230: types2.add(new JLabel(" "));
0231: types2.add(effects, BorderLayout.SOUTH);
0232:
0233: /* JPanel forep=new JPanel();
0234: forep.setLayout(new BoxLayout(forep,BoxLayout.X_AXIS));
0235: forep.add(fore);forep.add(foreg);
0236:
0237: JPanel backp=new JPanel();
0238: backp.setLayout(new BoxLayout(backp,BoxLayout.X_AXIS));
0239: backp.add(back);backp.add(backg);
0240:
0241: JPanel effp=new JPanel();
0242: effp.setLayout(new BoxLayout(effp,BoxLayout.X_AXIS));
0243: effp.add(eft);effp.add(effects);*/
0244:
0245: //values.setLayout(new GridLayout(3,3) );
0246: //values.add(fonts,BorderLayout.CENTER);
0247: values.add(types, BorderLayout.WEST);
0248: values.add(types2, BorderLayout.EAST);
0249:
0250: //values.add(backp);//,BorderLayout.CENTER);
0251: //values.add(effp);//,BorderLayout.SOUTH);
0252: foreg.addActionListener(new ActionListener() {
0253: public void actionPerformed(ActionEvent ae) {
0254:
0255: Object o = foreg.getSelectedItem();
0256: if (o != null
0257: && o.toString().equalsIgnoreCase(
0258: "Choose Foreground")) {
0259: ColorChooser colorc = new ColorChooser();
0260: UILauncher.getUIConfigRef().setColorChooserRef(
0261: colorc);
0262: colorc.setForeGround(true);
0263: }
0264: }
0265: });
0266:
0267: backg.addActionListener(new ActionListener() {
0268: public void actionPerformed(ActionEvent ae) {
0269: Object o = backg.getSelectedItem();
0270: if (o != null
0271: && o.toString().equalsIgnoreCase(
0272: "Choose Background")) {
0273: ColorChooser colorc = new ColorChooser();
0274: UILauncher.getUIConfigRef().setColorChooserRef(
0275: colorc);
0276: colorc.setForeGround(false);
0277: }
0278: }
0279: });
0280: }
0281:
0282: private void createList() {
0283:
0284: JScrollPane sp = new JScrollPane(list,
0285: JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
0286: JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
0287: //list.setSize(500,300);
0288: list.setMinimumSize(new Dimension(300, 300));
0289: catg.add(sp, BorderLayout.CENTER);
0290: //catg.setVisible(true);
0291: //list.getSelectionModel().addListSelectionListener(this);
0292: }
0293:
0294: private java.lang.String getSampleCode() {
0295:
0296: String code = "";
0297: code += "class sample";
0298: code += "\n{\n";
0299: code += "\tpublic static void main(String args[])";
0300: code += "\n\t{\n";
0301: code += "\t\tint j=1;\n";
0302: code += "\t\tint i=123456;\n";
0303: code += "\t\ti=i+1;\n";
0304: code += "\t\ti=i*j;\n";
0305: code += "\t\tSystem.out.println(\"In main method\");\n";
0306: code += "\t}\n}\n";
0307: return code;
0308:
0309: }
0310:
0311: public void actionPerformed(ActionEvent e) {
0312:
0313: if (e.getSource() == list)
0314: return;
0315:
0316: if (e.getSource() == apply) {
0317: Object ls = list.getSelectedValue();
0318: if (ls != null) {
0319: String listv = ls.toString();
0320:
0321: if (listv != null) {
0322: if (listv.indexOf("Keyword") != -1) {
0323: String bk = backg.getSelectedItem().toString();
0324: String fr = foreg.getSelectedItem().toString();
0325: String ef = effects.getSelectedItem()
0326: .toString();
0327:
0328: if (bk != null && bk.indexOf("Choose") == -1) {
0329: Color c = getColor(bk);
0330: if (c != null) {
0331: UILauncher
0332: .getUIConfigRef()
0333: .setCurrentBackGrndColor_KEYWORD(
0334: c);
0335: UILauncher.getUIConfigRef().addPref(
0336: "keyword_backg_color",
0337: "[" + c.getRed() + ","
0338: + c.getGreen() + ","
0339: + c.getBlue() + "]");
0340: } else {
0341: c = UIConfig.defaultBackgColor;
0342: UILauncher
0343: .getUIConfigRef()
0344: .setCurrentBackGrndColor_KEYWORD(
0345: c);
0346: UILauncher.getUIConfigRef().addPref(
0347: "keyword_backg_color",
0348: "[" + c.getRed() + ","
0349: + c.getGreen() + ","
0350: + c.getBlue() + "]");
0351: }
0352:
0353: }
0354: if (bk == null || bk.indexOf("---") != -1) {
0355: UILauncher.getUIConfigRef().removePref(
0356: "keyword_backg_color");
0357: UILauncher.getUIConfigRef()
0358: .setCurrentBackGrndColor_KEYWORD(
0359: null);
0360: }
0361:
0362: if (fr != null && fr.indexOf("Choose") == -1) {
0363: Color c = getColor(fr);
0364: if (c != null) {
0365: UILauncher
0366: .getUIConfigRef()
0367: .setCurrentForeGrndColor_KEYWORD(
0368: c);
0369: UILauncher.getUIConfigRef().addPref(
0370: "keyword_foreg_color",
0371: "[" + c.getRed() + ","
0372: + c.getGreen() + ","
0373: + c.getBlue() + "]");
0374: }
0375: }
0376: if (fr == null || fr.indexOf("---") != -1) {
0377: UILauncher.getUIConfigRef().removePref(
0378: "keyword_backg_color");
0379: UILauncher.getUIConfigRef()
0380: .setCurrentForeGrndColor_KEYWORD(
0381: null);
0382: }
0383:
0384: if (ef != null && ef.indexOf("None") == -1) {
0385: UILauncher.getUIConfigRef()
0386: .setEffectKEYWORD(ef);
0387: UILauncher.getUIConfigRef().addPref(
0388: "keyword_effect", ef);
0389: }
0390: if (ef == null || ef.indexOf("None") != -1) {
0391: UILauncher.getUIConfigRef().removePref(
0392: "keyword_effect");
0393: UILauncher.getUIConfigRef()
0394: .setEffectKEYWORD(null);
0395: }
0396: }
0397: JFrame f;
0398: if (listv.indexOf("Number") != -1) {
0399: String bk = backg.getSelectedItem().toString();
0400: String fr = foreg.getSelectedItem().toString();
0401: String ef = effects.getSelectedItem()
0402: .toString();
0403: if (bk != null && bk.indexOf("Choose") == -1) {
0404: Color c = getColor(bk);
0405: if (c != null) {
0406: UILauncher
0407: .getUIConfigRef()
0408: .setCurrentBackGrndColor_NUMBER(
0409: c);
0410: UILauncher.getUIConfigRef().addPref(
0411: "number_backg_color",
0412: "[" + c.getRed() + ","
0413: + c.getGreen() + ","
0414: + c.getBlue() + "]");
0415: } else {
0416: c = UIConfig.defaultBackgColor;
0417: UILauncher
0418: .getUIConfigRef()
0419: .setCurrentBackGrndColor_NUMBER(
0420: c);
0421: UILauncher.getUIConfigRef().addPref(
0422: "number_backg_color",
0423: "[" + c.getRed() + ","
0424: + c.getGreen() + ","
0425: + c.getBlue() + "]");
0426: }
0427:
0428: }
0429: if (bk == null || bk.indexOf("---") != -1) {
0430: UILauncher.getUIConfigRef().removePref(
0431: "number_backg_color");
0432: UILauncher.getUIConfigRef()
0433: .setCurrentBackGrndColor_NUMBER(
0434: null);
0435: }
0436:
0437: if (fr != null && fr.indexOf("Choose") == -1) {
0438: Color c = getColor(fr);
0439: if (c != null) {
0440: UILauncher
0441: .getUIConfigRef()
0442: .setCurrentForeGrndColor_NUMBER(
0443: c);
0444: UILauncher.getUIConfigRef().addPref(
0445: "number_foreg_color",
0446: "[" + c.getRed() + ","
0447: + c.getGreen() + ","
0448: + c.getBlue() + "]");
0449: }
0450: }
0451: if (fr == null || fr.indexOf("---") != -1) {
0452: UILauncher.getUIConfigRef().removePref(
0453: "number_foreg_color");
0454: UILauncher.getUIConfigRef()
0455: .setCurrentForeGrndColor_NUMBER(
0456: null);
0457: }
0458:
0459: if (ef != null && ef.indexOf("None") == -1) {
0460: UILauncher.getUIConfigRef()
0461: .setEffectNUMBER(ef);
0462: UILauncher.getUIConfigRef().addPref(
0463: "number_effect", ef);
0464: }
0465: if (ef == null || ef.indexOf("None") != -1) {
0466: UILauncher.getUIConfigRef().removePref(
0467: "number_effect");
0468: UILauncher.getUIConfigRef()
0469: .setEffectNUMBER(null);
0470: }
0471: }
0472:
0473: if (listv.indexOf("Operator") != -1) {
0474: String bk = backg.getSelectedItem().toString();
0475: String fr = foreg.getSelectedItem().toString();
0476: String ef = effects.getSelectedItem()
0477: .toString();
0478: if (bk != null && bk.indexOf("Choose") == -1) {
0479: Color c = getColor(bk);
0480: if (c != null) {
0481: UILauncher
0482: .getUIConfigRef()
0483: .setCurrentBackGrndColor_OPERATOR(
0484: c);
0485: UILauncher.getUIConfigRef().addPref(
0486: "operator_backg_color",
0487: "[" + c.getRed() + ","
0488: + c.getGreen() + ","
0489: + c.getBlue() + "]");
0490: } else {
0491: c = UIConfig.defaultBackgColor;
0492: UILauncher
0493: .getUIConfigRef()
0494: .setCurrentBackGrndColor_OPERATOR(
0495: c);
0496: UILauncher.getUIConfigRef().addPref(
0497: "operator_backg_color",
0498: "[" + c.getRed() + ","
0499: + c.getGreen() + ","
0500: + c.getBlue() + "]");
0501: }
0502:
0503: }
0504: if (bk == null || bk.indexOf("---") != -1) {
0505: UILauncher.getUIConfigRef().removePref(
0506: "operator_backg_color");
0507: UILauncher.getUIConfigRef()
0508: .setCurrentBackGrndColor_OPERATOR(
0509: null);
0510: }
0511:
0512: if (fr != null && fr.indexOf("Choose") == -1) {
0513: Color c = getColor(fr);
0514: if (c != null) {
0515: UILauncher
0516: .getUIConfigRef()
0517: .setCurrentForeGrndColor_OPERATOR(
0518: c);
0519: UILauncher.getUIConfigRef().addPref(
0520: "operator_foreg_color",
0521: "[" + c.getRed() + ","
0522: + c.getGreen() + ","
0523: + c.getBlue() + "]");
0524: }
0525: }
0526: if (fr == null || fr.indexOf("---") != -1) {
0527: UILauncher.getUIConfigRef().removePref(
0528: "operator_foreg_color");
0529: UILauncher.getUIConfigRef()
0530: .setCurrentBackGrndColor_OPERATOR(
0531: null);
0532: }
0533:
0534: if (ef != null && ef.indexOf("None") == -1) {
0535: UILauncher.getUIConfigRef().setEffectOP(ef);
0536: UILauncher.getUIConfigRef().addPref(
0537: "operator_effect", ef);
0538: }
0539: if (ef == null || ef.indexOf("None") != -1) {
0540: UILauncher.getUIConfigRef().removePref(
0541: "operator_effect");
0542: UILauncher.getUIConfigRef().setEffectOP(
0543: null);
0544: }
0545:
0546: }
0547: if (listv.indexOf("String") != -1) {
0548: String bk = backg.getSelectedItem().toString();
0549: String fr = foreg.getSelectedItem().toString();
0550: String ef = effects.getSelectedItem()
0551: .toString();
0552: if (bk != null && bk.indexOf("Choose") == -1) {
0553: Color c = getColor(bk);
0554: if (c != null) {
0555: UILauncher
0556: .getUIConfigRef()
0557: .setCurrentBackGrndColor_STRING(
0558: c);
0559: UILauncher.getUIConfigRef().addPref(
0560: "string_backg_color",
0561: "[" + c.getRed() + ","
0562: + c.getGreen() + ","
0563: + c.getBlue() + "]");
0564: } else {
0565: c = UIConfig.defaultBackgColor;
0566: UILauncher
0567: .getUIConfigRef()
0568: .setCurrentBackGrndColor_STRING(
0569: c);
0570: UILauncher.getUIConfigRef().addPref(
0571: "string_backg_color",
0572: "[" + c.getRed() + ","
0573: + c.getGreen() + ","
0574: + c.getBlue() + "]");
0575: }
0576:
0577: }
0578: if (bk == null || bk.indexOf("---") != -1) {
0579: UILauncher.getUIConfigRef().removePref(
0580: "string_backg_color");
0581: UILauncher.getUIConfigRef()
0582: .setCurrentBackGrndColor_STRING(
0583: null);
0584: }
0585:
0586: if (fr != null && fr.indexOf("Choose") == -1) {
0587: Color c = getColor(fr);
0588: if (c != null) {
0589: UILauncher
0590: .getUIConfigRef()
0591: .setCurrentForeGrndColor_STRING(
0592: c);
0593: UILauncher.getUIConfigRef().addPref(
0594: "string_foreg_color",
0595: "[" + c.getRed() + ","
0596: + c.getGreen() + ","
0597: + c.getBlue() + "]");
0598: }
0599: }
0600: if (fr == null || fr.indexOf("---") != -1) {
0601: UILauncher.getUIConfigRef().removePref(
0602: "string_foreg_color");
0603: UILauncher.getUIConfigRef()
0604: .setCurrentForeGrndColor_STRING(
0605: null);
0606: }
0607:
0608: if (ef != null && ef.indexOf("None") == -1) {
0609: UILauncher.getUIConfigRef()
0610: .setEffectSTRING(ef);
0611: UILauncher.getUIConfigRef().addPref(
0612: "string_effect", ef);
0613: }
0614:
0615: if (ef == null || ef.indexOf("None") != -1) {
0616: UILauncher.getUIConfigRef().removePref(
0617: "string_effect");
0618: UILauncher.getUIConfigRef()
0619: .setEffectSTRING(null);
0620: }
0621:
0622: }
0623: }
0624: }
0625:
0626: }
0627: if (e.getSource() == preview) {
0628:
0629: Object ls = list.getSelectedValue();
0630: if (ls != null) {
0631: String listv = ls.toString();
0632: if (listv != null) {
0633: if (listv.indexOf("Keyword") != -1) {
0634: String bk = backg.getSelectedItem().toString();
0635: String fr = foreg.getSelectedItem().toString();
0636: String ef = effects.getSelectedItem()
0637: .toString();
0638: if (bk != null && bk.indexOf("Choose") == -1) // FIXME
0639: {
0640: Color c = getColor(bk);
0641: UILauncher
0642: .getUIConfigRef()
0643: .setCurrentBackGrndColor_KEYWORD_PREVW(
0644: c);
0645: }
0646: if (fr != null && fr.indexOf("Choose") == -1) {
0647: Color c = getColor(fr);
0648: UILauncher
0649: .getUIConfigRef()
0650: .setCurrentForeGrndColor_KEYWORD_PREVW(
0651: c);
0652: }
0653: if (ef != null && ef.indexOf("None") == -1) {
0654: UILauncher.getUIConfigRef()
0655: .setEffectKEYWORD_PREVW(ef);
0656: }
0657:
0658: }
0659: if (listv.indexOf("Number") != -1) {
0660: String bk = backg.getSelectedItem().toString();
0661: String fr = foreg.getSelectedItem().toString();
0662: String ef = effects.getSelectedItem()
0663: .toString();
0664: if (bk != null && bk.indexOf("Choose") == -1) {
0665: Color c = getColor(bk);
0666: UILauncher
0667: .getUIConfigRef()
0668: .setCurrentBackGrndColor_NUMBER_PREVW(
0669: c);
0670:
0671: }
0672: if (fr != null && fr.indexOf("Choose") == -1) {
0673: Color c = getColor(fr);
0674: UILauncher
0675: .getUIConfigRef()
0676: .setCurrentForeGrndColor_NUMBER_PREVW(
0677: c);
0678:
0679: }
0680: if (ef != null && ef.indexOf("None") == -1) {
0681: UILauncher.getUIConfigRef()
0682: .setEffectNUMBER_PREVW(ef);
0683:
0684: }
0685: }
0686: if (listv.indexOf("Operator") != -1) {
0687: String bk = backg.getSelectedItem().toString();
0688: String fr = foreg.getSelectedItem().toString();
0689: String ef = effects.getSelectedItem()
0690: .toString();
0691: if (bk != null && bk.indexOf("Choose") == -1) {
0692: Color c = getColor(bk);
0693: UILauncher
0694: .getUIConfigRef()
0695: .setCurrentBackGrndColor_OPERATOR_PREVW(
0696: c);
0697:
0698: }
0699: if (fr != null && fr.indexOf("Choose") == -1) {
0700: Color c = getColor(fr);
0701: UILauncher
0702: .getUIConfigRef()
0703: .setCurrentForeGrndColor_OPERATOR_PREVW(
0704: c);
0705:
0706: }
0707: if (ef != null && ef.indexOf("None") == -1) {
0708: UILauncher.getUIConfigRef()
0709: .setEffectOP_PREVW(ef);
0710:
0711: }
0712: }
0713: if (listv.indexOf("String") != -1) {
0714: String bk = backg.getSelectedItem().toString();
0715: String fr = foreg.getSelectedItem().toString();
0716: String ef = effects.getSelectedItem()
0717: .toString();
0718: if (bk != null && bk.indexOf("Choose") == -1) {
0719: Color c = getColor(bk);
0720: UILauncher
0721: .getUIConfigRef()
0722: .setCurrentBackGrndColor_STRING_PREVW(
0723: c);
0724:
0725: }
0726: if (fr != null && fr.indexOf("Choose") == -1) {
0727: Color c = getColor(fr);
0728: UILauncher
0729: .getUIConfigRef()
0730: .setCurrentForeGrndColor_STRING_PREVW(
0731: c);
0732:
0733: }
0734: if (ef != null && ef.indexOf("None") == -1) {
0735: UILauncher.getUIConfigRef()
0736: .setEffectSTRING_PREVW(ef);
0737:
0738: }
0739: }
0740: }
0741: }
0742:
0743: JdecPreviewKit kit = new JdecPreviewKit();
0744: ta.setEditorKitForContentType("text/java", kit);
0745: ta.setContentType("text/java");
0746: ta.setText(getSampleCode());
0747: ta.setBackground(Color.LIGHT_GRAY);
0748: applyP.validate();
0749: main.validate();
0750: CategoryChooser.this .validate();
0751:
0752: }
0753: }
0754:
0755: private Color getColor(String s) {
0756: int s1 = s.indexOf("[");
0757: if (s1 == -1)
0758: return null;
0759: int s2 = s.indexOf("]");
0760: String s3 = s.substring(s1 + 1, s2);
0761: StringTokenizer sk = new StringTokenizer(s3, ",");
0762: int cls[] = new int[3];
0763: int r = -1;
0764: int g = -1;
0765: int b = -1;
0766: int i = 0;
0767: while (sk.hasMoreTokens()) {
0768: String t = (String) sk.nextToken();
0769: t = t.trim();
0770: cls[i] = Integer.parseInt(t);
0771: i++;
0772: }
0773:
0774: r = cls[0];
0775: g = cls[1];
0776: b = cls[2];
0777: return new Color(r, g, b);
0778: }
0779:
0780: public JComboBox getBackg() {
0781: return backg;
0782: }
0783:
0784: public JComboBox getEffects() {
0785: return effects;
0786: }
0787:
0788: public JComboBox getForeg() {
0789: return foreg;
0790: }
0791:
0792: public JPanel getTypes2() {
0793: return types2;
0794: }
0795:
0796: public JPanel getValues() {
0797: return values;
0798: }
0799:
0800: static class ListListener implements ListSelectionListener {
0801:
0802: private static ListListener ll = null;
0803:
0804: private ListListener() {
0805:
0806: }
0807:
0808: public static ListListener getListener() {
0809: if (ll != null)
0810: return ll;
0811: else {
0812: ll = new ListListener();
0813: return ll;
0814: }
0815:
0816: }
0817:
0818: public void valueChanged(ListSelectionEvent e) {
0819:
0820: if (e.getSource() == list) {
0821: Object o = list.getSelectedValue();
0822: if (o != null) {
0823:
0824: String s = o.toString();
0825: if (s.indexOf("Keyword") != -1) {
0826: Object at1 = null;
0827:
0828: if (UILauncher.getUIConfigRef()
0829: .getCurrentColorChooser() != null) {
0830: UILauncher.getUIConfigRef()
0831: .getCurrentColorChooser()
0832: .setVisible(false);
0833: UILauncher.getUIConfigRef()
0834: .getCurrentColorChooser().dispose();
0835: }
0836: Color fc = UILauncher.getUIConfigRef()
0837: .getCurrentForeGrndColor_KEYWORD();
0838: Color bc = UILauncher.getUIConfigRef()
0839: .getCurrentBackGrndColor_KEYWORD();
0840: String eff = UILauncher.getUIConfigRef()
0841: .getEffectKEYWORD();
0842: if (fc != null) {
0843: at1 = foreg.getItemAt(1);
0844: if (at1 != null
0845: && at1.toString().indexOf("Choose") == -1) {
0846: foreg.removeItemAt(1);
0847: }
0848:
0849: foreg.insertItemAt("[" + fc.getRed() + ","
0850: + fc.getGreen() + ","
0851: + fc.getBlue() + "]", 1);
0852: foreg.setSelectedIndex(1);
0853: } else {
0854: int noneInd = getItemIndex("---", foreg);
0855: if (noneInd != -1)
0856: foreg.setSelectedIndex(noneInd);
0857:
0858: }
0859:
0860: if (bc != null) {
0861: at1 = backg.getItemAt(1);
0862: if (at1 != null
0863: && at1.toString().indexOf("Choose") == -1) {
0864: backg.removeItemAt(1);
0865: }
0866: backg.insertItemAt("[" + bc.getRed() + ","
0867: + bc.getGreen() + ","
0868: + bc.getBlue() + "]", 1);
0869: backg.setSelectedIndex(1);
0870: } else {
0871: int noneInd = getItemIndex("---", backg);
0872: if (noneInd != -1)
0873: backg.setSelectedIndex(noneInd);
0874:
0875: }
0876:
0877: if (eff != null) {
0878: for (int k = 0; k < effects.getItemCount(); k++) {
0879: String name = effects.getItemAt(k)
0880: .toString();
0881: if (name.indexOf(eff) != -1) {
0882: effects.setSelectedIndex(k);
0883: break;
0884: }
0885:
0886: }
0887: } else {
0888: int noneInd = getItemIndex("None", effects);
0889: if (noneInd != -1)
0890: effects.setSelectedIndex(noneInd);
0891: }
0892:
0893: }
0894: if (s.indexOf("Number") != -1) {
0895: Object at1 = null;
0896:
0897: if (UILauncher.getUIConfigRef()
0898: .getCurrentColorChooser() != null) {
0899: UILauncher.getUIConfigRef()
0900: .getCurrentColorChooser()
0901: .setVisible(false);
0902: UILauncher.getUIConfigRef()
0903: .getCurrentColorChooser().dispose();
0904: }
0905: Color fc = UILauncher.getUIConfigRef()
0906: .getCurrentForeGrndColor_NUMBER();
0907: Color bc = UILauncher.getUIConfigRef()
0908: .getCurrentBackGrndColor_NUMBER();
0909: String eff = UILauncher.getUIConfigRef()
0910: .getEffectNUMBER();
0911: if (fc != null) {
0912: at1 = foreg.getItemAt(1);
0913: if (at1 != null
0914: && at1.toString().indexOf("Choose") == -1) {
0915: foreg.removeItemAt(1);
0916: }
0917: foreg.insertItemAt("[" + fc.getRed() + ","
0918: + fc.getGreen() + ","
0919: + fc.getBlue() + "]", 1);
0920: foreg.setSelectedIndex(1);
0921: } else {
0922: int noneInd = getItemIndex("---", foreg);
0923: if (noneInd != -1)
0924: foreg.setSelectedIndex(noneInd);
0925:
0926: }
0927: if (bc != null) {
0928: at1 = backg.getItemAt(1);
0929: if (at1 != null
0930: && at1.toString().indexOf("Choose") == -1) {
0931: backg.removeItemAt(1);
0932: }
0933: backg.insertItemAt("[" + bc.getRed() + ","
0934: + bc.getGreen() + ","
0935: + bc.getBlue() + "]", 1);
0936: backg.setSelectedIndex(1);
0937: } else {
0938: int noneInd = getItemIndex("---", backg);
0939: if (noneInd != -1)
0940: backg.setSelectedIndex(noneInd);
0941:
0942: }
0943: if (eff != null) {
0944: for (int k = 0; k < effects.getItemCount(); k++) {
0945: String name = effects.getItemAt(k)
0946: .toString();
0947: if (name.indexOf(eff) != -1) {
0948: effects.setSelectedIndex(k);
0949: break;
0950: }
0951:
0952: }
0953: } else {
0954: int noneInd = getItemIndex("None", effects);
0955: if (noneInd != -1)
0956: effects.setSelectedIndex(noneInd);
0957: }
0958:
0959: }
0960: if (s.indexOf("Operator") != -1) {
0961: Object at1 = null;//foreg.getItemAt(1);
0962:
0963: if (UILauncher.getUIConfigRef()
0964: .getCurrentColorChooser() != null) {
0965: UILauncher.getUIConfigRef()
0966: .getCurrentColorChooser()
0967: .setVisible(false);
0968: UILauncher.getUIConfigRef()
0969: .getCurrentColorChooser().dispose();
0970: }
0971: Color fc = UILauncher.getUIConfigRef()
0972: .getCurrentForeGrndColor_OPERATOR();
0973: Color bc = UILauncher.getUIConfigRef()
0974: .getCurrentBackGrndColor_OPERATOR();
0975: String eff = UILauncher.getUIConfigRef()
0976: .getEffectOP();
0977: if (fc != null) {
0978: foreg.getItemAt(1);
0979: if (at1 != null
0980: && at1.toString().indexOf("Choose") == -1) {
0981: foreg.removeItemAt(1);
0982: }
0983: foreg.insertItemAt("[" + fc.getRed() + ","
0984: + fc.getGreen() + ","
0985: + fc.getBlue() + "]", 1);
0986: foreg.setSelectedIndex(1);
0987: } else {
0988: int noneInd = getItemIndex("---", foreg);
0989: if (noneInd != -1)
0990: foreg.setSelectedIndex(noneInd);
0991:
0992: }
0993: if (bc != null) {
0994: at1 = backg.getItemAt(1);
0995: if (at1 != null
0996: && at1.toString().indexOf("Choose") == -1) {
0997: backg.removeItemAt(1);
0998: }
0999: backg.insertItemAt("[" + bc.getRed() + ","
1000: + bc.getGreen() + ","
1001: + bc.getBlue() + "]", 1);
1002: backg.setSelectedIndex(1);
1003: } else {
1004: int noneInd = getItemIndex("---", backg);
1005: if (noneInd != -1)
1006: backg.setSelectedIndex(noneInd);
1007:
1008: }
1009: if (eff != null) {
1010: for (int k = 0; k < effects.getItemCount(); k++) {
1011: String name = effects.getItemAt(k)
1012: .toString();
1013: if (name.indexOf(eff) != -1) {
1014: effects.setSelectedIndex(k);
1015: break;
1016: }
1017:
1018: }
1019: } else {
1020: int noneInd = getItemIndex("None", effects);
1021: if (noneInd != -1)
1022: effects.setSelectedIndex(noneInd);
1023: }
1024:
1025: }
1026: if (s.indexOf("String") != -1) {
1027:
1028: Object at1 = null;
1029: if (UILauncher.getUIConfigRef()
1030: .getCurrentColorChooser() != null) {
1031: UILauncher.getUIConfigRef()
1032: .getCurrentColorChooser()
1033: .setVisible(false);
1034: UILauncher.getUIConfigRef()
1035: .getCurrentColorChooser().dispose();
1036: }
1037: Color fc = UILauncher.getUIConfigRef()
1038: .getCurrentForeGrndColor_STRING();
1039: Color bc = UILauncher.getUIConfigRef()
1040: .getCurrentBackGrndColor_STRING();
1041: String eff = UILauncher.getUIConfigRef()
1042: .getEffectSTRING();
1043: if (fc != null) {
1044: at1 = foreg.getItemAt(1);
1045: if (at1 != null
1046: && at1.toString().indexOf("Choose") == -1) {
1047: foreg.removeItemAt(1);
1048: }
1049: foreg.insertItemAt("[" + fc.getRed() + ","
1050: + fc.getGreen() + ","
1051: + fc.getBlue() + "]", 1);
1052: foreg.setSelectedIndex(1);
1053: } else {
1054: int noneInd = getItemIndex("---", foreg);
1055: if (noneInd != -1)
1056: foreg.setSelectedIndex(noneInd);
1057:
1058: }
1059: if (bc != null) {
1060: at1 = backg.getItemAt(1);
1061: if (at1 != null
1062: && at1.toString().indexOf("Choose") == -1) {
1063: backg.removeItemAt(1);
1064: }
1065: backg.insertItemAt("[" + bc.getRed() + ","
1066: + bc.getGreen() + ","
1067: + bc.getBlue() + "]", 1);
1068: backg.setSelectedIndex(1);
1069: } else {
1070: int noneInd = getItemIndex("---", backg);
1071: if (noneInd != -1)
1072: backg.setSelectedIndex(noneInd);
1073:
1074: }
1075: if (eff != null) {
1076: for (int k = 0; k < effects.getItemCount(); k++) {
1077: String name = effects.getItemAt(k)
1078: .toString();
1079: if (name.indexOf(eff) != -1) {
1080: effects.setSelectedIndex(k);
1081: break;
1082: }
1083:
1084: }
1085: } else {
1086: int noneInd = getItemIndex("None", effects);
1087: if (noneInd != -1)
1088: effects.setSelectedIndex(noneInd);
1089: }
1090:
1091: }
1092:
1093: }
1094:
1095: }
1096:
1097: }
1098: }
1099:
1100: private static int getItemIndex(String s, JComboBox effects) {
1101: int i = -1;
1102: for (int k = 0; k < effects.getItemCount(); k++) {
1103: String name = effects.getItemAt(k).toString();
1104: if (name.indexOf(s) != -1) {
1105: return k;
1106: }
1107:
1108: }
1109: return i;
1110:
1111: }
1112: }
|