Revision: 4399
          http://sourceforge.net/p/jump-pilot/code/4399
Author:   michaudm
Date:     2015-04-14 20:42:14 +0000 (Tue, 14 Apr 2015)
Log Message:
-----------
Sources for spatialite plugin

Added Paths:
-----------
    plug-ins/SpatialitePlugin/
    plug-ins/SpatialitePlugin/trunk/
    plug-ins/SpatialitePlugin/trunk/lib/
    plug-ins/SpatialitePlugin/trunk/lib/jts-1.13.jar
    plug-ins/SpatialitePlugin/trunk/lib/libcharset1.dll
    plug-ins/SpatialitePlugin/trunk/lib/libgeos-3-1-1.dll
    plug-ins/SpatialitePlugin/trunk/lib/libgeos_c-1.dll
    plug-ins/SpatialitePlugin/trunk/lib/libiconv2.dll
    plug-ins/SpatialitePlugin/trunk/lib/libproj-0.dll
    plug-ins/SpatialitePlugin/trunk/lib/libspatialite-1.dll
    plug-ins/SpatialitePlugin/trunk/lib/log4j-1.2.16.jar
    plug-ins/SpatialitePlugin/trunk/lib/openjump-1.6.0alpha.jar
    plug-ins/SpatialitePlugin/trunk/lib/sqlite-jdbc-3.7.15-SNAPSHOT.jar
    plug-ins/SpatialitePlugin/trunk/lib/sqlite3.jar
    plug-ins/SpatialitePlugin/trunk/lib/sqlite3jni.dll
    plug-ins/SpatialitePlugin/trunk/src/
    plug-ins/SpatialitePlugin/trunk/src/META-INF/
    plug-ins/SpatialitePlugin/trunk/src/META-INF/MANIFEST.MF
    plug-ins/SpatialitePlugin/trunk/src/jedit/
    plug-ins/SpatialitePlugin/trunk/src/jedit/DefaultInputHandler.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/DefaultInputHandler.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$MacroRecorder.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRecordable.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRepeatable.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$Wrapper.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace_word.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete_word.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_end.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_home.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$end.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$home.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_break.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_char.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_tab.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_char.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_line.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_page.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_word.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$overwrite.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_char.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_line.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_page.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_word.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$repeat.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$toggle_rect.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler.java
    
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler$1.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretBlinker.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretUndo.class
    
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ComponentHandler.class
    
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DocumentHandler.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DragHandler.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$FocusHandler.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MouseHandler.class
    
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MutableCaretEvent.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ScrollLayout.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/KeywordMap$Keyword.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/KeywordMap.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/KeywordMap.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/README.txt
    plug-ins/SpatialitePlugin/trunk/src/jedit/SQLTokenMarker.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/SQLTokenMarker.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/SyntaxDocument.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/SyntaxDocument.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/SyntaxStyle.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/SyntaxStyle.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/SyntaxUtilities.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/SyntaxUtilities.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/TeXTokenMarker.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/TeXTokenMarker.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/TextAreaDefaults.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/TextAreaDefaults.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/TextAreaPainter$Highlight.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/TextAreaPainter.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/TextAreaPainter.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/TextUtilities.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/TextUtilities.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/Token.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/Token.java
    plug-ins/SpatialitePlugin/trunk/src/jedit/TokenMarker$LineInfo.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/TokenMarker.class
    plug-ins/SpatialitePlugin/trunk/src/jedit/TokenMarker.java
    plug-ins/SpatialitePlugin/trunk/src/org/
    plug-ins/SpatialitePlugin/trunk/src/org/jam/
    plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/
    plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/ImportLayer.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/ImportLayer.java
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/PrintLog.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/PrintLog.java
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/PuglinTest.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/PuglinTest.java
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/RendererTree.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteDb.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteDb.java
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteDialog$1.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteDialog$2.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteDialog.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteDialog.java
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteExtension.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteExtension.java
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteGeometryBlob.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteGeometryBlob.java
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialitePluging.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialitePluging.java
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteValueConverterFactory$WKBGeometryValueConverter.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteValueConverterFactory.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SpatialiteValueConverterFactory.java
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SqliteTokenMarker.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/SqliteTokenMarker.java
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/TableType.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/Tnode.class
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/Tnode.java
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/funchlp.xml
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/images/
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/images/addlayer.png
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/images/database.png
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/images/folder.png
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/images/fsql.png
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/images/fun.png
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/images/geotable.png
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/images/geotablefdo.png
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/images/geotablevir.png
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/images/runsql.png
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/images/table.png
    
plug-ins/SpatialitePlugin/trunk/src/org/jam/openjump/spatialiteplugin/spatialite.properties

Added: plug-ins/SpatialitePlugin/trunk/lib/jts-1.13.jar
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/jts-1.13.jar
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/jts-1.13.jar    2015-04-12 17:48:23 UTC 
(rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/jts-1.13.jar    2015-04-14 20:42:14 UTC 
(rev 4399)

Property changes on: plug-ins/SpatialitePlugin/trunk/lib/jts-1.13.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/lib/libcharset1.dll
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/libcharset1.dll
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/libcharset1.dll 2015-04-12 17:48:23 UTC 
(rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/libcharset1.dll 2015-04-14 20:42:14 UTC 
(rev 4399)

Property changes on: plug-ins/SpatialitePlugin/trunk/lib/libcharset1.dll
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/lib/libgeos-3-1-1.dll
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/libgeos-3-1-1.dll
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/libgeos-3-1-1.dll       2015-04-12 
17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/libgeos-3-1-1.dll       2015-04-14 
20:42:14 UTC (rev 4399)

Property changes on: plug-ins/SpatialitePlugin/trunk/lib/libgeos-3-1-1.dll
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/lib/libgeos_c-1.dll
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/libgeos_c-1.dll
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/libgeos_c-1.dll 2015-04-12 17:48:23 UTC 
(rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/libgeos_c-1.dll 2015-04-14 20:42:14 UTC 
(rev 4399)

Property changes on: plug-ins/SpatialitePlugin/trunk/lib/libgeos_c-1.dll
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/lib/libiconv2.dll
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/libiconv2.dll
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/libiconv2.dll   2015-04-12 17:48:23 UTC 
(rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/libiconv2.dll   2015-04-14 20:42:14 UTC 
(rev 4399)

Property changes on: plug-ins/SpatialitePlugin/trunk/lib/libiconv2.dll
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/lib/libproj-0.dll
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/libproj-0.dll
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/libproj-0.dll   2015-04-12 17:48:23 UTC 
(rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/libproj-0.dll   2015-04-14 20:42:14 UTC 
(rev 4399)

Property changes on: plug-ins/SpatialitePlugin/trunk/lib/libproj-0.dll
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/lib/libspatialite-1.dll
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/libspatialite-1.dll
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/libspatialite-1.dll     2015-04-12 
17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/libspatialite-1.dll     2015-04-14 
20:42:14 UTC (rev 4399)

Property changes on: plug-ins/SpatialitePlugin/trunk/lib/libspatialite-1.dll
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/lib/log4j-1.2.16.jar
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/log4j-1.2.16.jar
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/log4j-1.2.16.jar        2015-04-12 
17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/log4j-1.2.16.jar        2015-04-14 
20:42:14 UTC (rev 4399)

Property changes on: plug-ins/SpatialitePlugin/trunk/lib/log4j-1.2.16.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/lib/openjump-1.6.0alpha.jar
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/openjump-1.6.0alpha.jar
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/openjump-1.6.0alpha.jar 2015-04-12 
17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/openjump-1.6.0alpha.jar 2015-04-14 
20:42:14 UTC (rev 4399)

Property changes on: plug-ins/SpatialitePlugin/trunk/lib/openjump-1.6.0alpha.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/lib/sqlite-jdbc-3.7.15-SNAPSHOT.jar
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/sqlite-jdbc-3.7.15-SNAPSHOT.jar
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/sqlite-jdbc-3.7.15-SNAPSHOT.jar 
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/sqlite-jdbc-3.7.15-SNAPSHOT.jar 
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/lib/sqlite-jdbc-3.7.15-SNAPSHOT.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/lib/sqlite3.jar
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/sqlite3.jar
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/sqlite3.jar     2015-04-12 17:48:23 UTC 
(rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/sqlite3.jar     2015-04-14 20:42:14 UTC 
(rev 4399)

Property changes on: plug-ins/SpatialitePlugin/trunk/lib/sqlite3.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/lib/sqlite3jni.dll
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/lib/sqlite3jni.dll
===================================================================
--- plug-ins/SpatialitePlugin/trunk/lib/sqlite3jni.dll  2015-04-12 17:48:23 UTC 
(rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/lib/sqlite3jni.dll  2015-04-14 20:42:14 UTC 
(rev 4399)

Property changes on: plug-ins/SpatialitePlugin/trunk/lib/sqlite3jni.dll
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/META-INF/MANIFEST.MF
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/META-INF/MANIFEST.MF                    
        (rev 0)
+++ plug-ins/SpatialitePlugin/trunk/src/META-INF/MANIFEST.MF    2015-04-14 
20:42:14 UTC (rev 4399)
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+Class-Path: sqlite3.jar openjump-1.6.0alpha.jar jts-1.13.jar log4j-1.2
+ .16.jar
+

Added: plug-ins/SpatialitePlugin/trunk/src/jedit/DefaultInputHandler.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/DefaultInputHandler.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/DefaultInputHandler.class 
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/DefaultInputHandler.class 
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/DefaultInputHandler.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/DefaultInputHandler.java
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/DefaultInputHandler.java          
                (rev 0)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/DefaultInputHandler.java  
2015-04-14 20:42:14 UTC (rev 4399)
@@ -0,0 +1,348 @@
+package jedit;
+
+/*
+ * DefaultInputHandler.java - Default implementation of an input handler
+ * Copyright (C) 1999 Slava Pestov
+ *
+ * You may use and modify this package for any purpose. Redistribution is
+ * permitted, in both source and binary form, provided that this notice
+ * remains intact in all source distributions of this package.
+ */
+
+import javax.swing.KeyStroke;
+import java.awt.event.*;
+import java.awt.Toolkit;
+import java.util.Hashtable;
+import java.util.StringTokenizer;
+
+/**
+ * The default input handler. It maps sequences of keystrokes into actions
+ * and inserts key typed events into the text area.
+ * @author Slava Pestov
+ * @version $Id: DefaultInputHandler.java,v 1.18 1999/12/13 03:40:30 sp Exp $
+ */
+public class DefaultInputHandler extends InputHandler
+{
+       /**
+        * Creates a new input handler with no key bindings defined.
+        */
+       public DefaultInputHandler()
+       {
+               bindings = currentBindings = new Hashtable();
+       }
+
+       /**
+        * Sets up the default key bindings.
+        */
+       public void addDefaultKeyBindings()
+       {
+               addKeyBinding("BACK_SPACE",BACKSPACE);
+               addKeyBinding("C+BACK_SPACE",BACKSPACE_WORD);
+               addKeyBinding("DELETE",DELETE);
+               addKeyBinding("C+DELETE",DELETE_WORD);
+
+               addKeyBinding("ENTER",INSERT_BREAK);
+               addKeyBinding("TAB",INSERT_TAB);
+
+               addKeyBinding("INSERT",OVERWRITE);
+               addKeyBinding("C+\\",TOGGLE_RECT);
+
+               addKeyBinding("HOME",HOME);
+               addKeyBinding("END",END);
+               addKeyBinding("S+HOME",SELECT_HOME);
+               addKeyBinding("S+END",SELECT_END);
+               addKeyBinding("C+HOME",DOCUMENT_HOME);
+               addKeyBinding("C+END",DOCUMENT_END);
+               addKeyBinding("CS+HOME",SELECT_DOC_HOME);
+               addKeyBinding("CS+END",SELECT_DOC_END);
+
+               addKeyBinding("PAGE_UP",PREV_PAGE);
+               addKeyBinding("PAGE_DOWN",NEXT_PAGE);
+               addKeyBinding("S+PAGE_UP",SELECT_PREV_PAGE);
+               addKeyBinding("S+PAGE_DOWN",SELECT_NEXT_PAGE);
+
+               addKeyBinding("LEFT",PREV_CHAR);
+               addKeyBinding("S+LEFT",SELECT_PREV_CHAR);
+               addKeyBinding("C+LEFT",PREV_WORD);
+               addKeyBinding("CS+LEFT",SELECT_PREV_WORD);
+               addKeyBinding("RIGHT",NEXT_CHAR);
+               addKeyBinding("S+RIGHT",SELECT_NEXT_CHAR);
+               addKeyBinding("C+RIGHT",NEXT_WORD);
+               addKeyBinding("CS+RIGHT",SELECT_NEXT_WORD);
+               addKeyBinding("UP",PREV_LINE);
+               addKeyBinding("S+UP",SELECT_PREV_LINE);
+               addKeyBinding("DOWN",NEXT_LINE);
+               addKeyBinding("S+DOWN",SELECT_NEXT_LINE);
+
+               addKeyBinding("C+ENTER",REPEAT);
+       }
+
+       /**
+        * Adds a key binding to this input handler. The key binding is
+        * a list of white space separated key strokes of the form
+        * <i>[modifiers+]key</i> where modifier is C for Control, A for Alt,
+        * or S for Shift, and key is either a character (a-z) or a field
+        * name in the KeyEvent class prefixed with VK_ (e.g., BACK_SPACE)
+        * @param keyBinding The key binding
+        * @param action The action
+        */
+       public void addKeyBinding(String keyBinding, ActionListener action)
+       {
+               Hashtable current = bindings;
+
+               StringTokenizer st = new StringTokenizer(keyBinding);
+               while(st.hasMoreTokens())
+               {
+                       KeyStroke keyStroke = parseKeyStroke(st.nextToken());
+                       if(keyStroke == null)
+                               return;
+
+                       if(st.hasMoreTokens())
+                       {
+                               Object o = current.get(keyStroke);
+                               if(o instanceof Hashtable)
+                                       current = (Hashtable)o;
+                               else
+                               {
+                                       o = new Hashtable();
+                                       current.put(keyStroke,o);
+                                       current = (Hashtable)o;
+                               }
+                       }
+                       else
+                               current.put(keyStroke,action);
+               }
+       }
+
+       /**
+        * Removes a key binding from this input handler. This is not yet
+        * implemented.
+        * @param keyBinding The key binding
+        */
+       public void removeKeyBinding(String keyBinding)
+       {
+               throw new InternalError("Not yet implemented");
+       }
+
+       /**
+        * Removes all key bindings from this input handler.
+        */
+       public void removeAllKeyBindings()
+       {
+               bindings.clear();
+       }
+
+       /**
+        * Returns a copy of this input handler that shares the same
+        * key bindings. Setting key bindings in the copy will also
+        * set them in the original.
+        */
+       public InputHandler copy()
+       {
+               return new DefaultInputHandler(this);
+       }
+
+       /**
+        * Handle a key pressed event. This will look up the binding for
+        * the key stroke and execute it.
+        */
+       public void keyPressed(KeyEvent evt)
+       {
+               int keyCode = evt.getKeyCode();
+               int modifiers = evt.getModifiers();
+
+               if(keyCode == KeyEvent.VK_CONTROL ||
+                       keyCode == KeyEvent.VK_SHIFT ||
+                       keyCode == KeyEvent.VK_ALT ||
+                       keyCode == KeyEvent.VK_META)
+                       return;
+
+               if((modifiers & ~KeyEvent.SHIFT_MASK) != 0
+                       || evt.isActionKey()
+                       || keyCode == KeyEvent.VK_BACK_SPACE
+                       || keyCode == KeyEvent.VK_DELETE
+                       || keyCode == KeyEvent.VK_ENTER
+                       || keyCode == KeyEvent.VK_TAB
+                       || keyCode == KeyEvent.VK_ESCAPE)
+               {
+                       if(grabAction != null)
+                       {
+                               handleGrabAction(evt);
+                               return;
+                       }
+
+                       KeyStroke keyStroke = KeyStroke.getKeyStroke(keyCode,
+                               modifiers);
+                       Object o = currentBindings.get(keyStroke);
+                       if(o == null)
+                       {
+                               // Don't beep if the user presses some
+                               // key we don't know about unless a
+                               // prefix is active. Otherwise it will
+                               // beep when caps lock is pressed, etc.
+                               if(currentBindings != bindings)
+                               {
+                                       Toolkit.getDefaultToolkit().beep();
+                                       // F10 should be passed on, but C+e F10
+                                       // shouldn't
+                                       repeatCount = 0;
+                                       repeat = false;
+                                       evt.consume();
+                               }
+                               currentBindings = bindings;
+                               return;
+                       }
+                       else if(o instanceof ActionListener)
+                       {
+                               currentBindings = bindings;
+
+                               executeAction(((ActionListener)o),
+                                       evt.getSource(),null);
+
+                               evt.consume();
+                               return;
+                       }
+                       else if(o instanceof Hashtable)
+                       {
+                               currentBindings = (Hashtable)o;
+                               evt.consume();
+                               return;
+                       }
+               }
+       }
+
+       /**
+        * Handle a key typed event. This inserts the key into the text area.
+        */
+       public void keyTyped(KeyEvent evt)
+       {
+               int modifiers = evt.getModifiers();
+               char c = evt.getKeyChar();
+               if(c != KeyEvent.CHAR_UNDEFINED &&
+                       (modifiers & KeyEvent.ALT_MASK) == 0)
+               {
+                       if(c >= 0x20 && c != 0x7f)
+                       {
+                               KeyStroke keyStroke = KeyStroke.getKeyStroke(
+                                       Character.toUpperCase(c));
+                               Object o = currentBindings.get(keyStroke);
+
+                               if(o instanceof Hashtable)
+                               {
+                                       currentBindings = (Hashtable)o;
+                                       return;
+                               }
+                               else if(o instanceof ActionListener)
+                               {
+                                       currentBindings = bindings;
+                                       executeAction((ActionListener)o,
+                                               evt.getSource(),
+                                               String.valueOf(c));
+                                       return;
+                               }
+
+                               currentBindings = bindings;
+
+                               if(grabAction != null)
+                               {
+                                       handleGrabAction(evt);
+                                       return;
+                               }
+
+                               // 0-9 adds another 'digit' to the repeat number
+                               if(repeat && Character.isDigit(c))
+                               {
+                                       repeatCount *= 10;
+                                       repeatCount += (c - '0');
+                                       return;
+                               }
+
+                               executeAction(INSERT_CHAR,evt.getSource(),
+                                       String.valueOf(evt.getKeyChar()));
+
+                               repeatCount = 0;
+                               repeat = false;
+                       }
+               }
+       }
+
+       /**
+        * Converts a string to a keystroke. The string should be of the
+        * form <i>modifiers</i>+<i>shortcut</i> where <i>modifiers</i>
+        * is any combination of A for Alt, C for Control, S for Shift
+        * or M for Meta, and <i>shortcut</i> is either a single character,
+        * or a keycode name from the <code>KeyEvent</code> class, without
+        * the <code>VK_</code> prefix.
+        * @param keyStroke A string description of the key stroke
+        */
+       public static KeyStroke parseKeyStroke(String keyStroke)
+       {
+               if(keyStroke == null)
+                       return null;
+               int modifiers = 0;
+               int index = keyStroke.indexOf('+');
+               if(index != -1)
+               {
+                       for(int i = 0; i < index; i++)
+                       {
+                               switch(Character.toUpperCase(keyStroke
+                                       .charAt(i)))
+                               {
+                               case 'A':
+                                       modifiers |= InputEvent.ALT_MASK;
+                                       break;
+                               case 'C':
+                                       modifiers |= InputEvent.CTRL_MASK;
+                                       break;
+                               case 'M':
+                                       modifiers |= InputEvent.META_MASK;
+                                       break;
+                               case 'S':
+                                       modifiers |= InputEvent.SHIFT_MASK;
+                                       break;
+                               }
+                       }
+               }
+               String key = keyStroke.substring(index + 1);
+               if(key.length() == 1)
+               {
+                       char ch = Character.toUpperCase(key.charAt(0));
+                       if(modifiers == 0)
+                               return KeyStroke.getKeyStroke(ch);
+                       else
+                               return KeyStroke.getKeyStroke(ch,modifiers);
+               }
+               else if(key.length() == 0)
+               {
+                       System.err.println("Invalid key stroke: " + keyStroke);
+                       return null;
+               }
+               else
+               {
+                       int ch;
+
+                       try
+                       {
+                               ch = KeyEvent.class.getField("VK_".concat(key))
+                                       .getInt(null);
+                       }
+                       catch(Exception e)
+                       {
+                               System.err.println("Invalid key stroke: "
+                                       + keyStroke);
+                               return null;
+                       }
+
+                       return KeyStroke.getKeyStroke(ch,modifiers);
+               }
+       }
+
+       // private members
+       private Hashtable bindings;
+       private Hashtable currentBindings;
+
+       private DefaultInputHandler(DefaultInputHandler copy)
+       {
+               bindings = currentBindings = copy.bindings;
+       }
+}

Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$MacroRecorder.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$MacroRecorder.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$MacroRecorder.class  
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$MacroRecorder.class  
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$MacroRecorder.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRecordable.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRecordable.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRecordable.class  
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRecordable.class  
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRecordable.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRepeatable.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRepeatable.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRepeatable.class  
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRepeatable.class  
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$NonRepeatable.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$Wrapper.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$Wrapper.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$Wrapper.class        
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$Wrapper.class        
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$Wrapper.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace.class      
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace.class      
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace_word.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace_word.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace_word.class 
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace_word.class 
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$backspace_word.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete.class 
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete.class 
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete_word.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete_word.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete_word.class    
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete_word.class    
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$delete_word.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_end.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_end.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_end.class   
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_end.class   
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_end.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_home.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_home.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_home.class  
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_home.class  
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$document_home.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$end.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$end.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$end.class    
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$end.class    
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$end.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$home.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$home.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$home.class   
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$home.class   
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$home.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_break.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_break.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_break.class   
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_break.class   
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_break.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_char.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_char.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_char.class    
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_char.class    
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_char.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_tab.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_tab.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_tab.class     
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_tab.class     
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$insert_tab.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_char.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_char.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_char.class      
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_char.class      
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_char.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_line.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_line.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_line.class      
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_line.class      
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_line.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_page.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_page.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_page.class      
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_page.class      
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_page.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_word.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_word.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_word.class      
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_word.class      
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$next_word.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$overwrite.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$overwrite.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$overwrite.class      
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$overwrite.class      
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$overwrite.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_char.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_char.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_char.class      
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_char.class      
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_char.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_line.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_line.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_line.class      
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_line.class      
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_line.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_page.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_page.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_page.class      
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_page.class      
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_page.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_word.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_word.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_word.class      
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_word.class      
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$prev_word.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$repeat.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$repeat.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$repeat.class 
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$repeat.class 
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$repeat.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$toggle_rect.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$toggle_rect.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$toggle_rect.class    
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$toggle_rect.class    
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler$toggle_rect.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler.class        
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler.class        
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler.java
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler.java                 
        (rev 0)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/InputHandler.java 2015-04-14 
20:42:14 UTC (rev 4399)
@@ -0,0 +1,1071 @@
+package jedit;
+
+/*
+ * InputHandler.java - Manages key bindings and executes actions
+ * Copyright (C) 1999 Slava Pestov
+ *
+ * You may use and modify this package for any purpose. Redistribution is
+ * permitted, in both source and binary form, provided that this notice
+ * remains intact in all source distributions of this package.
+ */
+
+import javax.swing.text.*;
+import javax.swing.JPopupMenu;
+import java.awt.event.*;
+import java.awt.Component;
+import java.util.*;
+
+/**
+ * An input handler converts the user's key strokes into concrete actions.
+ * It also takes care of macro recording and action repetition.<p>
+ *
+ * This class provides all the necessary support code for an input
+ * handler, but doesn't actually do any key binding logic. It is up
+ * to the implementations of this class to do so.
+ *
+ * @author Slava Pestov
+ * @version $Id: InputHandler.java,v 1.14 1999/12/13 03:40:30 sp Exp $
+ * @see org.gjt.sp.jedit.textarea.DefaultInputHandler
+ */
+public abstract class InputHandler extends KeyAdapter
+{
+       /**
+        * If this client property is set to Boolean.TRUE on the text area,
+        * the home/end keys will support 'smart' BRIEF-like behaviour
+        * (one press = start/end of line, two presses = start/end of
+        * viewscreen, three presses = start/end of document). By default,
+        * this property is not set.
+        */
+       public static final String SMART_HOME_END_PROPERTY = 
"InputHandler.homeEnd";
+
+       public static final ActionListener BACKSPACE = new backspace();
+       public static final ActionListener BACKSPACE_WORD = new 
backspace_word();
+       public static final ActionListener DELETE = new delete();
+       public static final ActionListener DELETE_WORD = new delete_word();
+       public static final ActionListener END = new end(false);
+       public static final ActionListener DOCUMENT_END = new 
document_end(false);
+       public static final ActionListener SELECT_END = new end(true);
+       public static final ActionListener SELECT_DOC_END = new 
document_end(true);
+       public static final ActionListener INSERT_BREAK = new insert_break();
+       public static final ActionListener INSERT_TAB = new insert_tab();
+       public static final ActionListener HOME = new home(false);
+       public static final ActionListener DOCUMENT_HOME = new 
document_home(false);
+       public static final ActionListener SELECT_HOME = new home(true);
+       public static final ActionListener SELECT_DOC_HOME = new 
document_home(true);
+       public static final ActionListener NEXT_CHAR = new next_char(false);
+       public static final ActionListener NEXT_LINE = new next_line(false);
+       public static final ActionListener NEXT_PAGE = new next_page(false);
+       public static final ActionListener NEXT_WORD = new next_word(false);
+       public static final ActionListener SELECT_NEXT_CHAR = new 
next_char(true);
+       public static final ActionListener SELECT_NEXT_LINE = new 
next_line(true);
+       public static final ActionListener SELECT_NEXT_PAGE = new 
next_page(true);
+       public static final ActionListener SELECT_NEXT_WORD = new 
next_word(true);
+       public static final ActionListener OVERWRITE = new overwrite();
+       public static final ActionListener PREV_CHAR = new prev_char(false);
+       public static final ActionListener PREV_LINE = new prev_line(false);
+       public static final ActionListener PREV_PAGE = new prev_page(false);
+       public static final ActionListener PREV_WORD = new prev_word(false);
+       public static final ActionListener SELECT_PREV_CHAR = new 
prev_char(true);
+       public static final ActionListener SELECT_PREV_LINE = new 
prev_line(true);
+       public static final ActionListener SELECT_PREV_PAGE = new 
prev_page(true);
+       public static final ActionListener SELECT_PREV_WORD = new 
prev_word(true);
+       public static final ActionListener REPEAT = new repeat();
+       public static final ActionListener TOGGLE_RECT = new toggle_rect();
+
+       // Default action
+       public static final ActionListener INSERT_CHAR = new insert_char();
+
+       private static Hashtable actions;
+
+       static
+       {
+               actions = new Hashtable();
+               actions.put("backspace",BACKSPACE);
+               actions.put("backspace-word",BACKSPACE_WORD);
+               actions.put("delete",DELETE);
+               actions.put("delete-word",DELETE_WORD);
+               actions.put("end",END);
+               actions.put("select-end",SELECT_END);
+               actions.put("document-end",DOCUMENT_END);
+               actions.put("select-doc-end",SELECT_DOC_END);
+               actions.put("insert-break",INSERT_BREAK);
+               actions.put("insert-tab",INSERT_TAB);
+               actions.put("home",HOME);
+               actions.put("select-home",SELECT_HOME);
+               actions.put("document-home",DOCUMENT_HOME);
+               actions.put("select-doc-home",SELECT_DOC_HOME);
+               actions.put("next-char",NEXT_CHAR);
+               actions.put("next-line",NEXT_LINE);
+               actions.put("next-page",NEXT_PAGE);
+               actions.put("next-word",NEXT_WORD);
+               actions.put("select-next-char",SELECT_NEXT_CHAR);
+               actions.put("select-next-line",SELECT_NEXT_LINE);
+               actions.put("select-next-page",SELECT_NEXT_PAGE);
+               actions.put("select-next-word",SELECT_NEXT_WORD);
+               actions.put("overwrite",OVERWRITE);
+               actions.put("prev-char",PREV_CHAR);
+               actions.put("prev-line",PREV_LINE);
+               actions.put("prev-page",PREV_PAGE);
+               actions.put("prev-word",PREV_WORD);
+               actions.put("select-prev-char",SELECT_PREV_CHAR);
+               actions.put("select-prev-line",SELECT_PREV_LINE);
+               actions.put("select-prev-page",SELECT_PREV_PAGE);
+               actions.put("select-prev-word",SELECT_PREV_WORD);
+               actions.put("repeat",REPEAT);
+               actions.put("toggle-rect",TOGGLE_RECT);
+               actions.put("insert-char",INSERT_CHAR);
+       }
+
+       /**
+        * Returns a named text area action.
+        * @param name The action name
+        */
+       public static ActionListener getAction(String name)
+       {
+               return (ActionListener)actions.get(name);
+       }
+
+       /**
+        * Returns the name of the specified text area action.
+        * @param listener The action
+        */
+       public static String getActionName(ActionListener listener)
+       {
+               Enumeration enu = getActions();
+               while(enu.hasMoreElements())
+               {
+                       String name = (String)enu.nextElement();
+                       ActionListener _listener = getAction(name);
+                       if(_listener == listener)
+                               return name;
+               }
+               return null;
+       }
+
+       /**
+        * Returns an enumeration of all available actions.
+        */
+       public static Enumeration getActions()
+       {
+               return actions.keys();
+       }
+
+       /**
+        * Adds the default key bindings to this input handler.
+        * This should not be called in the constructor of this
+        * input handler, because applications might load the
+        * key bindings from a file, etc.
+        */
+       public abstract void addDefaultKeyBindings();
+
+       /**
+        * Adds a key binding to this input handler.
+        * @param keyBinding The key binding (the format of this is
+        * input-handler specific)
+        * @param action The action
+        */
+       public abstract void addKeyBinding(String keyBinding, ActionListener 
action);
+
+       /**
+        * Removes a key binding from this input handler.
+        * @param keyBinding The key binding
+        */
+       public abstract void removeKeyBinding(String keyBinding);
+
+       /**
+        * Removes all key bindings from this input handler.
+        */
+       public abstract void removeAllKeyBindings();
+
+       /**
+        * Grabs the next key typed event and invokes the specified
+        * action with the key as a the action command.
+        * @param action The action
+        */
+       public void grabNextKeyStroke(ActionListener listener)
+       {
+               grabAction = listener;
+       }
+
+       /**
+        * Returns if repeating is enabled. When repeating is enabled,
+        * actions will be executed multiple times. This is usually
+        * invoked with a special key stroke in the input handler.
+        */
+       public boolean isRepeatEnabled()
+       {
+               return repeat;
+       }
+
+       /**
+        * Enables repeating. When repeating is enabled, actions will be
+        * executed multiple times. Once repeating is enabled, the input
+        * handler should read a number from the keyboard.
+        */
+       public void setRepeatEnabled(boolean repeat)
+       {
+               this.repeat = repeat;
+       }
+
+       /**
+        * Returns the number of times the next action will be repeated.
+        */
+       public int getRepeatCount()
+       {
+               return (repeat ? Math.max(1,repeatCount) : 1);
+       }
+
+       /**
+        * Sets the number of times the next action will be repeated.
+        * @param repeatCount The repeat count
+        */
+       public void setRepeatCount(int repeatCount)
+       {
+               this.repeatCount = repeatCount;
+       }
+
+       /**
+        * Returns the macro recorder. If this is non-null, all executed
+        * actions should be forwarded to the recorder.
+        */
+       public InputHandler.MacroRecorder getMacroRecorder()
+       {
+               return recorder;
+       }
+
+       /**
+        * Sets the macro recorder. If this is non-null, all executed
+        * actions should be forwarded to the recorder.
+        * @param recorder The macro recorder
+        */
+       public void setMacroRecorder(InputHandler.MacroRecorder recorder)
+       {
+               this.recorder = recorder;
+       }
+
+       /**
+        * Returns a copy of this input handler that shares the same
+        * key bindings. Setting key bindings in the copy will also
+        * set them in the original.
+        */
+       public abstract InputHandler copy();
+
+       /**
+        * Executes the specified action, repeating and recording it as
+        * necessary.
+        * @param listener The action listener
+        * @param source The event source
+        * @param actionCommand The action command
+        */
+       public void executeAction(ActionListener listener, Object source,
+               String actionCommand)
+       {
+               // create event
+               ActionEvent evt = new ActionEvent(source,
+                       ActionEvent.ACTION_PERFORMED,
+                       actionCommand);
+
+               // don't do anything if the action is a wrapper
+               // (like EditAction.Wrapper)
+               if(listener instanceof Wrapper)
+               {
+                       listener.actionPerformed(evt);
+                       return;
+               }
+
+               // remember old values, in case action changes them
+               boolean _repeat = repeat;
+               int _repeatCount = getRepeatCount();
+
+               // execute the action
+               if(listener instanceof InputHandler.NonRepeatable)
+                       listener.actionPerformed(evt);
+               else
+               {
+                       for(int i = 0; i < Math.max(1,repeatCount); i++)
+                               listener.actionPerformed(evt);
+               }
+
+               // do recording. Notice that we do no recording whatsoever
+               // for actions that grab keys
+               if(grabAction == null)
+               {
+                       if(recorder != null)
+                       {
+                               if(!(listener instanceof 
InputHandler.NonRecordable))
+                               {
+                                       if(_repeatCount != 1)
+                                               
recorder.actionPerformed(REPEAT,String.valueOf(_repeatCount));
+
+                                       
recorder.actionPerformed(listener,actionCommand);
+                               }
+                       }
+
+                       // If repeat was true originally, clear it
+                       // Otherwise it might have been set by the action, etc
+                       if(_repeat)
+                       {
+                               repeat = false;
+                               repeatCount = 0;
+                       }
+               }
+       }
+
+       /**
+        * Returns the text area that fired the specified event.
+        * @param evt The event
+        */
+       public static JEditTextArea getTextArea(EventObject evt)
+       {
+               if(evt != null)
+               {
+                       Object o = evt.getSource();
+                       if(o instanceof Component)
+                       {
+                               // find the parent text area
+                               Component c = (Component)o;
+                               for(;;)
+                               {
+                                       if(c instanceof JEditTextArea)
+                                               return (JEditTextArea)c;
+                                       else if(c == null)
+                                               break;
+                                       if(c instanceof JPopupMenu)
+                                               c = ((JPopupMenu)c)
+                                                       .getInvoker();
+                                       else
+                                               c = c.getParent();
+                               }
+                       }
+               }
+
+               // this shouldn't happen
+               System.err.println("BUG: getTextArea() returning null");
+               System.err.println("Report this to Slava Pestov 
<s...@gjt.org>");
+               return null;
+       }
+
+       // protected members
+
+       /**
+        * If a key is being grabbed, this method should be called with
+        * the appropriate key event. It executes the grab action with
+        * the typed character as the parameter.
+        */
+       protected void handleGrabAction(KeyEvent evt)
+       {
+               // Clear it *before* it is executed so that executeAction()
+               // resets the repeat count
+               ActionListener _grabAction = grabAction;
+               grabAction = null;
+               executeAction(_grabAction,evt.getSource(),
+                       String.valueOf(evt.getKeyChar()));
+       }
+
+       // protected members
+       protected ActionListener grabAction;
+       protected boolean repeat;
+       protected int repeatCount;
+       protected InputHandler.MacroRecorder recorder;
+
+       /**
+        * If an action implements this interface, it should not be repeated.
+        * Instead, it will handle the repetition itself.
+        */
+       public interface NonRepeatable {}
+
+       /**
+        * If an action implements this interface, it should not be recorded
+        * by the macro recorder. Instead, it will do its own recording.
+        */
+       public interface NonRecordable {}
+
+       /**
+        * For use by EditAction.Wrapper only.
+        * @since jEdit 2.2final
+        */
+       public interface Wrapper {}
+
+       /**
+        * Macro recorder.
+        */
+       public interface MacroRecorder
+       {
+               void actionPerformed(ActionListener listener,
+                       String actionCommand);
+       }
+
+       public static class backspace implements ActionListener
+       {
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+
+                       if(!textArea.isEditable())
+                       {
+                               textArea.getToolkit().beep();
+                               return;
+                       }
+
+                       if(textArea.getSelectionStart()
+                          != textArea.getSelectionEnd())
+                       {
+                               textArea.setSelectedText("");
+                       }
+                       else
+                       {
+                               int caret = textArea.getCaretPosition();
+                               if(caret == 0)
+                               {
+                                       textArea.getToolkit().beep();
+                                       return;
+                               }
+                               try
+                               {
+                                       textArea.getDocument().remove(caret - 
1,1);
+                               }
+                               catch(BadLocationException bl)
+                               {
+                                       bl.printStackTrace();
+                               }
+                       }
+               }
+       }
+
+       public static class backspace_word implements ActionListener
+       {
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       int start = textArea.getSelectionStart();
+                       if(start != textArea.getSelectionEnd())
+                       {
+                               textArea.setSelectedText("");
+                       }
+
+                       int line = textArea.getCaretLine();
+                       int lineStart = textArea.getLineStartOffset(line);
+                       int caret = start - lineStart;
+
+                       String lineText = textArea.getLineText(textArea
+                               .getCaretLine());
+
+                       if(caret == 0)
+                       {
+                               if(lineStart == 0)
+                               {
+                                       textArea.getToolkit().beep();
+                                       return;
+                               }
+                               caret--;
+                       }
+                       else
+                       {
+                               String noWordSep = 
(String)textArea.getDocument().getProperty("noWordSep");
+                               caret = 
TextUtilities.findWordStart(lineText,caret,noWordSep);
+                       }
+
+                       try
+                       {
+                               textArea.getDocument().remove(
+                                               caret + lineStart,
+                                               start - (caret + lineStart));
+                       }
+                       catch(BadLocationException bl)
+                       {
+                               bl.printStackTrace();
+                       }
+               }
+       }
+
+       public static class delete implements ActionListener
+       {
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+
+                       if(!textArea.isEditable())
+                       {
+                               textArea.getToolkit().beep();
+                               return;
+                       }
+
+                       if(textArea.getSelectionStart()
+                          != textArea.getSelectionEnd())
+                       {
+                               textArea.setSelectedText("");
+                       }
+                       else
+                       {
+                               int caret = textArea.getCaretPosition();
+                               if(caret == textArea.getDocumentLength())
+                               {
+                                       textArea.getToolkit().beep();
+                                       return;
+                               }
+                               try
+                               {
+                                       textArea.getDocument().remove(caret,1);
+                               }
+                               catch(BadLocationException bl)
+                               {
+                                       bl.printStackTrace();
+                               }
+                       }
+               }
+       }
+
+       public static class delete_word implements ActionListener
+       {
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       int start = textArea.getSelectionStart();
+                       if(start != textArea.getSelectionEnd())
+                       {
+                               textArea.setSelectedText("");
+                       }
+
+                       int line = textArea.getCaretLine();
+                       int lineStart = textArea.getLineStartOffset(line);
+                       int caret = start - lineStart;
+
+                       String lineText = textArea.getLineText(textArea
+                               .getCaretLine());
+
+                       if(caret == lineText.length())
+                       {
+                               if(lineStart + caret == 
textArea.getDocumentLength())
+                               {
+                                       textArea.getToolkit().beep();
+                                       return;
+                               }
+                               caret++;
+                       }
+                       else
+                       {
+                               String noWordSep = 
(String)textArea.getDocument().getProperty("noWordSep");
+                               caret = 
TextUtilities.findWordEnd(lineText,caret,noWordSep);
+                       }
+
+                       try
+                       {
+                               textArea.getDocument().remove(start,
+                                       (caret + lineStart) - start);
+                       }
+                       catch(BadLocationException bl)
+                       {
+                               bl.printStackTrace();
+                       }
+               }
+       }
+
+       public static class end implements ActionListener
+       {
+               private boolean select;
+
+               public end(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+
+                       int caret = textArea.getCaretPosition();
+
+                       int lastOfLine = textArea.getLineEndOffset(
+                               textArea.getCaretLine()) - 1;
+                       int lastVisibleLine = textArea.getFirstLine()
+                               + textArea.getVisibleLines();
+                       if(lastVisibleLine >= textArea.getLineCount())
+                       {
+                               lastVisibleLine = 
Math.min(textArea.getLineCount() - 1,
+                                       lastVisibleLine);
+                       }
+                       else
+                               lastVisibleLine -= 
(textArea.getElectricScroll() + 1);
+
+                       int lastVisible = 
textArea.getLineEndOffset(lastVisibleLine) - 1;
+                       int lastDocument = textArea.getDocumentLength();
+
+                       if(caret == lastDocument)
+                       {
+                               textArea.getToolkit().beep();
+                               return;
+                       }
+                       else if(!Boolean.TRUE.equals(textArea.getClientProperty(
+                               SMART_HOME_END_PROPERTY)))
+                               caret = lastOfLine;
+                       else if(caret == lastVisible)
+                               caret = lastDocument;
+                       else if(caret == lastOfLine)
+                               caret = lastVisible;
+                       else
+                               caret = lastOfLine;
+
+                       if(select)
+                               
textArea.select(textArea.getMarkPosition(),caret);
+                       else
+                               textArea.setCaretPosition(caret);
+               }
+       }
+
+       public static class document_end implements ActionListener
+       {
+               private boolean select;
+
+               public document_end(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       if(select)
+                               textArea.select(textArea.getMarkPosition(),
+                                       textArea.getDocumentLength());
+                       else
+                               textArea.setCaretPosition(textArea
+                                       .getDocumentLength());
+               }
+       }
+
+       public static class home implements ActionListener
+       {
+               private boolean select;
+
+               public home(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+
+                       int caret = textArea.getCaretPosition();
+
+                       int firstLine = textArea.getFirstLine();
+
+                       int firstOfLine = textArea.getLineStartOffset(
+                               textArea.getCaretLine());
+                       int firstVisibleLine = (firstLine == 0 ? 0 :
+                               firstLine + textArea.getElectricScroll());
+                       int firstVisible = textArea.getLineStartOffset(
+                               firstVisibleLine);
+
+                       if(caret == 0)
+                       {
+                               textArea.getToolkit().beep();
+                               return;
+                       }
+                       else if(!Boolean.TRUE.equals(textArea.getClientProperty(
+                               SMART_HOME_END_PROPERTY)))
+                               caret = firstOfLine;
+                       else if(caret == firstVisible)
+                               caret = 0;
+                       else if(caret == firstOfLine)
+                               caret = firstVisible;
+                       else
+                               caret = firstOfLine;
+
+                       if(select)
+                               
textArea.select(textArea.getMarkPosition(),caret);
+                       else
+                               textArea.setCaretPosition(caret);
+               }
+       }
+
+       public static class document_home implements ActionListener
+       {
+               private boolean select;
+
+               public document_home(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       if(select)
+                               textArea.select(textArea.getMarkPosition(),0);
+                       else
+                               textArea.setCaretPosition(0);
+               }
+       }
+
+       public static class insert_break implements ActionListener
+       {
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+
+                       if(!textArea.isEditable())
+                       {
+                               textArea.getToolkit().beep();
+                               return;
+                       }
+
+                       textArea.setSelectedText("\n");
+               }
+       }
+
+       public static class insert_tab implements ActionListener
+       {
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+
+                       if(!textArea.isEditable())
+                       {
+                               textArea.getToolkit().beep();
+                               return;
+                       }
+
+                       textArea.overwriteSetSelectedText("\t");
+               }
+       }
+
+       public static class next_char implements ActionListener
+       {
+               private boolean select;
+
+               public next_char(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       int caret = textArea.getCaretPosition();
+                       if(caret == textArea.getDocumentLength())
+                       {
+                               textArea.getToolkit().beep();
+                               return;
+                       }
+
+                       if(select)
+                               textArea.select(textArea.getMarkPosition(),
+                                       caret + 1);
+                       else
+                               textArea.setCaretPosition(caret + 1);
+               }
+       }
+
+       public static class next_line implements ActionListener
+       {
+               private boolean select;
+
+               public next_line(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       int caret = textArea.getCaretPosition();
+                       int line = textArea.getCaretLine();
+
+                       if(line == textArea.getLineCount() - 1)
+                       {
+                               textArea.getToolkit().beep();
+                               return;
+                       }
+
+                       int magic = textArea.getMagicCaretPosition();
+                       if(magic == -1)
+                       {
+                               magic = textArea.offsetToX(line,
+                                       caret - 
textArea.getLineStartOffset(line));
+                       }
+
+                       caret = textArea.getLineStartOffset(line + 1)
+                               + textArea.xToOffset(line + 1,magic);
+                       if(select)
+                               
textArea.select(textArea.getMarkPosition(),caret);
+                       else
+                               textArea.setCaretPosition(caret);
+                       textArea.setMagicCaretPosition(magic);
+               }
+       }
+
+       public static class next_page implements ActionListener
+       {
+               private boolean select;
+
+               public next_page(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       int lineCount = textArea.getLineCount();
+                       int firstLine = textArea.getFirstLine();
+                       int visibleLines = textArea.getVisibleLines();
+                       int line = textArea.getCaretLine();
+
+                       firstLine += visibleLines;
+
+                       if(firstLine + visibleLines >= lineCount - 1)
+                               firstLine = lineCount - visibleLines;
+
+                       textArea.setFirstLine(firstLine);
+
+                       int caret = textArea.getLineStartOffset(
+                               Math.min(textArea.getLineCount() - 1,
+                               line + visibleLines));
+                       if(select)
+                               
textArea.select(textArea.getMarkPosition(),caret);
+                       else
+                               textArea.setCaretPosition(caret);
+               }
+       }
+
+       public static class next_word implements ActionListener
+       {
+               private boolean select;
+
+               public next_word(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       int caret = textArea.getCaretPosition();
+                       int line = textArea.getCaretLine();
+                       int lineStart = textArea.getLineStartOffset(line);
+                       caret -= lineStart;
+
+                       String lineText = textArea.getLineText(textArea
+                               .getCaretLine());
+
+                       if(caret == lineText.length())
+                       {
+                               if(lineStart + caret == 
textArea.getDocumentLength())
+                               {
+                                       textArea.getToolkit().beep();
+                                       return;
+                               }
+                               caret++;
+                       }
+                       else
+                       {
+                               String noWordSep = 
(String)textArea.getDocument().getProperty("noWordSep");
+                               caret = 
TextUtilities.findWordEnd(lineText,caret,noWordSep);
+                       }
+
+                       if(select)
+                               textArea.select(textArea.getMarkPosition(),
+                                       lineStart + caret);
+                       else
+                               textArea.setCaretPosition(lineStart + caret);
+               }
+       }
+
+       public static class overwrite implements ActionListener
+       {
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       textArea.setOverwriteEnabled(
+                               !textArea.isOverwriteEnabled());
+               }
+       }
+
+       public static class prev_char implements ActionListener
+       {
+               private boolean select;
+
+               public prev_char(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       int caret = textArea.getCaretPosition();
+                       if(caret == 0)
+                       {
+                               textArea.getToolkit().beep();
+                               return;
+                       }
+
+                       if(select)
+                               textArea.select(textArea.getMarkPosition(),
+                                       caret - 1);
+                       else
+                               textArea.setCaretPosition(caret - 1);
+               }
+       }
+
+       public static class prev_line implements ActionListener
+       {
+               private boolean select;
+
+               public prev_line(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       int caret = textArea.getCaretPosition();
+                       int line = textArea.getCaretLine();
+
+                       if(line == 0)
+                       {
+                               textArea.getToolkit().beep();
+                               return;
+                       }
+
+                       int magic = textArea.getMagicCaretPosition();
+                       if(magic == -1)
+                       {
+                               magic = textArea.offsetToX(line,
+                                       caret - 
textArea.getLineStartOffset(line));
+                       }
+
+                       caret = textArea.getLineStartOffset(line - 1)
+                               + textArea.xToOffset(line - 1,magic);
+                       if(select)
+                               
textArea.select(textArea.getMarkPosition(),caret);
+                       else
+                               textArea.setCaretPosition(caret);
+                       textArea.setMagicCaretPosition(magic);
+               }
+       }
+
+       public static class prev_page implements ActionListener
+       {
+               private boolean select;
+
+               public prev_page(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       int firstLine = textArea.getFirstLine();
+                       int visibleLines = textArea.getVisibleLines();
+                       int line = textArea.getCaretLine();
+
+                       if(firstLine < visibleLines)
+                               firstLine = visibleLines;
+
+                       textArea.setFirstLine(firstLine - visibleLines);
+
+                       int caret = textArea.getLineStartOffset(
+                               Math.max(0,line - visibleLines));
+                       if(select)
+                               
textArea.select(textArea.getMarkPosition(),caret);
+                       else
+                               textArea.setCaretPosition(caret);
+               }
+       }
+
+       public static class prev_word implements ActionListener
+       {
+               private boolean select;
+
+               public prev_word(boolean select)
+               {
+                       this.select = select;
+               }
+
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       int caret = textArea.getCaretPosition();
+                       int line = textArea.getCaretLine();
+                       int lineStart = textArea.getLineStartOffset(line);
+                       caret -= lineStart;
+
+                       String lineText = textArea.getLineText(textArea
+                               .getCaretLine());
+
+                       if(caret == 0)
+                       {
+                               if(lineStart == 0)
+                               {
+                                       textArea.getToolkit().beep();
+                                       return;
+                               }
+                               caret--;
+                       }
+                       else
+                       {
+                               String noWordSep = 
(String)textArea.getDocument().getProperty("noWordSep");
+                               caret = 
TextUtilities.findWordStart(lineText,caret,noWordSep);
+                       }
+
+                       if(select)
+                               textArea.select(textArea.getMarkPosition(),
+                                       lineStart + caret);
+                       else
+                               textArea.setCaretPosition(lineStart + caret);
+               }
+       }
+
+       public static class repeat implements ActionListener,
+               InputHandler.NonRecordable
+       {
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       textArea.getInputHandler().setRepeatEnabled(true);
+                       String actionCommand = evt.getActionCommand();
+                       if(actionCommand != null)
+                       {
+                               textArea.getInputHandler().setRepeatCount(
+                                       Integer.parseInt(actionCommand));
+                       }
+               }
+       }
+
+       public static class toggle_rect implements ActionListener
+       {
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       textArea.setSelectionRectangular(
+                               !textArea.isSelectionRectangular());
+               }
+       }
+
+       public static class insert_char implements ActionListener,
+               InputHandler.NonRepeatable
+       {
+               public void actionPerformed(ActionEvent evt)
+               {
+                       JEditTextArea textArea = getTextArea(evt);
+                       String str = evt.getActionCommand();
+                       int repeatCount = 
textArea.getInputHandler().getRepeatCount();
+
+                       if(textArea.isEditable())
+                       {
+                               StringBuffer buf = new StringBuffer();
+                               for(int i = 0; i < repeatCount; i++)
+                                       buf.append(str);
+                               
textArea.overwriteSetSelectedText(buf.toString());
+                       }
+                       else
+                       {
+                               textArea.getToolkit().beep();
+                       }
+               }
+       }
+}

Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler$1.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler$1.class
===================================================================
--- 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler$1.class   
    2015-04-12 17:48:23 UTC (rev 4398)
+++ 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler$1.class   
    2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler$1.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler.class 
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler.class 
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$AdjustHandler.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretBlinker.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretBlinker.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretBlinker.class  
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretBlinker.class  
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretBlinker.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretUndo.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretUndo.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretUndo.class     
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretUndo.class     
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$CaretUndo.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ComponentHandler.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ComponentHandler.class
===================================================================
--- 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ComponentHandler.class  
    2015-04-12 17:48:23 UTC (rev 4398)
+++ 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ComponentHandler.class  
    2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ComponentHandler.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DocumentHandler.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DocumentHandler.class
===================================================================
--- 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DocumentHandler.class   
    2015-04-12 17:48:23 UTC (rev 4398)
+++ 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DocumentHandler.class   
    2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DocumentHandler.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DragHandler.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DragHandler.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DragHandler.class   
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DragHandler.class   
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$DragHandler.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$FocusHandler.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$FocusHandler.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$FocusHandler.class  
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$FocusHandler.class  
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$FocusHandler.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MouseHandler.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MouseHandler.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MouseHandler.class  
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MouseHandler.class  
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MouseHandler.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MutableCaretEvent.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MutableCaretEvent.class
===================================================================
--- 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MutableCaretEvent.class 
    2015-04-12 17:48:23 UTC (rev 4398)
+++ 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MutableCaretEvent.class 
    2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$MutableCaretEvent.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ScrollLayout.class
===================================================================
(Binary files differ)

Index: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ScrollLayout.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ScrollLayout.class  
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ScrollLayout.class  
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea$ScrollLayout.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea.class
===================================================================
(Binary files differ)

Index: plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea.class
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea.class       
2015-04-12 17:48:23 UTC (rev 4398)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea.class       
2015-04-14 20:42:14 UTC (rev 4399)

Property changes on: 
plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea.class
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea.java
===================================================================
--- plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea.java                
                (rev 0)
+++ plug-ins/SpatialitePlugin/trunk/src/jedit/JEditTextArea.java        
2015-04-14 20:42:14 UTC (rev 4399)
@@ -0,0 +1,2129 @@
+package jedit;
+
+/*
+ * JEditTextArea.java - jEdit's text component
+ * Copyright (C) 1999 Slava Pestov
+ *
+ * You may use and modify this package for any purpose. Redistribution is
+ * permitted, in both source and binary form, provided that this notice
+ * remains intact in all source distributions of this package.
+ */
+
+import javax.swing.event.*;
+import javax.swing.text.*;
+import javax.swing.undo.*;
+import javax.swing.*;
+import java.awt.datatransfer.*;
+import java.awt.event.*;
+import java.awt.*;
+import java.util.Enumeration;
+import java.util.Vector;
+
+/**
+ * jEdit's text area component. It is more suited for editing program
+ * source code than JEditorPane, because it drops the unnecessary features
+ * (images, variable-width lines, and so on) and adds a whole bunch of
+ * useful goodies such as:
+ * <ul>
+ * <li>More flexible key binding scheme
+ * <li>Supports macro recorders
+ * <li>Rectangular selection
+ * <li>Bracket highlighting
+ * <li>Syntax highlighting
+ * <li>Command repetition
+ * <li>Block caret can be enabled
+ * </ul>
+ * It is also faster and doesn't have as many problems. It can be used
+ * in other applications; the only other part of jEdit it depends on is
+ * the syntax package.<p>
+ *
+ * To use it in your app, treat it like any other component, for example:
+ * <pre>JEditTextArea ta = new JEditTextArea();
+ * ta.setTokenMarker(new JavaTokenMarker());
+ * ta.setText("public class Test {\n"
+ *     + "    public static void main(String[] args) {\n"
+ *     + "        System.out.println(\"Hello World\");\n"
+ *     + "    }\n"
+ *     + "}");</pre>
+ *
+ * @author Slava Pestov
+ * @version $Id: JEditTextArea.java,v 1.36 1999/12/13 03:40:30 sp Exp $
+ */
+public class JEditTextArea extends JComponent
+{
+       /**
+        * Adding components with this name to the text area will place
+        * them left of the horizontal scroll bar. In jEdit, the status
+        * bar is added this way.
+        */
+       public static String LEFT_OF_SCROLLBAR = "los";
+
+       /**
+        * Creates a new JEditTextArea with the default settings.
+        */
+       public JEditTextArea()
+       {
+               this(TextAreaDefaults.getDefaults());
+       }
+
+       /**
+        * Creates a new JEditTextArea with the specified settings.
+        * @param defaults The default settings
+        */
+       public JEditTextArea(TextAreaDefaults defaults)
+       {
+               // Enable the necessary events
+               enableEvents(AWTEvent.KEY_EVENT_MASK);
+
+               // Initialize some misc. stuff
+               painter = new TextAreaPainter(this,defaults);
+               documentHandler = new DocumentHandler();
+               listenerList = new EventListenerList();
+               caretEvent = new MutableCaretEvent();
+               lineSegment = new Segment();
+               bracketLine = bracketPosition = -1;
+               blink = true;
+
+               // Initialize the GUI
+               setLayout(new ScrollLayout());
+               add(CENTER,painter);
+               add(RIGHT,vertical = new JScrollBar(JScrollBar.VERTICAL));
+               add(BOTTOM,horizontal = new JScrollBar(JScrollBar.HORIZONTAL));
+
+               // Add some event listeners
+               vertical.addAdjustmentListener(new AdjustHandler());
+               horizontal.addAdjustmentListener(new AdjustHandler());
+               painter.addComponentListener(new ComponentHandler());
+               painter.addMouseListener(new MouseHandler());
+               painter.addMouseMotionListener(new DragHandler());
+               addFocusListener(new FocusHandler());
+
+               // Load the defaults
+               setInputHandler(defaults.inputHandler);
+               setDocument(defaults.document);
+               editable = defaults.editable;
+               caretVisible = defaults.caretVisible;
+               caretBlinks = defaults.caretBlinks;
+               electricScroll = defaults.electricScroll;
+
+               popup = defaults.popup;
+
+               // We don't seem to get the initial focus event?
+               focusedComponent = this;
+       }
+
+       /**
+        * Returns if this component can be traversed by pressing
+        * the Tab key. This returns false.
+        */
+       public final boolean isManagingFocus()
+       {
+               return true;
+       }
+
+       /**
+        * Returns the object responsible for painting this text area.
+        */
+       public final TextAreaPainter getPainter()
+       {
+               return painter;
+       }
+
+       /**
+        * Returns the input handler.
+        */
+       public final InputHandler getInputHandler()
+       {
+               return inputHandler;
+       }
+
+       /**
+        * Sets the input handler.
+        * @param inputHandler The new input handler
+        */
+       public void setInputHandler(InputHandler inputHandler)
+       {
+               this.inputHandler = inputHandler;
+       }
+
+       /**
+        * Returns true if the caret is blinking, false otherwise.
+        */
+       public final boolean isCaretBlinkEnabled()
+       {
+               return caretBlinks;
+       }
+
+       /**
+        * Toggles caret blinking.
+        * @param caretBlinks True if the caret should blink, false otherwise
+        */
+       public void setCaretBlinkEnabled(boolean caretBlinks)
+       {
+               this.caretBlinks = caretBlinks;
+               if(!caretBlinks)
+                       blink = false;
+
+               painter.invalidateSelectedLines();
+       }
+
+       /**
+        * Returns true if the caret is visible, false otherwise.
+        */
+       public final boolean isCaretVisible()
+       {
+               return (!caretBlinks || blink) && caretVisible;
+       }
+
+       /**
+        * Sets if the caret should be visible.
+        * @param caretVisible True if the caret should be visible, false
+        * otherwise
+        */
+       public void setCaretVisible(boolean caretVisible)
+       {
+               this.caretVisible = caretVisible;
+               blink = true;
+
+               painter.invalidateSelectedLines();
+       }
+
+       /**
+        * Blinks the caret.
+        */
+       public final void blinkCaret()
+       {
+               if(caretBlinks)
+               {
+                       blink = !blink;
+                       painter.invalidateSelectedLines();
+               }
+               else
+                       blink = true;
+       }
+
+       /**
+        * Returns the number of lines from the top and button of the
+        * text area that are always visible.
+        */
+       public final int getElectricScroll()
+       {
+               return electricScroll;
+       }
+
+       /**
+        * Sets the number of lines from the top and bottom of the text
+        * area that are always visible
+        * @param electricScroll The number of lines always visible from
+        * the top or bottom
+        */
+       public final void setElectricScroll(int electricScroll)
+       {
+               this.electricScroll = electricScroll;
+       }
+
+       /**
+        * Updates the state of the scroll bars. This should be called
+        * if the number of lines in the document changes, or when the
+        * size of the text are changes.
+        */
+       public void updateScrollBars()
+       {
+               if(vertical != null && visibleLines != 0)
+               {
+                       
vertical.setValues(firstLine,visibleLines,0,getLineCount());
+                       vertical.setUnitIncrement(2);
+                       vertical.setBlockIncrement(visibleLines);
+               }
+
+               int width = painter.getWidth();
+               if(horizontal != null && width != 0)
+               {
+                       horizontal.setValues(-horizontalOffset,width,0,width * 
5);
+                       horizontal.setUnitIncrement(painter.getFontMetrics()
+                               .charWidth('w'));
+                       horizontal.setBlockIncrement(width / 2);
+               }
+       }
+
+       /**
+        * Returns the line displayed at the text area's origin.
+        */
+       public final int getFirstLine()
+       {
+               return firstLine;
+       }
+
+       /**
+        * Sets the line displayed at the text area's origin without
+        * updating the scroll bars.
+        */
+       public void setFirstLine(int firstLine)
+       {
+               if(firstLine == this.firstLine)
+                       return;
+               int oldFirstLine = this.firstLine;
+               this.firstLine = firstLine;
+               if(firstLine != vertical.getValue())
+                       updateScrollBars();
+               painter.repaint();
+       }
+
+       /**
+        * Returns the number of lines visible in this text area.
+        */
+       public final int getVisibleLines()
+       {
+               return visibleLines;
+       }
+
+       /**
+        * Recalculates the number of visible lines. This should not
+        * be called directly.
+        */
+       public final void recalculateVisibleLines()
+       {
+               if(painter == null)
+                       return;
+               int height = painter.getHeight();
+               int lineHeight = painter.getFontMetrics().getHeight();
+               int oldVisibleLines = visibleLines;
+               visibleLines = height / lineHeight;
+               updateScrollBars();
+       }
+
+       /**
+        * Returns the horizontal offset of drawn lines.
+        */
+       public final int getHorizontalOffset()
+       {
+               return horizontalOffset;
+       }
+
+       /**
+        * Sets the horizontal offset of drawn lines. This can be used to
+        * implement horizontal scrolling.
+        * @param horizontalOffset offset The new horizontal offset
+        */
+       public void setHorizontalOffset(int horizontalOffset)
+       {
+               if(horizontalOffset == this.horizontalOffset)
+                       return;
+               this.horizontalOffset = horizontalOffset;
+               if(horizontalOffset != horizontal.getValue())
+                       updateScrollBars();
+               painter.repaint();
+       }
+
+       /**
+        * A fast way of changing both the first line and horizontal
+        * offset.
+        * @param firstLine The new first line
+        * @param horizontalOffset The new horizontal offset
+        * @return True if any of the values were changed, false otherwise
+        */
+       public boolean setOrigin(int firstLine, int horizontalOffset)
+       {
+               boolean changed = false;
+               int oldFirstLine = this.firstLine;
+
+               if(horizontalOffset != this.horizontalOffset)
+               {
+                       this.horizontalOffset = horizontalOffset;
+                       changed = true;
+               }
+
+               if(firstLine != this.firstLine)
+               {
+                       this.firstLine = firstLine;
+                       changed = true;
+               }
+
+               if(changed)
+               {
+                       updateScrollBars();
+                       painter.repaint();
+               }
+
+               return changed;
+       }
+
+       /**
+        * Ensures that the caret is visible by scrolling the text area if
+        * necessary.
+        * @return True if scrolling was actually performed, false if the
+        * caret was already visible
+        */
+       public boolean scrollToCaret()
+       {
+               int line = getCaretLine();
+               int lineStart = getLineStartOffset(line);
+               int offset = Math.max(0,Math.min(getLineLength(line) - 1,
+                       getCaretPosition() - lineStart));
+
+               return scrollTo(line,offset);
+       }
+
+       /**
+        * Ensures that the specified line and offset is visible by scrolling
+        * the text area if necessary.
+        * @param line The line to scroll to
+        * @param offset The offset in the line to scroll to
+        * @return True if scrolling was actually performed, false if the
+        * line and offset was already visible
+        */
+       public boolean scrollTo(int line, int offset)
+       {
+               // visibleLines == 0 before the component is realized
+               // we can't do any proper scrolling then, so we have
+               // this hack...
+               if(visibleLines == 0)
+               {
+                       setFirstLine(Math.max(0,line - electricScroll));
+                       return true;
+               }
+
+               int newFirstLine = firstLine;
+               int newHorizontalOffset = horizontalOffset;
+
+               if(line < firstLine + electricScroll)
+               {
+                       newFirstLine = Math.max(0,line - electricScroll);
+               }
+               else if(line + electricScroll >= firstLine + visibleLines)
+               {
+                       newFirstLine = (line - visibleLines) + electricScroll + 
1;
+                       if(newFirstLine + visibleLines >= getLineCount())
+                               newFirstLine = getLineCount() - visibleLines;
+                       if(newFirstLine < 0)
+                               newFirstLine = 0;
+               }
+
+               int x = _offsetToX(line,offset);
+               int width = painter.getFontMetrics().charWidth('w');
+
+               if(x < 0)
+               {
+                       newHorizontalOffset = Math.min(0,horizontalOffset
+                               - x + width + 5);
+               }
+               else if(x + width >= painter.getWidth())
+               {
+                       newHorizontalOffset = horizontalOffset +
+                               (painter.getWidth() - x) - width - 5;
+               }
+
+               return setOrigin(newFirstLine,newHorizontalOffset);
+       }
+
+       /**
+        * Converts a line index to a y co-ordinate.
+        * @param line The line
+        */
+       public int lineToY(int line)
+       {
+               FontMetrics fm = painter.getFontMetrics();
+               return (line - firstLine) * fm.getHeight()
+                       - (fm.getLeading() + fm.getMaxDescent());
+       }
+
+       /**
+        * Converts a y co-ordinate to a line index.
+        * @param y The y co-ordinate
+        */
+       public int yToLine(int y)
+       {
+               FontMetrics fm = painter.getFontMetrics();
+               int height = fm.getHeight();
+               return Math.max(0,Math.min(getLineCount() - 1,
+                       y / height + firstLine));
+       }
+
+       /**
+        * Converts an offset in a line into an x co-ordinate. This is a
+        * slow version that can be used any time.
+        * @param line The line
+        * @param offset The offset, from the start of the line
+        */
+       public final int offsetToX(int line, int offset)
+       {
+               // don't use cached tokens
+               painter.currentLineTokens = null;
+               return _offsetToX(line,offset);
+       }
+
+       /**
+        * Converts an offset in a line into an x co-ordinate. This is a
+        * fast version that should only be used if no changes were made
+        * to the text since the last repaint.
+        * @param line The line
+        * @param offset The offset, from the start of the line
+        */
+       public int _offsetToX(int line, int offset)
+       {
+               TokenMarker tokenMarker = getTokenMarker();
+
+               /* Use painter's cached info for speed */
+               FontMetrics fm = painter.getFontMetrics();
+
+               getLineText(line,lineSegment);
+
+               int segmentOffset = lineSegment.offset;
+               int x = horizontalOffset;
+
+               /* If syntax coloring is disabled, do simple translation */
+               if(tokenMarker == null)
+               {
+                       lineSegment.count = offset;
+                       return x + Utilities.getTabbedTextWidth(lineSegment,
+                               fm,x,painter,0);
+               }
+               /* If syntax coloring is enabled, we have to do this because
+                * tokens can vary in width */
+               else
+               {
+                       Token tokens;
+                       if(painter.currentLineIndex == line
+                               && painter.currentLineTokens != null)
+                               tokens = painter.currentLineTokens;
+                       else
+                       {
+                               painter.currentLineIndex = line;
+                               tokens = painter.currentLineTokens
+                                       = 
tokenMarker.markTokens(lineSegment,line);
+                       }
+
+                       Toolkit toolkit = painter.getToolkit();
+                       Font defaultFont = painter.getFont();
+                       SyntaxStyle[] styles = painter.getStyles();
+
+                       for(;;)
+                       {
+                               byte id = tokens.id;
+                               if(id == Token.END)
+                               {
+                                       return x;
+                               }
+
+                               if(id == Token.NULL)
+                                       fm = painter.getFontMetrics();
+                               else
+                                       fm = 
styles[id].getFontMetrics(defaultFont);
+
+                               int length = tokens.length;
+
+                               if(offset + segmentOffset < lineSegment.offset 
+ length)
+                               {
+                                       lineSegment.count = offset - 
(lineSegment.offset - segmentOffset);
+                                       return x + Utilities.getTabbedTextWidth(
+                                               lineSegment,fm,x,painter,0);
+                               }
+                               else
+                               {
+                                       lineSegment.count = length;
+                                       x += Utilities.getTabbedTextWidth(
+                                               lineSegment,fm,x,painter,0);
+                                       lineSegment.offset += length;
+                               }
+                               tokens = tokens.next;
+                       }
+               }
+       }
+
+       /**
+        * Converts an x co-ordinate to an offset within a line.
+        * @param line The line
+        * @param x The x co-ordinate
+        */
+       public int xToOffset(int line, int x)
+       {
+               TokenMarker tokenMarker = getTokenMarker();
+
+               /* Use painter's cached info for speed */
+               FontMetrics fm = painter.getFontMetrics();
+
+               getLineText(line,lineSegment);
+
+               char[] segmentArray = lineSegment.array;
+               int segmentOffset = lineSegment.offset;
+               int segmentCount = lineSegment.count;
+
+               int width = horizontalOffset;
+
+               if(tokenMarker == null)
+               {
+                       for(int i = 0; i < segmentCount; i++)
+                       {
+                               char c = segmentArray[i + segmentOffset];
+                               int charWidth;
+                               if(c == '\t')
+                                       charWidth = 
(int)painter.nextTabStop(width,i)
+                                               - width;
+                               else
+                                       charWidth = fm.charWidth(c);
+
+                               if(painter.isBlockCaretEnabled())
+                               {
+                                       if(x - charWidth <= width)
+                                               return i;
+                               }
+                               else
+                               {
+                                       if(x - charWidth / 2 <= width)
+                                               return i;
+                               }
+
+                               width += charWidth;
+                       }
+
+                       return segmentCount;
+               }
+               else
+               {
+                       Token tokens;
+                       if(painter.currentLineIndex == line && painter
+                               .currentLineTokens != null)
+                               tokens = painter.currentLineTokens;
+                       else
+                       {
+                               painter.currentLineIndex = line;
+                               tokens = painter.currentLineTokens
+                                       = 
tokenMarker.markTokens(lineSegment,line);
+                       }
+
+                       int offset = 0;
+                       Toolkit toolkit = painter.getToolkit();
+                       Font defaultFont = painter.getFont();
+                       SyntaxStyle[] styles = painter.getStyles();
+
+                       for(;;)
+                       {
+                               byte id = tokens.id;
+                               if(id == Token.END)
+                                       return offset;
+
+                               if(id == Token.NULL)
+                                       fm = painter.getFontMetrics();
+                               else
+                                       fm = 
styles[id].getFontMetrics(defaultFont);
+
+                               int length = tokens.length;
+
+                               for(int i = 0; i < length; i++)
+                               {
+                                       char c = segmentArray[segmentOffset + 
offset + i];
+                                       int charWidth;
+                                       if(c == '\t')
+                                               charWidth = 
(int)painter.nextTabStop(width,offset + i)
+                                                       - width;
+                                       else
+                                               charWidth = fm.charWidth(c);
+
+                                       if(painter.isBlockCaretEnabled())
+                                       {
+                                               if(x - charWidth <= width)
+                                                       return offset + i;
+                                       }
+                                       else
+                                       {
+                                               if(x - charWidth / 2 <= width)
+                                                       return offset + i;
+                                       }
+
+                                       width += charWidth;
+                               }
+
+                               offset += length;
+                               tokens = tokens.next;
+                       }
+               }
+       }
+
+       /**
+        * Converts a point to an offset, from the start of the text.
+        * @param x The x co-ordinate of the point
+        * @param y The y co-ordinate of the point
+        */
+       public int xyToOffset(int x, int y)
+       {
+               int line = yToLine(y);
+               int start = getLineStartOffset(line);
+               return start + xToOffset(line,x);
+       }
+
+       /**
+        * Returns the document this text area is editing.
+        */
+       public final SyntaxDocument getDocument()
+       {
+               return document;
+       }
+
+       /**
+        * Sets the document this text area is editing.
+        * @param document The document
+        */
+       public void setDocument(SyntaxDocument document)
+       {
+               if(this.document == document)
+                       return;
+               if(this.document != null)
+                       this.document.removeDocumentListener(documentHandler);
+               this.document = document;
+
+               document.addDocumentListener(documentHandler);
+
+               select(0,0);
+               updateScrollBars();
+               painter.repaint();
+       }
+
+       /**
+        * Returns the document's token marker. Equivalent to calling
+        * <code>getDocument().getTokenMarker()</code>.
+        */
+       public final TokenMarker getTokenMarker()
+       {
+               return document.getTokenMarker();
+       }
+
+       /**
+        * Sets the document's token marker. Equivalent to caling
+        * <code>getDocument().setTokenMarker()</code>.
+        * @param tokenMarker The token marker
+        */
+       public final void setTokenMarker(TokenMarker tokenMarker)
+       {
+               document.setTokenMarker(tokenMarker);
+       }
+
+       /**
+        * Returns the length of the document. Equivalent to calling
+        * <code>getDocument().getLength()</code>.
+        */
+       public final int getDocumentLength()
+       {
+               return document.getLength();
+       }
+
+       /**
+        * Returns the number of lines in the document.
+        */
+       public final int getLineCount()
+       {
+               return document.getDefaultRootElement().getElementCount();
+       }
+
+       /**
+        * Returns the line containing the specified offset.
+        * @param offset The offset
+        */
+       public final int getLineOfOffset(int offset)
+       {
+               return document.getDefaultRootElement().getElementIndex(offset);
+       }
+
+       /**
+        * Returns the start offset of the specified line.
+        * @param line The line
+        * @return The start offset of the specified line, or -1 if the line is
+        * invalid
+        */
+       public int getLineStartOffset(int line)
+       {
+               Element lineElement = document.getDefaultRootElement()
+                       .getElement(line);
+               if(lineElement == null)
+                       return -1;
+               else
+                       return lineElement.getStartOffset();
+       }
+
+       /**
+        * Returns the end offset of the specified line.
+        * @param line The line
+        * @return The end offset of the specified line, or -1 if the line is
+        * invalid.
+        */
+       public int getLineEndOffset(int line)
+       {
+               Element lineElement = document.getDefaultRootElement()
+                       .getElement(line);
+               if(lineElement == null)
+                       return -1;
+               else
+                       return lineElement.getEndOffset();
+       }
+
+       /**
+        * Returns the length of the specified line.
+        * @param line The line
+        */
+       public int getLineLength(int line)
+       {
+               Element lineElement = document.getDefaultRootElement()
+                       .getElement(line);
+               if(lineElement == null)
+                       return -1;
+               else
+                       return lineElement.getEndOffset()
+                               - lineElement.getStartOffset() - 1;
+       }
+
+       /**
+        * Returns the entire text of this text area.
+        */
+       public String getText()
+       {
+               try
+               {
+                       return document.getText(0,document.getLength());
+               }
+               catch(BadLocationException bl)
+               {
+                       bl.printStackTrace();
+                       return null;
+               }
+       }
+
+       /**
+        * Sets the entire text of this text area.
+        */
+       public void setText(String text)
+       {
+               try
+               {
+                       document.beginCompoundEdit();
+                       document.remove(0,document.getLength());
+                       document.insertString(0,text,null);
+               }
+               catch(BadLocationException bl)
+               {
+                       bl.printStackTrace();
+               }
+               finally
+               {
+                       document.endCompoundEdit();
+               }
+       }
+
+       /**
+        * Returns the specified substring of the document.
+        * @param start The start offset
+        * @param len The length of the substring
+        * @return The substring, or null if the offsets are invalid
+        */
+       public final String getText(int start, int len)
+       {
+               try
+               {
+                       return document.getText(start,len);
+               }
+               catch(BadLocationException bl)
+               {
+                       bl.printStackTrace();
+                       return null;
+               }
+       }
+
+       /**
+        * Copies the specified substring of the document into a segment.
+        * If the offsets are invalid, the segment will contain a null string.
+        * @param start The start offset
+        * @param len The length of the substring
+        * @param segment The segment
+        */
+       public final void getText(int start, int len, Segment segment)
+       {
+               try
+               {
+                       document.getText(start,len,segment);
+               }
+               catch(BadLocationException bl)
+               {
+                       bl.printStackTrace();
+                       segment.offset = segment.count = 0;
+               }
+       }
+
+       /**
+        * Returns the text on the specified line.
+        * @param lineIndex The line
+        * @return The text, or null if the line is invalid
+        */
+       public final String getLineText(int lineIndex)
+       {
+               int start = getLineStartOffset(lineIndex);
+               return getText(start,getLineEndOffset(lineIndex) - start - 1);
+       }
+
+       /**
+        * Copies the text on the specified line into a segment. If the line
+        * is invalid, the segment will contain a null string.
+        * @param lineIndex The line
+        */
+       public final void getLineText(int lineIndex, Segment segment)
+       {
+               int start = getLineStartOffset(lineIndex);
+               getText(start,getLineEndOffset(lineIndex) - start - 1,segment);
+       }
+
+       /**
+        * Returns the selection start offset.
+        */
+       public final int getSelectionStart()
+       {
+               return selectionStart;
+       }
+
+       /**
+        * Returns the offset where the selection starts on the specified
+        * line.
+        */
+       public int getSelectionStart(int line)
+       {
+               if(line == selectionStartLine)
+                       return selectionStart;
+               else if(rectSelect)
+               {
+                       Element map = document.getDefaultRootElement();
+                       int start = selectionStart - 
map.getElement(selectionStartLine)
+                               .getStartOffset();
+
+                       Element lineElement = map.getElement(line);
+                       int lineStart = lineElement.getStartOffset();
+                       int lineEnd = lineElement.getEndOffset() - 1;
+                       return Math.min(lineEnd,lineStart + start);
+               }
+               else
+                       return getLineStartOffset(line);
+       }
+
+       /**
+        * Returns the selection start line.
+        */
+       public final int getSelectionStartLine()
+       {
+               return selectionStartLine;
+       }
+
+       /**
+        * Sets the selection start. The new selection will be the new
+        * selection start and the old selection end.
+        * @param selectionStart The selection start
+        * @see #select(int,int)
+        */
+       public final void setSelectionStart(int selectionStart)
+       {
+               select(selectionStart,selectionEnd);
+       }
+
+       /**
+        * Returns the selection end offset.
+        */
+       public final int getSelectionEnd()
+       {
+               return selectionEnd;
+       }
+
+       /**
+        * Returns the offset where the selection ends on the specified
+        * line.
+        */
+       public int getSelectionEnd(int line)
+       {
+               if(line == selectionEndLine)
+                       return selectionEnd;
+               else if(rectSelect)
+               {
+                       Element map = document.getDefaultRootElement();
+                       int end = selectionEnd - 
map.getElement(selectionEndLine)
+                               .getStartOffset();
+
+                       Element lineElement = map.getElement(line);
+                       int lineStart = lineElement.getStartOffset();
+                       int lineEnd = lineElement.getEndOffset() - 1;
+                       return Math.min(lineEnd,lineStart + end);
+               }
+               else
+                       return getLineEndOffset(line) - 1;
+       }
+
+       /**
+        * Returns the selection end line.
+        */
+       public final int getSelectionEndLine()
+       {
+               return selectionEndLine;
+       }
+
+       /**
+        * Sets the selection end. The new selection will be the old
+        * selection start and the bew selection end.
+        * @param selectionEnd The selection end
+        * @see #select(int,int)
+        */
+       public final void setSelectionEnd(int selectionEnd)
+       {
+               select(selectionStart,selectionEnd);
+       }
+
+       /**
+        * Returns the caret position. This will either be the selection
+        * start or the selection end, depending on which direction the
+        * selection was made in.
+        */
+       public final int getCaretPosition()
+       {
+               return (biasLeft ? selectionStart : selectionEnd);
+       }
+
+       /**
+        * Returns the caret line.
+        */
+       public final int getCaretLine()
+       {
+               return (biasLeft ? selectionStartLine : selectionEndLine);
+       }
+
+       /**
+        * Returns the mark position. This will be the opposite selection
+        * bound to the caret position.
+        * @see #getCaretPosition()
+        */
+       public final int getMarkPosition()
+       {
+               return (biasLeft ? selectionEnd : selectionStart);
+       }
+
+       /**
+        * Returns the mark line.
+        */
+       public final int getMarkLine()
+       {
+               return (biasLeft ? selectionEndLine : selectionStartLine);
+       }
+
+       /**
+        * Sets the caret position. The new selection will consist of the
+        * caret position only (hence no text will be selected)
+        * @param caret The caret position
+        * @see #select(int,int)
+        */

@@ Diff output truncated at 100000 characters. @@

------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to