package rmblworx.tools.timey.gui; import java.awt.SystemTray; import java.util.Arrays; import java.util.Locale; import java.util.ResourceBundle; import javafx.application.Platform; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.fxml.FXML; import javafx.scene.control.CheckBox; import javafx.scene.control.ComboBox; import javafx.scene.control.Label; import javafx.util.StringConverter; import rmblworx.tools.timey.gui.config.Config; import rmblworx.tools.timey.gui.config.ConfigManager; /* * Copyright 2014-2015 Christian Raue * MIT License http://opensource.org/licenses/mit-license.php */ /** * Controller für die Optionen-GUI. * @author Christian Raue {@literal <christian.raue@gmail.com>} */ public class OptionsController extends Controller { @FXML private ResourceBundle resources; @FXML private CheckBox minimizeToTrayCheckbox; @FXML private ComboBox<Locale> languageChoice; @FXML private Label appVersionLabel; @FXML private void initialize() { if (!SystemTray.isSupported()) { minimizeToTrayCheckbox.setDisable(true); minimizeToTrayCheckbox.setSelected(false); } else { minimizeToTrayCheckbox.setSelected(ConfigManager.getCurrentConfig().isMinimizeToTray()); } languageChoice.setConverter(new StringConverter<Locale>() { public String toString(final Locale locale) { return locale.getDisplayName(); } public Locale fromString(final String string) { throw new UnsupportedOperationException(); } }); languageChoice.getItems().setAll(Arrays.asList(Config.AVAILABLE_LOCALES)); languageChoice.setValue(ConfigManager.getCurrentConfig().getLocale()); languageChoice.valueProperty().addListener(new ChangeListener<Locale>() { public void changed(final ObservableValue<? extends Locale> property, final Locale oldValue, final Locale newValue) { ConfigManager.getCurrentConfig().setLocale(newValue); final ResourceBundle i18nNewLocale = getGuiHelper().getResourceBundle(newValue); getGuiHelper().showDialogMessage(i18nNewLocale.getString("messageDialog.languageChoice.title"), i18nNewLocale.getString("messageDialog.languageChoice.text"), i18nNewLocale); } }); Platform.runLater(new Runnable() { public void run() { appVersionLabel.setText(getGuiHelper().getFacade().getVersion()); } }); } /** * Aktion bei Klick auf Tray-Checkbox. */ @FXML private void handleMinimizeToTrayCheckboxClick() { ConfigManager.getCurrentConfig().setMinimizeToTray(minimizeToTrayCheckbox.isSelected()); } }