diff --git a/src/main/java/cli/Action.java b/src/main/java/cli/Action.java index 2604c33679fe868b95c2e7775d95bf9e8f30f724..0e3ed52557e969a490fc05d670febc29193c1e05 100644 --- a/src/main/java/cli/Action.java +++ b/src/main/java/cli/Action.java @@ -81,6 +81,14 @@ public class Action extends Command { return "a"; } + public String getUsage() { + return "action <subcommand> <options>"; + } + + public String getDescription() { + return "Can be used to trigger an action in TTool"; + } + public String executeCommand(String command, Interpreter interpreter) { int index = command.indexOf(" "); @@ -120,6 +128,7 @@ public class Action extends Command { Command start = new Command() { public String getCommand() { return START; } public String getShortCommand() { return "s"; } + public String getDescription() { return "Starting the graphical interface of TTool"; } public String executeCommand(String command, Interpreter interpreter) { if (interpreter.isTToolStarted()) { @@ -154,6 +163,7 @@ public class Action extends Command { Command open = new Command() { public String getCommand() { return OPEN; } public String getShortCommand() { return "o"; } + public String getDescription() { return "Opening a model in TTool"; } public String executeCommand(String command, Interpreter interpreter) { if (!interpreter.isTToolStarted()) { @@ -170,6 +180,7 @@ public class Action extends Command { Command quit = new Command() { public String getCommand() { return QUIT; } public String getShortCommand() { return "q"; } + public String getDescription() { return "Closing the graphical interface of TTool"; } public String executeCommand(String command, Interpreter interpreter) { if (!interpreter.isTToolStarted()) { @@ -180,10 +191,11 @@ public class Action extends Command { } }; - // Quit + // Check syntax Command checkSyntax = new Command() { public String getCommand() { return "checksyntax"; } public String getShortCommand() { return "cs"; } + public String getDescription() { return "Checking the syntax of an opened model"; } public String executeCommand(String command, Interpreter interpreter) { if (!interpreter.isTToolStarted()) { diff --git a/src/main/java/cli/Command.java b/src/main/java/cli/Command.java index 1b645c25c78ecd6fb584d3c9cf3ed244f6c7505d..23e4eceab21f4448c0020a98a2848cea2406fe24 100644 --- a/src/main/java/cli/Command.java +++ b/src/main/java/cli/Command.java @@ -68,20 +68,56 @@ public class Command implements CommandInterface { public String getShortCommand() { return getCommand(); } + public String getExample() { + return ""; + } + public String executeCommand(String command, Interpreter interpreter) { return null; } + public void fillSubCommands() { } public String getUsage() { - return "No usage"; + return ""; } public String getDescription() { - return "Not meant to be used"; + return ""; + } + + public String getHelp(int level) { + String dec = getLevelString(level); + /*String h = ""; + h+= getCommand() + " (" + getShortCommand() + "): " + getUsage() + "\n" + getDescription() + "\n"; + + for (Command c: subcommands) { + h+= "\t" + c.getHelp(); + }*/ + + StringBuffer b = new StringBuffer(dec + "* " + getCommand() + " (" + getShortCommand() + "): " + getUsage() + "\n" + dec + getDescription() + + "\n"); + if (getExample().length() > 0) { + b.append(dec + "Example: " + getExample() + "\n"); + } + + subcommands.forEach( (c) -> { b.append(c.getHelp(level + 1)); }); + + + return b.toString(); + } + + public String getLevelString(int level) { + String ret = ""; + while(level > 0) { + ret += "\t"; + level --; + } + return ret; + } diff --git a/src/main/java/cli/CommandInterface.java b/src/main/java/cli/CommandInterface.java index 1011168f6a60a8d0bbeee7a8d23999b911a70504..6ddaea3b6580cf0db5ad671e72ff78f718def410 100644 --- a/src/main/java/cli/CommandInterface.java +++ b/src/main/java/cli/CommandInterface.java @@ -54,6 +54,7 @@ public interface CommandInterface { List<Command> getListOfSubCommands(); String getCommand(); String getShortCommand(); + String getExample(); // return null in case of success, or a error string in case of failure. String executeCommand(String command, Interpreter interpreter); diff --git a/src/main/java/cli/Interpreter.java b/src/main/java/cli/Interpreter.java index 78a74587533cc41fd2b532a87e4d418f13ad31e0..a186ff950c4df3647e27544adf025e9bac0186d0 100644 --- a/src/main/java/cli/Interpreter.java +++ b/src/main/java/cli/Interpreter.java @@ -210,4 +210,14 @@ public class Interpreter { return show; } + + + public String getHelp() { + StringBuffer buf = new StringBuffer(""); + for(Command c:commands) { + buf.append(c.getHelp(0) + "\n"); + } + return buf.toString(); + } + } diff --git a/src/main/java/cli/Print.java b/src/main/java/cli/Print.java index 75fc40a2d26df4776d70b9885e7890ec82822b09..788b82584ce9bc0494ec51a668a4d8fba06efbf2 100644 --- a/src/main/java/cli/Print.java +++ b/src/main/java/cli/Print.java @@ -77,8 +77,14 @@ public class Print extends Command { return "p"; } + public String getUsage() { return "print <subcommand>"; } - public String executeCommand(String command, Interpreter interpreter) { + public String getDescription() { + return "Can be used to print elements of the diagram"; + } + + + /*public String executeCommand(String command, Interpreter interpreter) { int index = command.indexOf(" "); String nextCommand; String args; @@ -98,13 +104,34 @@ public class Print extends Command { return Interpreter.UNKNOWN_NEXT_COMMAND + nextCommand; - } + }*/ public void fillSubCommands() { + Command tabs = new Command() { + public String getCommand() { return TABS; } + public String getShortCommand() { return "t"; } + public String getDescription() { return "Printing the name of the tabs in the order of the (graphical) model"; } + + public String executeCommand(String command, Interpreter interpreter) { + if (interpreter.isTToolStarted()) { + return Interpreter.TTOOL_ALREADY_STARTED; + } + String tabs = ""; + Vector<TURTLEPanel> panels = interpreter.mgui.getTabs(); + for(TURTLEPanel pane: panels) { + tabs += interpreter.mgui.getTitleAt(pane) + " "; + } + + System.out.println("Tabs: " + tabs); + + return null; + } + }; + subcommands.add(tabs); } - public String printTabs(Interpreter interpreter) { + /*public String printTabs(Interpreter interpreter) { if (!interpreter.isTToolStarted()) { return Interpreter.TTOOL_NOT_STARTED; } @@ -119,5 +146,5 @@ public class Print extends Command { return null; - } + }*/ } diff --git a/src/main/java/cli/Set.java b/src/main/java/cli/Set.java index 346c82b863e38734138fa95d2d1e359b95926a7a..f187c42bca2ae59d7b718a5558eb834b14c5a554 100644 --- a/src/main/java/cli/Set.java +++ b/src/main/java/cli/Set.java @@ -76,6 +76,18 @@ public class Set extends Command { return "s"; } + public String getUsage() { + return "set <variable name> <value>"; + } + + public String getDescription() { + return "Used to set a variable to a given value"; + } + + public String getExample() { + return "set model modeling/AVATAR/PressureController.xml"; + } + public String executeCommand(String command, Interpreter interpreter) { int index = command.indexOf(" "); diff --git a/src/main/java/cli/Wait.java b/src/main/java/cli/Wait.java index 443c0657d87d5d65af7a8899325aeb3159a86471..f8c9ac1c79b0dd8ee5278eacccfebbe15570764b 100644 --- a/src/main/java/cli/Wait.java +++ b/src/main/java/cli/Wait.java @@ -76,6 +76,14 @@ public class Wait extends Command { return "w"; } + public String getUsage() { return "wait <time in s>"; } + + public String getDescription() { return "Making a pause in the execution of TTool"; } + + public String getExample() { + return "wait 2"; + } + public String executeCommand(String command, Interpreter interpreter) { try { diff --git a/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java b/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java index 4c2cb5c0647315cbd26be50c6ed5c5b9ef672976..58d1ca96757ee600439bd0e82716d113d6c66bf3 100755 --- a/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java +++ b/src/main/java/ui/avatarad/AvatarADAcceptEventAction.java @@ -135,7 +135,7 @@ public class AvatarADAcceptEventAction extends AvatarADBasicCanBeDisabledCompon g.drawLine(x, y, x+linebreak, y+height/2); g.drawLine(x, y+height, x+linebreak, y+height/2); - g.drawString("evt", x+(width-w) / 2, y); + //g.drawString("evt", x+(width-w) / 2, y); g.drawString(value, x + linebreak + textX1, y + (int)((textY*tdp.getZoom()))); } diff --git a/src/main/java/ui/avatarad/AvatarADSendSignalAction.java b/src/main/java/ui/avatarad/AvatarADSendSignalAction.java index 6c01f804d1f0ef66e6ab9c7633e580a3f2ce83e3..6737d597a2207ce6c8863c927dc4931c319e1f41 100755 --- a/src/main/java/ui/avatarad/AvatarADSendSignalAction.java +++ b/src/main/java/ui/avatarad/AvatarADSendSignalAction.java @@ -139,7 +139,7 @@ public class AvatarADSendSignalAction extends AvatarADBasicCanBeDisabledComponen g.drawLine(x+width-linebreak, y, x+width, y+height/2); g.drawLine(x+width-linebreak, y+height, x+width, y+height/2); - g.drawString("sig", x+(width-w) / 2, y); + //g.drawString("sig", x+(width-w) / 2, y); g.drawString(value, x + (width - w) / 2 , y + (int)((textY*tdp.getZoom()))); } diff --git a/src/main/java/ui/window/JDialogNote.java b/src/main/java/ui/window/JDialogNote.java index c6b9c8544e89dea24a57eb13efde11f885177691..1da534f5d51e602f863d5783d5d08f18b7c4f283 100644 --- a/src/main/java/ui/window/JDialogNote.java +++ b/src/main/java/ui/window/JDialogNote.java @@ -104,8 +104,8 @@ public class JDialogNote extends JDialogBase implements ActionListener { cancel.addActionListener(this); JPanel jp = new JPanel(); - jp.add(close); jp.add(cancel); + jp.add(close); c.add(jp, BorderLayout.SOUTH); } diff --git a/ttool-cli/src/main/java/TToolCLI.java b/ttool-cli/src/main/java/TToolCLI.java index bda66262b51ad2c95937dba86765aad2e059287d..a4d1b08f9c6a4e142d7fe4692e95381fcc9006ee 100755 --- a/ttool-cli/src/main/java/TToolCLI.java +++ b/ttool-cli/src/main/java/TToolCLI.java @@ -67,8 +67,9 @@ public class TToolCLI implements InterpreterOutputInterface { public static void printUsage() { System.out.println("ttool-cli: usage"); - System.out.println("ttool-cli <script file>"); + System.out.println("ttool-cli <script file> OR ttool-cli -help"); System.out.println("options: -debug -show"); + } public static boolean checkArgs(String[] args) { @@ -95,6 +96,16 @@ public class TToolCLI implements InterpreterOutputInterface { return false; } + public static boolean hasHelp(String[] args) { + for (String s : args) { + if (s.equals("-help")) { + return true; + } + + } + return false; + } + public static String getInputFile(String[] args) { return args[args.length - 1]; } @@ -104,6 +115,7 @@ public class TToolCLI implements InterpreterOutputInterface { public static void main(String[] args) { String[] tmp; + printCopyright(); if (!checkArgs(args)) { @@ -122,19 +134,34 @@ public class TToolCLI implements InterpreterOutputInterface { show = true; } + boolean help = false; + if (hasHelp(args)) { + help = true; + } + + TToolCLI cli = new TToolCLI(); - cli.print("Loading script:" + getInputFile(args)); - // Load script file - File f = new File(getInputFile(args)); - if (!FileUtils.checkFileForOpen(f)) { - cli.printError("File " + f.getAbsolutePath() + " could not be opened."); - cli.exit(-1); + String script = null; + + if (!help) { + cli.print("Loading script:" + getInputFile(args)); + // Load script file + File f = new File(getInputFile(args)); + if (!FileUtils.checkFileForOpen(f)) { + cli.printError("File " + f.getAbsolutePath() + " could not be opened."); + cli.exit(-1); + } + script = FileUtils.loadFileData(f); } - String script = FileUtils.loadFileData(f); // Call Interpreter Interpreter interpret = new Interpreter(script, (InterpreterOutputInterface)cli, show); - interpret.interpret(); + if (help) { + String fullHelp = interpret.getHelp(); + System.out.println(fullHelp); + } else { + interpret.interpret(); + } }