X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTInputBox.java;h=813af8823db263e5274090796e02fbf61ec958a6;hb=a69ed767c9c07cf35cf1c5f7821fc009cfe79cd2;hp=070f27755fb879699efdf67c5785ce4848c2971c;hpb=051e29138b18fb4b731a72f8727475b10e4c74e4;p=nikiroo-utils.git diff --git a/src/jexer/TInputBox.java b/src/jexer/TInputBox.java index 070f277..813af88 100644 --- a/src/jexer/TInputBox.java +++ b/src/jexer/TInputBox.java @@ -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"), @@ -44,18 +44,31 @@ package jexer; */ 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); } /** @@ -65,11 +78,12 @@ public 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); } /** @@ -80,11 +94,12 @@ public 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) { @@ -95,9 +110,29 @@ public 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(); + } + }