From: SVN by r. <sv...@ca...> - 2009-09-18 11:45:10
|
Author: roy Date: 2009-09-18 13:44:47 +0200 (Fri, 18 Sep 2009) New Revision: 416 Added: src/main/java/nl/improved/sqlclient/commands/SettingsCommand.java Modified: src/main/java/nl/improved/sqlclient/AbstractSQLShellWindow.java src/main/java/nl/improved/sqlclient/util/ResultBuilder.java Log: added support for setting vertical and horizontal separators Modified: src/main/java/nl/improved/sqlclient/AbstractSQLShellWindow.java =================================================================== --- src/main/java/nl/improved/sqlclient/AbstractSQLShellWindow.java 2009-09-15 12:39:51 UTC (rev 415) +++ src/main/java/nl/improved/sqlclient/AbstractSQLShellWindow.java 2009-09-18 11:44:47 UTC (rev 416) @@ -15,6 +15,7 @@ */ package nl.improved.sqlclient; +import nl.improved.sqlclient.commands.SettingsCommand; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; @@ -173,6 +174,7 @@ commands.register("QUIT[\\s]*", new QuitCommand("quit")); commands.register("EXIT[\\s]*", new QuitCommand("exit")); commands.register("SAVE[\\s]*.*", new SaveCommand()); + commands.register("SET[\\s]*.*", new SettingsCommand()); //commands.register("\\\\Q[\\s]*", new QuitCommand("\\q")); commands.register("@.*", new ExecuteBatchCommand(this)); commands.register("(SELECT|UPDATE|ALTER|INSERT|DELETE).*;[\\s]*", new QueryCommand()); Added: src/main/java/nl/improved/sqlclient/commands/SettingsCommand.java =================================================================== --- src/main/java/nl/improved/sqlclient/commands/SettingsCommand.java 2009-09-15 12:39:51 UTC (rev 415) +++ src/main/java/nl/improved/sqlclient/commands/SettingsCommand.java 2009-09-18 11:44:47 UTC (rev 416) @@ -0,0 +1,63 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package nl.improved.sqlclient.commands; + +import nl.improved.sqlclient.Point; +import nl.improved.sqlclient.SQLCommand; +import nl.improved.sqlclient.TabCompletionInfo; +import nl.improved.sqlclient.util.ResultBuilder; + +/** + * + * @author roy + */ +public class SettingsCommand implements Command { + + public SettingsCommand() { + } + + public CommandResult execute(SQLCommand cmd) { + String cmdString = cmd.getUntrimmedCommandString().substring("set ".length()).trim(); + if (cmdString.indexOf(' ') < 0) { + return new SimpleCommandResult(false, "Please provide an argument"); + } + String setter = cmdString.substring(0, cmdString.indexOf(' ')); + if (setter.equals("hSeparatorChar")) { + ResultBuilder.setHorizontalSeparator(cmdString.charAt(cmdString.indexOf(' ')+1)); + return new SimpleCommandResult(true, "Horizontal separator updated to '"+ResultBuilder.getHorizontalSeparator()+"'."); + } + if (setter.equals("vSeparatorChar")) { + ResultBuilder.setVerticalSeparator(cmdString.charAt(cmdString.indexOf(' ')+1)); + return new SimpleCommandResult(true, "Vertical separator updated to '"+ResultBuilder.getVerticalSeparator()+"'."); + } + return new SimpleCommandResult(false, "Please provide a valid argument"); + + } + + public CharSequence getCommandString() { + return "set"; + } + + public TabCompletionInfo getTabCompletionInfo(SQLCommand commandInfo, Point commandPoint) { + return null; + } + + public CharSequence getHelp() { + return "Change settings of sqlshell properties" + + "Settings are:\n"+ + "hSeparatorChar\n"+ + "vSeparatorChar"; + } + + public boolean abort() { + return false; + } + + public boolean backgroundProcessSupported() { + return false; + } + +} Modified: src/main/java/nl/improved/sqlclient/util/ResultBuilder.java =================================================================== --- src/main/java/nl/improved/sqlclient/util/ResultBuilder.java 2009-09-15 12:39:51 UTC (rev 415) +++ src/main/java/nl/improved/sqlclient/util/ResultBuilder.java 2009-09-18 11:44:47 UTC (rev 416) @@ -1,7 +1,15 @@ package nl.improved.sqlclient.util; -import java.awt.event.ActionEvent; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +/** + * Converts query results to a readable format. + * @author roy + */ public class ResultBuilder { public enum Alignment {LEFT, RIGHT}; @@ -10,31 +18,31 @@ private List<String> header; private CharSequence footer; - private boolean horizontalSeperatorEnabled = true; - private char horizontalSeperator = '-', verticalSeparator ='|'; + private static boolean horizontalSeperatorEnabled = true; + private static char horizontalSeperator = '-', verticalSeparator ='|'; private RowList rows = new RowList(); - public void setHorizontalSeparatorEnabled(boolean enabled) { - this.horizontalSeperatorEnabled = enabled; + public static void setHorizontalSeparatorEnabled(boolean enabled) { + horizontalSeperatorEnabled = enabled; } - public boolean getHorizontalSeparatorEnabled() { + public static boolean getHorizontalSeparatorEnabled() { return horizontalSeperatorEnabled; } - public void setHorizontalSeparator(char c) { - this.horizontalSeperator = c; + public static void setHorizontalSeparator(char c) { + horizontalSeperator = c; } - public char getHorizontalSeparator() { + public static char getHorizontalSeparator() { return horizontalSeperator; } - public void setVerticalSeparator(char c) { - this.verticalSeparator = c; + public static void setVerticalSeparator(char c) { + verticalSeparator = c; } - public char getVerticalSeparator() { + public static char getVerticalSeparator() { return verticalSeparator; } |