X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTEditColorThemeWindow.java;h=bc3712b7890b3d8d46be563b01d4cfb8bd172fa8;hb=d625990deaa2c24624adc9fbd3fcab58891f5aef;hp=47197d4216f82fd81a5b4801c3645bb42f72ef14;hpb=2ce6dab2bbd951e6d0f09f94759efda5ee4b65ac;p=nikiroo-utils.git diff --git a/src/jexer/TEditColorThemeWindow.java b/src/jexer/TEditColorThemeWindow.java index 47197d4..bc3712b 100644 --- a/src/jexer/TEditColorThemeWindow.java +++ b/src/jexer/TEditColorThemeWindow.java @@ -3,7 +3,7 @@ * * The MIT License (MIT) * - * Copyright (C) 2016 Kevin Lamonte + * Copyright (C) 2017 Kevin Lamonte * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,6 +29,7 @@ package jexer; import java.util.List; +import java.util.ResourceBundle; import jexer.bits.Color; import jexer.bits.ColorTheme; @@ -43,7 +44,36 @@ import static jexer.TKeypress.*; * color theme. * */ -public final class TEditColorThemeWindow extends TWindow { +public class TEditColorThemeWindow extends TWindow { + + /** + * Translated strings. + */ + private static final ResourceBundle i18n = ResourceBundle.getBundle(TEditColorThemeWindow.class.getName()); + + // ------------------------------------------------------------------------ + // Variables -------------------------------------------------------------- + // ------------------------------------------------------------------------ + + /** + * The current editing theme. + */ + private ColorTheme editTheme; + + /** + * The left-side list of colors pane. + */ + private TList colorNames; + + /** + * The foreground color. + */ + private ForegroundPicker foreground; + + /** + * The background color. + */ + private BackgroundPicker background; /** * The foreground color picker. @@ -197,7 +227,8 @@ public final class TEditColorThemeWindow extends TWindow { attr.setForeColor(getTheme().getColor("tlabel").getForeColor()); attr.setBold(getTheme().getColor("tlabel").isBold()); } - getScreen().putStringXY(1, 0, " Foreground ", attr); + getScreen().putStringXY(1, 0, i18n.getString("foregroundLabel"), + attr); // Have to draw the colors manually because the int value matches // SGR, not CGA. @@ -470,7 +501,8 @@ public final class TEditColorThemeWindow extends TWindow { attr.setForeColor(getTheme().getColor("tlabel").getForeColor()); attr.setBold(getTheme().getColor("tlabel").isBold()); } - getScreen().putStringXY(1, 0, " Background ", attr); + getScreen().putStringXY(1, 0, i18n.getString("backgroundLabel"), + attr); // Have to draw the colors manually because the int value matches // SGR, not CGA. @@ -594,53 +626,9 @@ public final class TEditColorThemeWindow extends TWindow { } - /** - * The current editing theme. - */ - private ColorTheme editTheme; - - /** - * The left-side list of colors pane. - */ - private TList colorNames; - - /** - * The foreground color. - */ - private ForegroundPicker foreground; - - /** - * The background color. - */ - private BackgroundPicker background; - - /** - * Set various widgets/values to the editing theme color. - * - * @param colorName name of color from theme - */ - private void refreshFromTheme(final String colorName) { - CellAttributes attr = editTheme.getColor(colorName); - foreground.color = attr.getForeColor(); - foreground.bold = attr.isBold(); - background.color = attr.getBackColor(); - } - - /** - * Examines foreground, background, and colorNames and sets the color in - * editTheme. - */ - private void saveToEditTheme() { - String colorName = colorNames.getSelected(); - if (colorName == null) { - return; - } - CellAttributes attr = editTheme.getColor(colorName); - attr.setForeColor(foreground.color); - attr.setBold(foreground.bold); - attr.setBackColor(background.color); - editTheme.setColor(colorName, attr); - } + // ------------------------------------------------------------------------ + // Constructors ----------------------------------------------------------- + // ------------------------------------------------------------------------ /** * Public constructor. The file open box will be centered on screen. @@ -650,7 +638,7 @@ public final class TEditColorThemeWindow extends TWindow { public TEditColorThemeWindow(final TApplication application) { // Register with the TApplication - super(application, "Colors", 0, 0, 60, 18, MODAL); + super(application, i18n.getString("windowTitle"), 0, 0, 60, 18, MODAL); // Initialize with the first color List colors = getTheme().getColorNames(); @@ -681,7 +669,7 @@ public final class TEditColorThemeWindow extends TWindow { refreshFromTheme(colors.get(0)); colorNames.setSelectedIndex(0); - addButton(" &OK ", getWidth() - 37, getHeight() - 4, + addButton(i18n.getString("okButton"), getWidth() - 37, getHeight() - 4, new TAction() { public void DO() { ColorTheme global = getTheme(); @@ -696,7 +684,8 @@ public final class TEditColorThemeWindow extends TWindow { } ); - addButton("&Cancel", getWidth() - 25, getHeight() - 4, + addButton(i18n.getString("cancelButton"), getWidth() - 25, + getHeight() - 4, new TAction() { public void DO() { getApplication().closeWindow(TEditColorThemeWindow.this); @@ -708,9 +697,34 @@ public final class TEditColorThemeWindow extends TWindow { activate(colorNames); // Add shortcut text - newStatusBar("Select Colors"); + newStatusBar(i18n.getString("statusBar")); } + // ------------------------------------------------------------------------ + // Event handlers --------------------------------------------------------- + // ------------------------------------------------------------------------ + + /** + * Handle keystrokes. + * + * @param keypress keystroke event + */ + @Override + public void onKeypress(final TKeypressEvent keypress) { + // Escape - behave like cancel + if (keypress.equals(kbEsc)) { + getApplication().closeWindow(this); + return; + } + + // Pass to my parent + super.onKeypress(keypress); + } + + // ------------------------------------------------------------------------ + // TWindow ---------------------------------------------------------------- + // ------------------------------------------------------------------------ + /** * Draw me on screen. */ @@ -725,7 +739,7 @@ public final class TEditColorThemeWindow extends TWindow { attr.setForeColor(getTheme().getColor("tlabel").getForeColor()); attr.setBold(getTheme().getColor("tlabel").isBold()); } - getScreen().putStringXY(3, 2, "Color Name", attr); + getScreen().putStringXY(3, 2, i18n.getString("colorName"), attr); // Draw the sample text box attr.reset(); @@ -733,26 +747,41 @@ public final class TEditColorThemeWindow extends TWindow { attr.setBold(foreground.bold); attr.setBackColor(background.color); getScreen().putStringXY(getWidth() - 17, getHeight() - 6, - "Text Text Text", attr); + i18n.getString("textTextText"), attr); getScreen().putStringXY(getWidth() - 17, getHeight() - 5, - "Text Text Text", attr); + i18n.getString("textTextText"), attr); } + // ------------------------------------------------------------------------ + // TEditColorThemeWindow -------------------------------------------------- + // ------------------------------------------------------------------------ + /** - * Handle keystrokes. + * Set various widgets/values to the editing theme color. * - * @param keypress keystroke event + * @param colorName name of color from theme */ - @Override - public void onKeypress(final TKeypressEvent keypress) { - // Escape - behave like cancel - if (keypress.equals(kbEsc)) { - getApplication().closeWindow(this); + private void refreshFromTheme(final String colorName) { + CellAttributes attr = editTheme.getColor(colorName); + foreground.color = attr.getForeColor(); + foreground.bold = attr.isBold(); + background.color = attr.getBackColor(); + } + + /** + * Examines foreground, background, and colorNames and sets the color in + * editTheme. + */ + private void saveToEditTheme() { + String colorName = colorNames.getSelected(); + if (colorName == null) { return; } - - // Pass to my parent - super.onKeypress(keypress); + CellAttributes attr = editTheme.getColor(colorName); + attr.setForeColor(foreground.color); + attr.setBold(foreground.bold); + attr.setBackColor(background.color); + editTheme.setColor(colorName, attr); } }