retrofit
authorKevin Lamonte <kevin.lamonte@gmail.com>
Fri, 22 Nov 2019 17:04:51 +0000 (11:04 -0600)
committerKevin Lamonte <kevin.lamonte@gmail.com>
Fri, 22 Nov 2019 17:04:51 +0000 (11:04 -0600)
src/jexer/TEditorWidget.java
src/jexer/TExceptionDialog.java
src/jexer/TList.java
src/jexer/TWidget.java
src/jexer/ttree/TTreeViewWidget.java

index 9236da2a89a57afd06cd62e3463c800bcd573df2..6d24a196af8881cd75c70455cdbae8b94dd2b618 100644 (file)
@@ -164,8 +164,15 @@ public class TEditorWidget extends TWidget implements EditMenuUser {
 
         if (mouse.isMouse1()) {
             // Selection.
+            int newLine = topLine + mouse.getY();
+            int newX = leftColumn + mouse.getX();
+
             inSelection = true;
-            selectionLine0 = topLine + mouse.getY();
+            if (newLine > document.getLineCount() - 1) {
+                selectionLine0 = document.getLineCount() - 1;
+            } else {
+                selectionLine0 = topLine + mouse.getY();
+            }
             selectionColumn0 = leftColumn + mouse.getX();
             selectionColumn0 = Math.max(0, Math.min(selectionColumn0,
                     document.getLine(selectionLine0).getDisplayLength() - 1));
@@ -173,8 +180,6 @@ public class TEditorWidget extends TWidget implements EditMenuUser {
             selectionLine1 = selectionLine0;
 
             // Set the row and column
-            int newLine = topLine + mouse.getY();
-            int newX = leftColumn + mouse.getX();
             if (newLine > document.getLineCount() - 1) {
                 // Go to the end
                 document.setLineNumber(document.getLineCount() - 1);
index 227aceb5764b92d26a0cac983030a0def359a402..f526a6470a2db15634fdeaeb1d09d22c8ca16589 100644 (file)
@@ -82,7 +82,7 @@ public class TExceptionDialog extends TWindow {
         final Throwable exception) {
 
         super(application, i18n.getString("windowTitle"),
-            1, 1, 70, 20, CENTERED | MODAL);
+            1, 1, 78, 22, CENTERED | MODAL);
 
         this.exception = exception;
 
@@ -100,14 +100,15 @@ public class TExceptionDialog extends TWindow {
             2, 6, "ttext", false);
 
         ArrayList<String> stackTraceStrings = new ArrayList<String>();
+        stackTraceStrings.add(exception.getMessage());
         StackTraceElement [] stack = exception.getStackTrace();
         for (int i = 0; i < stack.length; i++) {
             stackTraceStrings.add(stack[i].toString());
         }
-        stackTrace = addList(stackTraceStrings, 2, 7, getWidth() - 6, 8);
+        stackTrace = addList(stackTraceStrings, 2, 7, getWidth() - 6, 10);
 
         // Buttons
-        addButton(i18n.getString("saveButton"), 19, getHeight() - 4,
+        addButton(i18n.getString("saveButton"), 21, getHeight() - 4,
             new TAction() {
                 public void DO() {
                     saveToFile();
@@ -115,7 +116,7 @@ public class TExceptionDialog extends TWindow {
             });
 
         TButton closeButton = addButton(i18n.getString("closeButton"),
-            35, getHeight() - 4,
+            37, getHeight() - 4,
             new TAction() {
                 public void DO() {
                     // Don't do anything, just close the window.
index 38a994c8215bbba2a53e3c85d0b15bd46c099146..6b0a205bf422e2bd18cc186f226777d6c0c98084 100644 (file)
@@ -335,21 +335,28 @@ public class TList extends TScrollableWidget {
     @Override
     public void setWidth(final int width) {
         super.setWidth(width);
-        hScroller.setWidth(getWidth() - 1);
-        vScroller.setX(getWidth() - 1);
+        if (hScroller != null) {
+            hScroller.setWidth(getWidth() - 1);
+        }
+        if (vScroller != null) {
+            vScroller.setX(getWidth() - 1);
+        }
     }
 
     /**
      * Override TWidget's height: we need to set child widget heights.
-     * time.
      *
      * @param height new widget height
      */
     @Override
     public void setHeight(final int height) {
         super.setHeight(height);
-        hScroller.setY(getHeight() - 1);
-        vScroller.setHeight(getHeight() - 1);
+        if (hScroller != null) {
+            hScroller.setY(getHeight() - 1);
+        }
+        if (vScroller != null) {
+            vScroller.setHeight(getHeight() - 1);
+        }
     }
 
     /**
index 0d7d5bb8f99396be6a3c238d4175b10b5482440e..5c93712084a9b6f90bd9728ed17d368de82dfaa4 100644 (file)
@@ -1157,7 +1157,7 @@ public abstract class TWidget implements Comparable<TWidget> {
      * @return difference between this.tabOrder and that.tabOrder, or
      * difference between this.z and that.z, or String.compareTo(text)
      */
-    public final int compareTo(final TWidget that) {
+    public int compareTo(final TWidget that) {
         if ((this instanceof TWindow)
             && (that instanceof TWindow)
         ) {
@@ -1434,9 +1434,9 @@ public abstract class TWidget implements Comparable<TWidget> {
                 if (activeChild != null) {
                     activeChild.active = false;
                 }
-                child.active = true;
-                activeChild = child;
             }
+            child.active = true;
+            activeChild = child;
         }
     }
 
index 080a200497dfbe5389a8f62f3593688eb325fb72..13beac321bac9e46b0f81af48ac069efe3f5c890 100644 (file)
@@ -268,11 +268,55 @@ public class TTreeViewWidget extends TScrollableWidget {
     // TScrollableWidget ------------------------------------------------------
     // ------------------------------------------------------------------------
 
+    /**
+     * Override TWidget's width: we need to set child widget widths.
+     *
+     * @param width new widget width
+     */
+    @Override
+    public void setWidth(final int width) {
+        super.setWidth(width);
+        if (hScroller != null) {
+            hScroller.setWidth(getWidth() - 1);
+        }
+        if (vScroller != null) {
+            vScroller.setX(getWidth() - 1);
+        }
+        if (treeView != null) {
+            treeView.setWidth(getWidth() - 1);
+        }
+        reflowData();
+    }
+
+    /**
+     * Override TWidget's height: we need to set child widget heights.
+     *
+     * @param height new widget height
+     */
+    @Override
+    public void setHeight(final int height) {
+        super.setHeight(height);
+        if (hScroller != null) {
+            hScroller.setY(getHeight() - 1);
+        }
+        if (vScroller != null) {
+            vScroller.setHeight(getHeight() - 1);
+        }
+        if (treeView != null) {
+            treeView.setHeight(getHeight() - 1);
+        }
+        reflowData();
+    }
+
     /**
      * Resize text and scrollbars for a new width/height.
      */
     @Override
     public void reflowData() {
+        if (treeView == null) {
+            return;
+        }
+
         int selectedRow = 0;
         boolean foundSelectedRow = false;