X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTInputBox.java;h=d60d0b53f5d8b7e8bc8cadb9a41cfceebc7f2873;hb=12b90437b5f22c2ae6e9b9b14c3b62b60f6143e5;hp=7a1e92d6f169c487fd2ddd2496ebc839db485beb;hpb=e16dda65585466c8987bd1efd718431450a96605;p=fanfix.git diff --git a/src/jexer/TInputBox.java b/src/jexer/TInputBox.java index 7a1e92d..d60d0b5 100644 --- a/src/jexer/TInputBox.java +++ b/src/jexer/TInputBox.java @@ -3,7 +3,7 @@ * * The MIT License (MIT) * - * Copyright (C) 2016 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"), @@ -32,10 +32,9 @@ package jexer; * TInputBox is a system-modal dialog with an OK button and a text input * field. Call it like: * - *

*

  * {@code
- *     box = application.inputBox(title, caption);
+ *     box = inputBox(title, caption);
  *     if (box.getText().equals("yes")) {
  *         ... the user entered "yes", do stuff ...
  *     }
@@ -43,20 +42,33 @@ package jexer;
  * 
* */ -public final class TInputBox extends TMessageBox { +public class TInputBox extends TMessageBox { + + // ------------------------------------------------------------------------ + // Variables -------------------------------------------------------------- + // ------------------------------------------------------------------------ /** * The input field. */ private TField field; + // ------------------------------------------------------------------------ + // Constructors ----------------------------------------------------------- + // ------------------------------------------------------------------------ + /** - * Retrieve the answer text. + * Public constructor. The input box will be centered on screen. * - * @return the answer text + * @param application TApplication that manages this window + * @param title window title, will be centered along the top border + * @param caption message to display. Use embedded newlines to get a + * multi-line box. */ - public String getText() { - return field.getText(); + public TInputBox(final TApplication application, final String title, + final String caption) { + + this(application, title, caption, "", Type.OK); } /** @@ -66,11 +78,12 @@ public final class TInputBox extends TMessageBox { * @param title window title, will be centered along the top border * @param caption message to display. Use embedded newlines to get a * multi-line box. + * @param text initial text to seed the field with */ public TInputBox(final TApplication application, final String title, - final String caption) { + final String caption, final String text) { - this(application, title, caption, ""); + this(application, title, caption, text, Type.OK); } /** @@ -81,11 +94,12 @@ public final class TInputBox extends TMessageBox { * @param caption message to display. Use embedded newlines to get a * multi-line box. * @param text initial text to seed the field with + * @param type one of the Type constants. Default is Type.OK. */ public TInputBox(final TApplication application, final String title, - final String caption, final String text) { + final String caption, final String text, final Type type) { - super(application, title, caption, Type.OK, false); + super(application, title, caption, type, false); for (TWidget widget: getChildren()) { if (widget instanceof TButton) { @@ -96,9 +110,29 @@ public final class TInputBox extends TMessageBox { setHeight(getHeight() + 2); field = addField(1, getHeight() - 6, getWidth() - 4, false, text); + // 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(); } + // ------------------------------------------------------------------------ + // TMessageBox ------------------------------------------------------------ + // ------------------------------------------------------------------------ + + // ------------------------------------------------------------------------ + // TInputBox -------------------------------------------------------------- + // ------------------------------------------------------------------------ + + /** + * Retrieve the answer text. + * + * @return the answer text + */ + public String getText() { + return field.getText(); + } + }