+public class DemoApplication extends TApplication {
+
+ /**
+ * Translated strings.
+ */
+ private static final ResourceBundle i18n = ResourceBundle.getBundle(DemoApplication.class.getName());
+
+ // ------------------------------------------------------------------------
+ // Constructors -----------------------------------------------------------
+ // ------------------------------------------------------------------------
+
+ /**
+ * Public constructor.
+ *
+ * @param input an InputStream connected to the remote user, or null for
+ * System.in. If System.in is used, then on non-Windows systems it will
+ * be put in raw mode; shutdown() will (blindly!) put System.in in cooked
+ * mode. input is always converted to a Reader with UTF-8 encoding.
+ * @param output an OutputStream connected to the remote user, or null
+ * for System.out. output is always converted to a Writer with UTF-8
+ * encoding.
+ * @throws UnsupportedEncodingException if an exception is thrown when
+ * creating the InputStreamReader
+ */
+ public DemoApplication(final InputStream input,
+ final OutputStream output) throws UnsupportedEncodingException {
+ super(input, output);
+ addAllWidgets();
+
+ getBackend().setTitle(i18n.getString("applicationTitle"));
+ }
+
+ /**
+ * Public constructor.
+ *
+ * @param input the InputStream underlying 'reader'. Its available()
+ * method is used to determine if reader.read() will block or not.
+ * @param reader a Reader connected to the remote user.
+ * @param writer a PrintWriter connected to the remote user.
+ * @param setRawMode if true, set System.in into raw mode with stty.
+ * This should in general not be used. It is here solely for Demo3,
+ * which uses System.in.
+ * @throws IllegalArgumentException if input, reader, or writer are null.
+ */
+ public DemoApplication(final InputStream input, final Reader reader,
+ final PrintWriter writer, final boolean setRawMode) {
+ super(input, reader, writer, setRawMode);
+ addAllWidgets();
+
+ getBackend().setTitle(i18n.getString("applicationTitle"));
+ }
+
+ /**
+ * Public constructor.
+ *
+ * @param input the InputStream underlying 'reader'. Its available()
+ * method is used to determine if reader.read() will block or not.
+ * @param reader a Reader connected to the remote user.
+ * @param writer a PrintWriter connected to the remote user.
+ * @throws IllegalArgumentException if input, reader, or writer are null.
+ */
+ public DemoApplication(final InputStream input, final Reader reader,
+ final PrintWriter writer) {
+
+ this(input, reader, writer, false);
+ }
+
+ /**
+ * Public constructor.
+ *
+ * @param backend a Backend that is already ready to go.
+ */
+ public DemoApplication(final Backend backend) {
+ super(backend);
+
+ addAllWidgets();
+ }