package de.ugoe.cs.autoquest.ui; import java.io.File; import java.io.IOException; import java.util.List; import java.util.logging.Level; import joptsimple.OptionException; import joptsimple.OptionParser; import joptsimple.OptionSet; import joptsimple.OptionSpec; import de.ugoe.cs.autoquest.log4j.Log4JLogger; import de.ugoe.cs.autoquest.plugin.PluginLoader; import de.ugoe.cs.autoquest.plugin.QuestPlugin; import de.ugoe.cs.autoquest.ui.swt.MainWindow; import de.ugoe.cs.util.console.CommandExecuter; import de.ugoe.cs.util.console.Console; import de.ugoe.cs.util.console.TextConsole; /** *
* Start-up class of the application. *
** It sets up and starts the {@link Console}. *
* * @author Steffen Herbold * @version 1.0 */ public class Runner { public enum UITYPE { text, swt }; public enum LEVELENUM { OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL; public Level getLevel() { switch (this) { case OFF: return Level.OFF; case SEVERE: return Level.SEVERE; case ALL: return Level.ALL; case CONFIG: return Level.CONFIG; case FINE: return Level.FINE; case FINER: return Level.FINER; case FINEST: return Level.FINEST; case INFO: return Level.INFO; case WARNING: return Level.WARNING; default: throw new AssertionError("reached source code that should be unreachable"); } } } /** ** Main method of the application. *
* * @param args * if parameters are defined, they are interpreted as commands for the * {@link Console} and executed before the user can use the console; can be used to * perform batch operations */ public static void main(String[] args) { CommandExecuter.getInstance().addCommandPackage("de.ugoe.cs.autoquest.commands.misc"); CommandExecuter.getInstance().addCommandPackage("de.ugoe.cs.autoquest.commands.sequences"); CommandExecuter.getInstance().addCommandPackage("de.ugoe.cs.autoquest.commands.usability"); CommandExecuter.getInstance().addCommandPackage("de.ugoe.cs.autoquest.commands.usage"); CommandExecuter.getInstance().addCommandPackage("de.ugoe.cs.autoquest.ui.swt.commands"); PluginLoader pluginLoader = new PluginLoader(new File("lib")); pluginLoader.load(); for (QuestPlugin plugin : pluginLoader.getPlugins()) { for (String commandPackage : plugin.getCommandPackages()) { CommandExecuter.getInstance().addCommandPackage(commandPackage); } } OptionParser parser = new OptionParser(); OptionSpec