Changeset 247


Ignore:
Timestamp:
10/06/11 18:06:22 (13 years ago)
Author:
sherbold
Message:
  • improved command line parsing by using JOpt Simple API
Location:
trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/EventBenchConsole/.classpath

    r222 r247  
    3333        <classpathentry kind="lib" path="/Build/lib/vecmath-1.3.1.jar"/> 
    3434        <classpathentry kind="lib" path="/Build/lib/wstx-asl-3.2.6.jar"/> 
     35        <classpathentry kind="lib" path="/Build/lib/jopt-simple-3.3.jar"/> 
    3536        <classpathentry kind="output" path="bin"/> 
    3637</classpath> 
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/Runner.java

    r207 r247  
    11package de.ugoe.cs.eventbench; 
    22 
     3import java.io.IOException; 
     4import java.util.List; 
     5 
     6import joptsimple.OptionException; 
     7import joptsimple.OptionParser; 
     8import joptsimple.OptionSet; 
     9import joptsimple.OptionSpec; 
    310import de.ugoe.cs.eventbench.log4j.Log4JLogger; 
    411import de.ugoe.cs.eventbench.swt.MainWindow; 
     
    1926 */ 
    2027public class Runner { 
     28 
     29        public enum UITYPE { 
     30                text, swt 
     31        }; 
    2132 
    2233        /** 
     
    3950                CommandExecuter.getInstance().addCommandPackage( 
    4051                                "de.ugoe.cs.eventbench.efg.commands"); 
    41                 TextConsole textConsole = new TextConsole(); 
    4252                new Log4JLogger(); 
    43                 boolean swtGuiRunning = false; 
    44                 if (args.length >= 1) { 
    45                         if( args[0].equals("-swt") ) { 
    46                                 MainWindow mainWindow = new MainWindow(); 
    47                                 mainWindow.open(); 
    48                                 swtGuiRunning = true; 
    49                         } else { 
    50                                 for (String command : args) { 
    51                                         CommandExecuter.getInstance().exec(command); 
    52                                 } 
     53 
     54                OptionParser parser = new OptionParser(); 
     55                OptionSpec<UITYPE> ui = parser.accepts("ui", "Allowed values: text, swt").withRequiredArg() 
     56                                .ofType(UITYPE.class).defaultsTo(UITYPE.text); 
     57                OptionSet options = parser.parse(args); 
     58 
     59                List<String> startupCommands = options.nonOptionArguments(); 
     60                try { 
     61                switch (options.valueOf(ui)) { 
     62                case text: 
     63                        TextConsole textConsole = new TextConsole(); 
     64                        for (String command : startupCommands) { 
     65                                CommandExecuter.getInstance().exec(command); 
    5366                        } 
     67                        textConsole.run(true); 
     68                        break; 
     69                case swt: 
     70                        MainWindow mainWindow = new MainWindow(startupCommands); 
     71                        mainWindow.open(); 
     72                        break; 
    5473                } 
    55                 if( !swtGuiRunning ) { 
    56                         textConsole.run(true); 
     74                } catch (OptionException e) { 
     75                        System.err.println("Invalid Parameters: " + e.getMessage()); 
     76                        try { 
     77                                parser.printHelpOn(System.out); 
     78                        } catch (IOException e1) { 
     79                                // ignore exception. 
     80                        } 
    5781                } 
    5882        } 
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/swt/MainWindow.java

    r238 r247  
    11package de.ugoe.cs.eventbench.swt; 
     2 
     3import java.util.List; 
    24 
    35import org.eclipse.swt.widgets.Display; 
     
    2527 */ 
    2628public class MainWindow { 
     29         
     30        private List<String> startupCommands; 
    2731 
    2832        protected Shell shlEventbenchConsole; 
     
    3943        protected CommandHistoryDialog historyDialog; 
    4044 
     45        public MainWindow(List<String> startupCommands) { 
     46                this.startupCommands = startupCommands; 
     47        } 
     48         
    4149        /** 
    4250         * <p> 
     
    5361                shlEventbenchConsole.open(); 
    5462                shlEventbenchConsole.layout(); 
     63                for(String command : startupCommands ) { 
     64                        CommandExecuter.getInstance().exec(command); 
     65                } 
    5566                while (!shlEventbenchConsole.isDisposed()) { 
    5667                        if (!display.readAndDispatch()) { 
  • trunk/JavaCommons/build.xml

    r221 r247  
    7373                <pathelement location="lib/gui-model-core.jar" /> 
    7474                <pathelement location="lib/log4j-1.2.16.jar" /> 
     75                <pathelement location="lib/jopt-simple-3.3.jar" /> 
    7576                <path refid="JavaHelperLib.classpath" /> 
    7677                <path refid="EventBenchCore.classpath" /> 
Note: See TracChangeset for help on using the changeset viewer.