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) + } +}