*
* 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"),
*/
package jexer.demos;
-import jexer.*;
+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.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.*;
*/
public class DemoTextFieldWindow extends TWindow {
+ /**
+ * Translated strings.
+ */
+ private static final ResourceBundle i18n = ResourceBundle.getBundle(DemoTextFieldWindow.class.getName());
+
+ // ------------------------------------------------------------------------
+ // Variables --------------------------------------------------------------
+ // ------------------------------------------------------------------------
+
+ /**
+ * Calendar. Has to be at class scope so that it can be accessed by the
+ * anonymous TAction class.
+ */
+ 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 -----------------------------------------------------------
+ // ------------------------------------------------------------------------
+
/**
* Constructor.
*
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, 10, 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(i18n.getString("textField5"), 1, row);
+ TField selected = addField(35, row++, 40, false,
+ i18n.getString("textField6"));
row += 1;
- addButton("&Close Window", (getWidth() - 14) / 2, getHeight() - 4,
+ calendar = addCalendar(1, row++,
+ new TAction() {
+ public void DO() {
+ getApplication().messageBox(i18n.getString("calendarTitle"),
+ MessageFormat.format(i18n.getString("calendarMessage"),
+ new Date(calendar.getValue().getTimeInMillis())),
+ TMessageBox.Type.OK);
+ }
+ }
+ );
+
+ 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);
}
);
- statusBar = newStatusBar("Text fields");
- statusBar.addShortcutKeypress(kbF1, cmHelp, "Help");
- statusBar.addShortcutKeypress(kbF2, cmShell, "Shell");
- statusBar.addShortcutKeypress(kbF3, cmOpen, "Open");
- statusBar.addShortcutKeypress(kbF10, cmExit, "Exit");
+ activate(selected);
+
+ 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"));
}
+
}