Prep for 2019 release
[fanfix.git] / src / jexer / TMessageBox.java
index 0e5cf7d4871fa5d78e7bb5ef340fc3405ecbd3cb..1eff8a7613ef120ef1b88428931d60fa18d7fc48 100644 (file)
@@ -3,7 +3,7 @@
  *
  * The MIT License (MIT)
  *
- * Copyright (C) 2017 Kevin Lamonte
+ * Copyright (C) 2019 Kevin Lamonte
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -58,6 +58,10 @@ public class TMessageBox extends TWindow {
      */
     private static final ResourceBundle i18n = ResourceBundle.getBundle(TMessageBox.class.getName());
 
+    // ------------------------------------------------------------------------
+    // Constants --------------------------------------------------------------
+    // ------------------------------------------------------------------------
+
     /**
      * Message boxes have these supported types.
      */
@@ -83,16 +87,6 @@ public class TMessageBox extends TWindow {
         YESNOCANCEL
     };
 
-    /**
-     * The type of this message box.
-     */
-    private Type type;
-
-    /**
-     * My buttons.
-     */
-    private List<TButton> buttons;
-
     /**
      * Message boxes have these possible results.
      */
@@ -118,19 +112,28 @@ public class TMessageBox extends TWindow {
         NO
     };
 
+    // ------------------------------------------------------------------------
+    // Variables --------------------------------------------------------------
+    // ------------------------------------------------------------------------
+
     /**
-     * Which button was clicked: OK, CANCEL, YES, or NO.
+     * The type of this message box.
      */
-    private Result result = Result.OK;
+    private Type type;
 
     /**
-     * Get the result.
-     *
-     * @return the result: OK, CANCEL, YES, or NO.
+     * My buttons.
      */
-    public final Result getResult() {
-        return result;
-    }
+    private List<TButton> buttons;
+
+    /**
+     * Which button was clicked: OK, CANCEL, YES, or NO.
+     */
+    private Result result = Result.OK;
+
+    // ------------------------------------------------------------------------
+    // Constructors -----------------------------------------------------------
+    // ------------------------------------------------------------------------
 
     /**
      * Public constructor.  The message box will be centered on screen.
@@ -175,7 +178,7 @@ public class TMessageBox extends TWindow {
     protected TMessageBox(final TApplication application, final String title,
         final String caption, final Type type, final boolean yield) {
 
-        // Start as 50x50 at (1, 1).  These will be changed later.
+        // Start as 100x100 at (1, 1).  These will be changed later.
         super(application, title, 1, 1, 100, 100, CENTERED | MODAL);
 
         // Hang onto type so that we can provide more convenience in
@@ -324,19 +327,24 @@ public class TMessageBox extends TWindow {
             break;
 
         default:
-            throw new IllegalArgumentException("Invalid message box type: " + type);
+            throw new IllegalArgumentException("Invalid message box type: " +
+                type);
         }
 
-        // Set the secondaryThread to run me
-        getApplication().enableSecondaryEventReceiver(this);
-
         if (yield) {
+            // Set the secondaryThread to run me
+            getApplication().enableSecondaryEventReceiver(this);
+
             // Yield to the secondary thread.  When I come back from the
             // constructor response will already be set.
             getApplication().yield();
         }
     }
 
+    // ------------------------------------------------------------------------
+    // TWindow ----------------------------------------------------------------
+    // ------------------------------------------------------------------------
+
     /**
      * Handle keystrokes.
      *
@@ -395,10 +403,60 @@ public class TMessageBox extends TWindow {
             break;
 
         default:
-            throw new IllegalArgumentException("Invalid message box type: " + type);
+            throw new IllegalArgumentException("Invalid message box type: " +
+                type);
         }
 
         super.onKeypress(keypress);
     }
 
+    // ------------------------------------------------------------------------
+    // TMessageBox ------------------------------------------------------------
+    // ------------------------------------------------------------------------
+
+    /**
+     * Get the result.
+     *
+     * @return the result: OK, CANCEL, YES, or NO.
+     */
+    public final Result getResult() {
+        return result;
+    }
+
+    /**
+     * See if the user clicked YES.
+     *
+     * @return true if the user clicked YES
+     */
+    public final boolean isYes() {
+        return (result == Result.YES);
+    }
+
+    /**
+     * See if the user clicked NO.
+     *
+     * @return true if the user clicked NO
+     */
+    public final boolean isNo() {
+        return (result == Result.NO);
+    }
+
+    /**
+     * See if the user clicked OK.
+     *
+     * @return true if the user clicked OK
+     */
+    public final boolean isOk() {
+        return (result == Result.OK);
+    }
+
+    /**
+     * See if the user clicked CANCEL.
+     *
+     * @return true if the user clicked CANCEL
+     */
+    public final boolean isCancel() {
+        return (result == Result.CANCEL);
+    }
+
 }