retrofit
authorKevin Lamonte <kevin.lamonte@gmail.com>
Wed, 13 Nov 2019 07:25:53 +0000 (01:25 -0600)
committerKevin Lamonte <kevin.lamonte@gmail.com>
Wed, 13 Nov 2019 07:25:53 +0000 (01:25 -0600)
build.xml
src/jexer/TEditorWidget.java

index 2e8616763e2e63430d04fee3eb5353867d3fccf5..0bdf890e2eed19c2f311b13f0da8a5a9d2a7787a 100644 (file)
--- a/build.xml
+++ b/build.xml
     <mkdir dir="${jar.dir}"/>
     <jar destfile="${jar.dir}/${ant.project.name}.jar"
          basedir="${classes.dir}">
-      <fileset dir="${resources.dir}"/>
+
+      <fileset dir="${resources.dir}">
+        <exclude name="**/*TTF-4.39.ttf" />
+        <exclude name="**/*Italic*.ttf" />
+      </fileset>
 
       <!-- Include properties files. -->
       <fileset dir="${src.dir}" includes="**/*.properties"/>
index 290fa361824ba1e03a3744c86524655076c6c477..7798ad84c6a425b7a798860febcfe24289cbd79f 100644 (file)
@@ -791,6 +791,17 @@ public class TEditorWidget extends TWidget implements EditMenuUser {
         return document.getLineLengthMax() + 1;
     }
 
+    /**
+     * Get the current editing row plain text.  1-based.
+     *
+     * @param row the editing row number.  Row 1 is the first row.
+     * @return the plain text of the row
+     */
+    public String getEditingRawLine(final int row) {
+        Line line  = document.getLine(row - 1);
+        return line.getRawString();
+    }
+
     /**
      * Get the dirty value.
      *
@@ -800,6 +811,13 @@ public class TEditorWidget extends TWidget implements EditMenuUser {
         return document.isDirty();
     }
 
+    /**
+     * Unset the dirty flag.
+     */
+    public void setNotDirty() {
+        document.setNotDirty();
+    }
+
     /**
      * Save contents to file.
      *
@@ -980,6 +998,77 @@ public class TEditorWidget extends TWidget implements EditMenuUser {
         getClipboard().copyText(sb.toString());
     }
 
+    /**
+     * Set the selection.
+     *
+     * @param startRow the starting row number.  0-based: row 0 is the first
+     * row.
+     * @param startColumn the starting column number.  0-based: column 0 is
+     * the first column.
+     * @param endRow the ending row number.  0-based: row 0 is the first row.
+     * @param endColumn the ending column number.  0-based: column 0 is the
+     * first column.
+     */
+    public void setSelection(final int startRow, final int startColumn,
+        final int endRow, final int endColumn) {
+
+        inSelection = true;
+        selectionLine0 = startRow;
+        selectionColumn0 = startColumn;
+        selectionLine1 = endRow;
+        selectionColumn1 = endColumn;
+    }
+
+    /**
+     * Unset the selection.
+     */
+    public void unsetSelection() {
+        inSelection = false;
+    }
+
+    /**
+     * Replace whatever is being selected with new text.  If not in
+     * selection, nothing is replaced.
+     *
+     * @param text the new replacement text
+     */
+    public void replaceSelection(final String text) {
+        if (!inSelection) {
+            return;
+        }
+
+        // Delete selected text, then paste text from clipboard.
+        deleteSelection();
+
+        for (int i = 0; i < text.length(); ) {
+            int ch = text.codePointAt(i);
+            onKeypress(new TKeypressEvent(false, 0, ch, false, false,
+                    false));
+            i += Character.charCount(ch);
+        }
+    }
+
+    /**
+     * Get the entire contents of the editor as one string.
+     *
+     * @return the editor contents
+     */
+    public String getText() {
+        return document.getText();
+    }
+
+    /**
+     * Set the entire contents of the editor from one string.
+     *
+     * @param text the new contents
+     */
+    public void setText(final String text) {
+        document = new Document(text, defaultColor);
+        unsetSelection();
+        topLine = 0;
+        leftColumn = 0;
+    }
+
     // ------------------------------------------------------------------------
     // EditMenuUser -----------------------------------------------------------
     // ------------------------------------------------------------------------