package envoy.client.ui.settings; import java.util.List; import javafx.scene.control.ComboBox; import javafx.scene.layout.VBox; import envoy.client.data.SettingsItem; import envoy.client.event.ThemeChangeEvent; import envoy.data.User.UserStatus; import envoy.event.EventBus; /** * Project: envoy-client
* File: GeneralSettingsPane.java
* Created: 18.04.2020
* * @author Kai S. K. Engelbart * @since Envoy Client v0.1-beta */ public class GeneralSettingsPane extends SettingsPane { /** * @since Envoy Client v0.1-beta */ public GeneralSettingsPane() { super("General"); final var vbox = new VBox(); // TODO: Support other value types List.of("hideOnClose", "enterToSend") .stream() .map(settings.getItems()::get) .map(i -> new SettingsCheckbox((SettingsItem) i)) .forEach(vbox.getChildren()::add); final var combobox = new ComboBox(); combobox.getItems().add("dark"); combobox.getItems().add("light"); combobox.setValue(settings.getCurrentTheme()); combobox.setOnAction( e -> { settings.setCurrentTheme(combobox.getValue()); EventBus.getInstance().dispatch(new ThemeChangeEvent(combobox.getValue())); }); vbox.getChildren().add(combobox); final var statusComboBox = new ComboBox(); statusComboBox.getItems().setAll(UserStatus.values()); statusComboBox.setValue(UserStatus.ONLINE); // TODO add action when value is changed statusComboBox.setOnAction(e -> {}); vbox.getChildren().add(statusComboBox); getChildren().add(vbox); } }