Index: lutincommandline/src/java/org/codelutin/option/ParserUtil.java
diff -u lutincommandline/src/java/org/codelutin/option/ParserUtil.java:1.1.1.1 lutincommandline/src/java/org/codelutin/option/ParserUtil.java:1.2
--- lutincommandline/src/java/org/codelutin/option/ParserUtil.java:1.1.1.1 Sat Feb 9 15:05:36 2008
+++ lutincommandline/src/java/org/codelutin/option/ParserUtil.java Sun Mar 16 07:11:27 2008
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.io.Writer;
+import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
@@ -85,11 +86,7 @@
/**
* Un contexte abstrait pour parseur (qui peut contenir un contexte parent
- * et des contextes enfants) et qui g�re les erreurs.
- *
- * @param P le context parent
- * @param S le context fils
- * @param E le type d'exception
+ * et des contextes enfants) et qui gère les erreurs.
* @author chemit
*/
@@ -198,4 +195,9 @@
}
}
+ public static void printConfig(StringWriter writer, Config config) throws IOException {
+ writer.append('\n').append(config.toString());
+ writer.flush();
+ }
+
}
Index: lutincommandline/src/java/org/codelutin/option/OptionAction.java
diff -u lutincommandline/src/java/org/codelutin/option/OptionAction.java:1.2 lutincommandline/src/java/org/codelutin/option/OptionAction.java:1.3
--- lutincommandline/src/java/org/codelutin/option/OptionAction.java:1.2 Sat Mar 15 09:05:17 2008
+++ lutincommandline/src/java/org/codelutin/option/OptionAction.java Sun Mar 16 07:11:27 2008
@@ -1,5 +1,8 @@
package org.codelutin.option;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
/**
* A simple empty action for an option.
*
@@ -19,6 +22,9 @@
*/
public abstract class OptionAction> {
+
+ protected final Log log = LogFactory.getLog(getClass());
+
/**
* Method to implement logic of the action for the current option.
*
@@ -31,9 +37,7 @@
protected abstract void run(C context) throws Exception;
- /**
- * the current option to be used for running.
- */
+ /** the current option to be used for running. */
protected O option;
public void doRun(C context, O... options) throws Exception {
@@ -60,7 +64,4 @@
protected void afterAll(C context, O... options) throws Exception {
}
- /*protected P getParser() {
- return parser;
- }*/
}
Index: lutincommandline/src/java/org/codelutin/option/OptionActionRunnableChangeFileConfig.java
diff -u /dev/null lutincommandline/src/java/org/codelutin/option/OptionActionRunnableChangeFileConfig.java:1.1
--- /dev/null Sun Mar 16 07:11:32 2008
+++ lutincommandline/src/java/org/codelutin/option/OptionActionRunnableChangeFileConfig.java Sun Mar 16 07:11:27 2008
@@ -0,0 +1,10 @@
+package org.codelutin.option;
+
+/** @author chemit */
+public class OptionActionRunnableChangeFileConfig implements OptionActionRunnable {
+
+ public void run(OptionAction action, AbstractContext context) throws Exception {
+ // Do nothing, this action is treated while init of config file
+ //TODO transfert logic from config to here (to make change of behevior possible more easier)
+ }
+}
\ No newline at end of file
Index: lutincommandline/src/java/org/codelutin/option/OptionActionRunnableUi.java
diff -u /dev/null lutincommandline/src/java/org/codelutin/option/OptionActionRunnableUi.java:1.1
--- /dev/null Sun Mar 16 07:11:32 2008
+++ lutincommandline/src/java/org/codelutin/option/OptionActionRunnableUi.java Sun Mar 16 07:11:27 2008
@@ -0,0 +1,22 @@
+package org.codelutin.option;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/** @author chemit */
+public class OptionActionRunnableUi implements OptionActionRunnable {
+
+ protected final Log log = LogFactory.getLog(getClass());
+
+ protected boolean init = false;
+
+ public void run(OptionAction action, AbstractContext context) throws Exception {
+ // Do nothing, this action is treated while init of config file
+ Boolean bool = action.option.getValuedArgumentValue(0, Boolean.class, "flag", false);
+ boolean launchUI = bool != null && bool;
+ log.info(action.option.getUsedAlias() + ", value:" + bool);
+ context.setLaunchUI(launchUI);
+ if (init) context.setQuit(true);
+ init = true;
+ }
+}
\ No newline at end of file
Index: lutincommandline/src/java/org/codelutin/option/OptionActionRunnable.java
diff -u /dev/null lutincommandline/src/java/org/codelutin/option/OptionActionRunnable.java:1.1
--- /dev/null Sun Mar 16 07:11:32 2008
+++ lutincommandline/src/java/org/codelutin/option/OptionActionRunnable.java Sun Mar 16 07:11:27 2008
@@ -0,0 +1,11 @@
+package org.codelutin.option;
+
+/**
+ * Code wrapper for DefaultOption
+ *
+ * @author chemit */
+public interface OptionActionRunnable, A extends OptionAction> {
+
+ void run(A action, C context) throws Exception;
+
+}
Index: lutincommandline/src/java/org/codelutin/option/OptionActionRunnableHelp.java
diff -u /dev/null lutincommandline/src/java/org/codelutin/option/OptionActionRunnableHelp.java:1.1
--- /dev/null Sun Mar 16 07:11:32 2008
+++ lutincommandline/src/java/org/codelutin/option/OptionActionRunnableHelp.java Sun Mar 16 07:11:27 2008
@@ -0,0 +1,20 @@
+package org.codelutin.option;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/** @author chemit */
+public class OptionActionRunnableHelp implements OptionActionRunnable {
+
+ protected final Log log = LogFactory.getLog(getClass());
+
+ public void run(OptionAction action, AbstractContext context) throws Exception {
+ java.io.StringWriter writer = new java.io.StringWriter();
+ context.getParser().printUsage(writer, "SimExplorer SI v " + context.getConfig().getPropertyKey("version").getCurrentValue());
+ org.codelutin.option.ParserUtil.printConfig(writer, context.getConfig());
+ writer.append('\n');
+ //TODO should be able to register writer
+ System.out.println(writer);
+ context.setQuit(true);
+ }
+}
\ No newline at end of file
Index: lutincommandline/src/java/org/codelutin/option/OptionActionRunnableShowConfig.java
diff -u /dev/null lutincommandline/src/java/org/codelutin/option/OptionActionRunnableShowConfig.java:1.1
--- /dev/null Sun Mar 16 07:11:32 2008
+++ lutincommandline/src/java/org/codelutin/option/OptionActionRunnableShowConfig.java Sun Mar 16 07:11:27 2008
@@ -0,0 +1,22 @@
+package org.codelutin.option;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/** @author chemit */
+public class OptionActionRunnableShowConfig implements OptionActionRunnable {
+
+ protected final Log log = LogFactory.getLog(getClass());
+
+ public void run(OptionAction action, AbstractContext context) throws Exception {
+ String category = action.option.getConstantArgumentValue(0);
+ if (context.getConfig() == null) {
+ throw new IllegalArgumentException("could not found a configuration with category " + category);
+ }
+ log.info("required showConfig pour category [" + category + "]");
+ java.io.StringWriter writer = new java.io.StringWriter();
+ org.codelutin.option.ParserUtil.printConfig(writer, context.getConfig());
+ log.info(writer);
+ context.setQuit(true);
+ }
+}
Index: lutincommandline/src/java/org/codelutin/option/OptionActionRunnableEditConfig.java
diff -u /dev/null lutincommandline/src/java/org/codelutin/option/OptionActionRunnableEditConfig.java:1.1
--- /dev/null Sun Mar 16 07:11:32 2008
+++ lutincommandline/src/java/org/codelutin/option/OptionActionRunnableEditConfig.java Sun Mar 16 07:11:27 2008
@@ -0,0 +1,24 @@
+package org.codelutin.option;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/** @author chemit */
+public class OptionActionRunnableEditConfig implements OptionActionRunnable {
+
+ protected final Log log = LogFactory.getLog(getClass());
+
+ static public final String UI_FQN = "org.codelutin.option.ui.ConfigUI";
+
+ public void run(OptionAction action, AbstractContext context) throws Exception {
+ int nbConfigs = context.getParser().getConfigKeys().size();
+ Config[] configs = new Config[nbConfigs];
+ for (int i = 0; i < context.getParser().getConfigKeys().size(); i++) {
+ ConfigKey> configKey = context.getParser().getConfigKeys().get(i);
+ configs[i] = context.getParser().getConfig(configKey);
+ }
+ javax.swing.JDialog ui = (javax.swing.JDialog) Class.forName(UI_FQN).newInstance();
+ ui.getClass().getMethod("init", Config[].class).invoke(ui, configs);
+ ui.setVisible(true);
+ }
+}
\ No newline at end of file
Index: lutincommandline/src/java/org/codelutin/option/OptionActionRunnableResetConfig.java
diff -u /dev/null lutincommandline/src/java/org/codelutin/option/OptionActionRunnableResetConfig.java:1.1
--- /dev/null Sun Mar 16 07:11:33 2008
+++ lutincommandline/src/java/org/codelutin/option/OptionActionRunnableResetConfig.java Sun Mar 16 07:11:27 2008
@@ -0,0 +1,22 @@
+package org.codelutin.option;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import static org.codelutin.i18n.I18n._;
+
+import java.io.File;
+
+/** @author chemit */
+public class OptionActionRunnableResetConfig implements OptionActionRunnable {
+
+ protected final Log log = LogFactory.getLog(getClass());
+
+ public void run(OptionAction action, AbstractContext context) throws Exception {
+ Config config = context.getConfig();
+ ConfigPropertyKey> key = config.getKey("configFileName");
+ File property = (File) config.getProperty(key);
+ property.delete();
+ log.info(_("simexplorer.message.reset.user.configuration"));
+ context.setFirstLaunch(true);
+ }
+}
\ No newline at end of file
Index: lutincommandline/src/java/org/codelutin/option/OptionActionRunnableChangeConfig.java
diff -u /dev/null lutincommandline/src/java/org/codelutin/option/OptionActionRunnableChangeConfig.java:1.1
--- /dev/null Sun Mar 16 07:11:33 2008
+++ lutincommandline/src/java/org/codelutin/option/OptionActionRunnableChangeConfig.java Sun Mar 16 07:11:27 2008
@@ -0,0 +1,10 @@
+package org.codelutin.option;
+
+/** @author chemit */
+public class OptionActionRunnableChangeConfig implements OptionActionRunnable {
+
+ public void run(OptionAction action, AbstractContext context) throws Exception {
+ // Do nothing, this action is treated while init of config file
+ //TODO transfert logic from config to here (to make change of behevior possible more easier)
+ }
+}