|
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;
}
|