|
From: SVN by r. <sv...@ca...> - 2008-10-12 12:04:38
|
Author: roy
Date: 2008-10-12 13:57:48 +0200 (Sun, 12 Oct 2008)
New Revision: 312
Modified:
src/main/java/nl/improved/sqlclient/charva/CharvaSQLShellWindow.java
src/main/java/nl/improved/sqlclient/charva/SQLShellComponent.java
Log:
some fixes in method names
implemented pageup/down
Modified: src/main/java/nl/improved/sqlclient/charva/CharvaSQLShellWindow.java
===================================================================
--- src/main/java/nl/improved/sqlclient/charva/CharvaSQLShellWindow.java 2008-10-12 11:37:51 UTC (rev 311)
+++ src/main/java/nl/improved/sqlclient/charva/CharvaSQLShellWindow.java 2008-10-12 11:57:48 UTC (rev 312)
@@ -21,12 +21,16 @@
import nl.improved.sqlclient.Screen;
/**
- *
+ * The sqlshell window implementation for charva.
* @author roy
*/
class CharvaSQLShellWindow extends AbstractSQLShellWindow {
private SQLShellComponent textComponent;
+ /**
+ * Constructor.
+ * @param textComponent the text component for rendering the text
+ */
public CharvaSQLShellWindow(SQLShellComponent textComponent) {
this.textComponent = textComponent;
}
@@ -41,7 +45,10 @@
return Toolkit.getDefaultToolkit().getScreenRows()-1;
}
- void show() {
+ /**
+ * Force repaint of the screen.
+ */
+ void repaintScreen() {
paint(getScreen());
}
@@ -75,11 +82,11 @@
if (totalLineCount > getScreenHeight()-1) {
totalLineCount = getScreenHeight()-1;
}
- String trimmed = trim(newText);
+ String trimmed = trim(newText, screen.getPageUpCount());
if (trimmed.startsWith(textComponent.getText())) {
textComponent.append(trimmed.substring(textComponent.getText().length()));
} else {
- textComponent.replaceRange(trim(newText), 0, textComponent.getText().length());
+ textComponent.replaceRange(trimmed, 0, textComponent.getText().length());
}
Point cursorPos = screen.getCursorPosition();
try {
@@ -149,10 +156,10 @@
} else if (evt.getKeyCode() == KeyEvent.VK_DELETE) {
handleInput(new InputKey(InputKey.SpecialKey.DELETE));
evt.consume();
- } else if (evt.getKeyCode() == KeyEvent.VK_PAGE_UP) {
+ } else if (evt.getKeyCode() == KeyEvent.VK_PAGE_DOWN) {
handleInput(new InputKey(InputKey.SpecialKey.PAGE_DOWN));
evt.consume();
- } else if (evt.getKeyCode() == KeyEvent.VK_PAGE_DOWN) {
+ } else if (evt.getKeyCode() == KeyEvent.VK_PAGE_UP) {
handleInput(new InputKey(InputKey.SpecialKey.PAGE_UP));
evt.consume();
} else if (evt.getKeyCode() == KeyEvent.VK_LEFT) {
@@ -180,7 +187,7 @@
evt.consume();
}
- private String trim(StringBuilder text) {
+ private String trim(StringBuilder text, int pageUpCount) {
String strText = text.toString();
if (strText.indexOf('\n') < 0) {
return strText;
@@ -191,16 +198,21 @@
return strText;
}
StringBuilder newString = new StringBuilder();
+ int offset = Math.max(0, lines.length - ((pageUpCount +1) * maxHeight));
boolean endsWithReturn = strText.endsWith("\n");
- for (int i = lines.length - maxHeight; i < lines.length; i++) {
- newString.append(lines[i]);
- if (i < lines.length-1 || endsWithReturn) {
+ for (int i = 0; i < maxHeight; i++) {
+ newString.append(lines[i+offset]);
+ if (i+offset < lines.length-1 || endsWithReturn) {
newString.append('\n');
}
}
return newString.toString();
}
+ /**
+ * Hacked version of a charva (swing) popup menu.
+ * It returns the selected menu item on hide.
+ */
private static class MyPopupMenu extends JPopupMenu {
private String selectedValue;
public MyPopupMenu(Vector items) {
Modified: src/main/java/nl/improved/sqlclient/charva/SQLShellComponent.java
===================================================================
--- src/main/java/nl/improved/sqlclient/charva/SQLShellComponent.java 2008-10-12 11:37:51 UTC (rev 311)
+++ src/main/java/nl/improved/sqlclient/charva/SQLShellComponent.java 2008-10-12 11:57:48 UTC (rev 312)
@@ -34,7 +34,7 @@
component.setBounds(new Point(0,0), new Dimension(Toolkit.getDefaultToolkit().getScreenColumns()-2
, Toolkit.getDefaultToolkit().getScreenRows()-2));
frame.add(component);
- component.sqlshellWindow.show();
+ component.sqlshellWindow.repaintScreen();
frame.pack();
frame.show();
}
|