package envoy.client.ui.settings; import javafx.scene.control.*; import envoy.client.data.SettingsItem; import envoy.client.event.ThemeChangeEvent; import envoy.data.User.UserStatus; import dev.kske.eventbus.EventBus; /** * @author Kai S. K. Engelbart * @since Envoy Client v0.1-beta */ public final class GeneralSettingsPane extends SettingsPane { /** * @since Envoy Client v0.1-beta */ public GeneralSettingsPane() { super("General"); setSpacing(10); // TODO: Support other value types final var settingsItems = settings.getItems(); final var hideOnCloseCheckbox = new SettingsCheckbox((SettingsItem) settingsItems.get("hideOnClose")); hideOnCloseCheckbox.setTooltip(new Tooltip("If selected, Envoy will still be present in the task bar when closed.")); getChildren().add(hideOnCloseCheckbox); final var enterToSendCheckbox = new SettingsCheckbox((SettingsItem) settingsItems.get("enterToSend")); final var enterToSendTooltip = new Tooltip( "If selected, messages can be sent pressing \"Enter\". They can always be sent by pressing \"Ctrl\" + \"Enter\""); enterToSendTooltip.setWrapText(true); enterToSendCheckbox.setTooltip(enterToSendTooltip); getChildren().add(enterToSendCheckbox); final var combobox = new ComboBox(); combobox.getItems().add("dark"); combobox.getItems().add("light"); combobox.setTooltip(new Tooltip("Determines the current theme Envoy will be displayed in.")); combobox.setValue(settings.getCurrentTheme()); combobox.setOnAction( e -> { settings.setCurrentTheme(combobox.getValue()); EventBus.getInstance().dispatch(new ThemeChangeEvent()); }); getChildren().add(combobox); final var statusComboBox = new ComboBox(); statusComboBox.getItems().setAll(UserStatus.values()); statusComboBox.setValue(UserStatus.ONLINE); statusComboBox.setTooltip(new Tooltip("Change your current status")); // TODO add action when value is changed statusComboBox.setOnAction(e -> {}); getChildren().add(statusComboBox); } }