X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fdemos%2FDemoTextFieldWindow.java;h=2c6116a980a4c0c243599c82a99fc0abee09f4a1;hb=12b90437b5f22c2ae6e9b9b14c3b62b60f6143e5;hp=59dee8234ccfb90d0552484ab21f5e243135a244;hpb=051e29138b18fb4b731a72f8727475b10e4c74e4;p=nikiroo-utils.git diff --git a/src/jexer/demos/DemoTextFieldWindow.java b/src/jexer/demos/DemoTextFieldWindow.java index 59dee82..2c6116a 100644 --- a/src/jexer/demos/DemoTextFieldWindow.java +++ b/src/jexer/demos/DemoTextFieldWindow.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"), @@ -28,9 +28,21 @@ */ package jexer.demos; -import java.util.*; +import java.text.MessageFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.Locale; +import java.util.ResourceBundle; -import jexer.*; +import jexer.TAction; +import jexer.TApplication; +import jexer.TCalendar; +import jexer.TField; +import jexer.TLabel; +import jexer.TMessageBox; +import jexer.TWindow; +import jexer.layout.StretchLayoutManager; import static jexer.TCommand.*; import static jexer.TKeypress.*; @@ -39,6 +51,11 @@ import static jexer.TKeypress.*; */ public class DemoTextFieldWindow extends TWindow { + /** + * Translated strings. + */ + private static final ResourceBundle i18n = ResourceBundle.getBundle(DemoTextFieldWindow.class.getName()); + // ------------------------------------------------------------------------ // Variables -------------------------------------------------------------- // ------------------------------------------------------------------------ @@ -49,6 +66,17 @@ public class DemoTextFieldWindow extends TWindow { */ TCalendar calendar = null; + /** + * Day of week label is updated with TSpinner clicks. + */ + TLabel dayOfWeekLabel; + + /** + * Day of week to demonstrate TSpinner. Has to be at class scope so that + * it can be accessed by the anonymous TAction class. + */ + GregorianCalendar dayOfWeekCalendar = new GregorianCalendar(); + // ------------------------------------------------------------------------ // Constructors ----------------------------------------------------------- // ------------------------------------------------------------------------ @@ -71,37 +99,66 @@ public class DemoTextFieldWindow extends TWindow { DemoTextFieldWindow(final TApplication parent, final int flags) { // Construct a demo window. X and Y don't matter because it // will be centered on screen. - super(parent, "Text Fields", 0, 0, 60, 20, flags); + super(parent, i18n.getString("windowTitle"), 0, 0, 60, 20, flags); + + setLayoutManager(new StretchLayoutManager(getWidth() - 2, + getHeight() - 2)); int row = 1; - addLabel("Variable-width text field:", 1, row); + addLabel(i18n.getString("textField1"), 1, row); addField(35, row++, 15, false, "Field text"); - addLabel("Fixed-width text field:", 1, row); + addLabel(i18n.getString("textField2"), 1, row); addField(35, row++, 15, true); - addLabel("Variable-width password:", 1, row); + addLabel(i18n.getString("textField3"), 1, row); addPasswordField(35, row++, 15, false); - addLabel("Fixed-width password:", 1, row); + addLabel(i18n.getString("textField4"), 1, row); addPasswordField(35, row++, 15, true, "hunter2"); - addLabel("Very long text field:", 1, row); + addLabel(i18n.getString("textField5"), 1, row); TField selected = addField(35, row++, 40, false, - "Very very long field text that should be outside the window"); + i18n.getString("textField6")); row += 1; calendar = addCalendar(1, row++, new TAction() { public void DO() { - getApplication().messageBox("Calendar", - "You selected the following date:\n" + - "\n" + - new Date(calendar.getValue().getTimeInMillis()) + - "\n", + getApplication().messageBox(i18n.getString("calendarTitle"), + MessageFormat.format(i18n.getString("calendarMessage"), + new Date(calendar.getValue().getTimeInMillis())), TMessageBox.Type.OK); } } ); - addButton("&Close Window", (getWidth() - 14) / 2, getHeight() - 4, + dayOfWeekLabel = addLabel("Wednesday-", 35, row - 1, "tmenu", false); + dayOfWeekLabel.setLabel(String.format("%-10s", + dayOfWeekCalendar.getDisplayName(Calendar.DAY_OF_WEEK, + Calendar.LONG, Locale.getDefault()))); + + addSpinner(35 + dayOfWeekLabel.getWidth(), row - 1, + new TAction() { + public void DO() { + dayOfWeekCalendar.add(Calendar.DAY_OF_WEEK, 1); + dayOfWeekLabel.setLabel(String.format("%-10s", + dayOfWeekCalendar.getDisplayName( + Calendar.DAY_OF_WEEK, Calendar.LONG, + Locale.getDefault()))); + } + }, + new TAction() { + public void DO() { + dayOfWeekCalendar.add(Calendar.DAY_OF_WEEK, -1); + dayOfWeekLabel.setLabel(String.format("%-10s", + dayOfWeekCalendar.getDisplayName( + Calendar.DAY_OF_WEEK, Calendar.LONG, + Locale.getDefault()))); + } + } + ); + + + addButton(i18n.getString("closeWindow"), + (getWidth() - 14) / 2, getHeight() - 4, new TAction() { public void DO() { getApplication().closeWindow(DemoTextFieldWindow.this); @@ -111,11 +168,15 @@ public class DemoTextFieldWindow extends TWindow { activate(selected); - statusBar = newStatusBar("Text fields"); - statusBar.addShortcutKeypress(kbF1, cmHelp, "Help"); - statusBar.addShortcutKeypress(kbF2, cmShell, "Shell"); - statusBar.addShortcutKeypress(kbF3, cmOpen, "Open"); - statusBar.addShortcutKeypress(kbF10, cmExit, "Exit"); + statusBar = newStatusBar(i18n.getString("statusBar")); + statusBar.addShortcutKeypress(kbF1, cmHelp, + i18n.getString("statusBarHelp")); + statusBar.addShortcutKeypress(kbF2, cmShell, + i18n.getString("statusBarShell")); + statusBar.addShortcutKeypress(kbF3, cmOpen, + i18n.getString("statusBarOpen")); + statusBar.addShortcutKeypress(kbF10, cmExit, + i18n.getString("statusBarExit")); } }