001: package org.acm.seguin.completer;
002:
003: import java.util.Properties;
004: import java.io.*;
005: import java.awt.Color;
006: import org.gjt.sp.jedit.jEdit;
007:
008: public class Config {
009: static boolean DEBUG = false;
010: static {
011: try {
012: jEdit.getProperty("fony.value");
013: } catch (NullPointerException e) {
014: DEBUG = true;
015: }
016: }
017:
018: static final String CONFIG_ROOT = "Completer"; // Completer.PLUGIN_NAME.toLowerCase();
019:
020: // member popup
021: public static final Config DOT_POPUP = makeConfig("dot.popup",
022: Boolean.TRUE);
023: public static final Config SHOW_RETURN_TYPES = makeConfig(
024: "show.return.types", Boolean.TRUE);
025:
026: public static final Config SHOW_PARAMS = makeConfig("show.params",
027: Boolean.TRUE);
028:
029: /* add? think through implementation more first
030: public static final Config AUTO_INSERT_SINGLE =
031: makeConfig("auto.insert.single", Boolean.TRUE);
032: */
033:
034: public static final Config POPUP_DELAY_MS = makeConfig(
035: "popup.delay", new Integer(50));
036: public static final Config SHOW_SIG_HELP_AFTER_INSERT = makeConfig(
037: "show.sig.help", Boolean.FALSE);
038:
039: // class popup
040: public static final Config SHOW_CONSTRUCTOR_HELP_AFTER_INSERT = makeConfig(
041: "show.cons.help", Boolean.TRUE);
042: public static final Config AUTO_IMPORT_CLASSES = makeConfig(
043: "auto.import.classes", Boolean.FALSE);
044: public static final Config USE_ALL_PROJECT_CLASSES = makeConfig(
045: "use.all.classes", Boolean.FALSE);
046: public static final Config IMPORT_CLASS_FILTER_OUT_RE = makeConfig(
047: "use.all.classes.filterout.re",
048: "^sun\\..*|^COM\\.rsa\\..*|^com\\.sun\\..*|^org\\.omg\\..*|^java\\.beans\\..*");
049:
050: // misc
051: public static final Config FLUSH_CACHE_ON_BUFFER_CHANGE = makeConfig(
052: "flush.cache.on.buffer.change", Boolean.TRUE);
053: public static final Config RESIZE_POPUP_AS_DATA_NARROWS = makeConfig(
054: "resize.popup", Boolean.TRUE);
055: // classpath
056: public static final String CP_SRC_ANT_HELPER = "AntHelper";
057: public static final String CP_SRC_JCOMPILER = "JCompiler";
058: public static final String CP_SRC_CUSTOM = "Custom";
059: public static final Config CLASS_PATH_SOURCE = makeConfig(
060: "class.path.source", CP_SRC_ANT_HELPER);
061: public static final Config CLASS_PATH_CUSTOM = makeConfig(
062: "class.path.custom.value", "");
063: String name = null;
064: Object val = null;
065:
066: public Config(String name, Object defaultValue) {
067: this .name = name;
068: val = defaultValue;
069: }
070:
071: public String getName() {
072: return name;
073: }
074:
075: public Object getDefault() {
076: return val;
077: }
078:
079: public int getAsInt() {
080: return Config.getInt(name, ((Integer) getDefault()).intValue());
081: }
082:
083: public void setInt(int argNewVal) {
084: Config.setInt(getName(), argNewVal);
085: }
086:
087: public Color getAsColor() {
088: return Config.getColor(name, (Color) getDefault());
089: }
090:
091: public void setColor(Color argColor) {
092: Config.setColor(getName(), argColor);
093: }
094:
095: public boolean getAsBoolean() {
096: return Config.getBoolean(name, ((Boolean) getDefault())
097: .booleanValue());
098: }
099:
100: public void setBoolean(boolean argNewVal) {
101: Config.setBoolean(getName(), argNewVal);
102: }
103:
104: public String getAsString() {
105: return Config.getString(name, (String) getDefault());
106: }
107:
108: public void setString(String argNewVal) {
109: Config.setString(getName(), argNewVal);
110: }
111:
112: public String toString() {
113: return super .toString() + " - " + name + "=" + val.toString();
114: }
115:
116: public static final Config makeConfig(String argName,
117: Object argDefault) {
118: return new Config(CONFIG_ROOT + "." + argName, argDefault);
119: }
120:
121: /* wrap jedit methods so we can test outside of jedit */
122: public static int getInt(String argName, int argDefault) {
123: return DEBUG ? argDefault : jEdit.getIntegerProperty(argName,
124: argDefault);
125: }
126:
127: public static void setInt(String argName, int arg) {
128: if (!DEBUG) {
129: jEdit.setIntegerProperty(argName, arg);
130: }
131: }
132:
133: public static boolean getBoolean(String argName, boolean argDefault) {
134: return DEBUG ? argDefault : jEdit.getBooleanProperty(argName,
135: argDefault);
136: }
137:
138: public static void setBoolean(String argName, boolean argVal) {
139: if (!DEBUG) {
140: jEdit.setBooleanProperty(argName, argVal);
141: }
142: }
143:
144: public static String getString(String argName, String argDefault) {
145: return DEBUG ? argDefault : jEdit.getProperty(argName,
146: argDefault);
147: }
148:
149: public static Color getColor(String argName, Color argDefault) {
150: return DEBUG ? argDefault : jEdit.getColorProperty(argName,
151: argDefault);
152: }
153:
154: public static void setColor(String argName, Color argVal) {
155: if (!DEBUG) {
156: jEdit.setColorProperty(argName, argVal);
157: }
158: }
159:
160: public static void setString(String argName, String argVal) {
161: if (!DEBUG) {
162: jEdit.setProperty(argName, argVal);
163: }
164: }
165: }
|