2020-04-19 19:57:40 +02:00
package envoy.client.ui.settings ;
2020-04-18 12:03:32 +02:00
2020-09-08 20:41:01 +02:00
import javafx.scene.control.* ;
2020-04-18 16:04:47 +02:00
2020-04-18 21:37:44 +02:00
import envoy.client.data.SettingsItem ;
2020-09-23 17:03:32 +02:00
import envoy.client.event.* ;
2020-06-09 21:03:19 +02:00
import envoy.data.User.UserStatus ;
2020-09-08 20:41:01 +02:00
import dev.kske.eventbus.EventBus ;
2020-04-18 12:03:32 +02:00
/ * *
* Project : < strong > envoy - client < / strong > < br >
* File : < strong > GeneralSettingsPane . java < / strong > < br >
* Created : < strong > 18 . 04 . 2020 < / strong > < br >
2020-06-09 21:03:19 +02:00
*
2020-04-18 12:03:32 +02:00
* @author Kai S . K . Engelbart
* @since Envoy Client v0 . 1 - beta
* /
2020-08-22 13:37:07 +02:00
public final class GeneralSettingsPane extends SettingsPane {
2020-04-18 12:03:32 +02:00
/ * *
* @since Envoy Client v0 . 1 - beta
* /
2020-04-18 16:04:47 +02:00
public GeneralSettingsPane ( ) {
super ( " General " ) ;
2020-08-02 20:26:22 +02:00
setSpacing ( 10 ) ;
2020-04-18 21:37:44 +02:00
// TODO: Support other value types
2020-08-02 20:26:22 +02:00
final var settingsItems = settings . getItems ( ) ;
final var hideOnCloseCheckbox = new SettingsCheckbox ( ( SettingsItem < Boolean > ) settingsItems . get ( " hideOnClose " ) ) ;
2020-09-23 17:03:32 +02:00
final var hideOnCloseTooltip = new Tooltip ( " If selected, Envoy will still be present in the task bar when closed. " ) ;
hideOnCloseTooltip . setWrapText ( true ) ;
hideOnCloseCheckbox . setTooltip ( hideOnCloseTooltip ) ;
2020-08-02 20:26:22 +02:00
getChildren ( ) . add ( hideOnCloseCheckbox ) ;
final var enterToSendCheckbox = new SettingsCheckbox ( ( SettingsItem < Boolean > ) settingsItems . get ( " enterToSend " ) ) ;
final var enterToSendTooltip = new Tooltip (
2020-09-23 17:03:32 +02:00
" When selected, messages can be sent pressing \" Enter \" . A line break can be inserted by pressing \" Ctrl \" + \" Enter \" . Else it will be the other way around. " ) ;
2020-08-02 20:26:22 +02:00
enterToSendTooltip . setWrapText ( true ) ;
enterToSendCheckbox . setTooltip ( enterToSendTooltip ) ;
getChildren ( ) . add ( enterToSendCheckbox ) ;
2020-06-08 10:02:39 +02:00
2020-09-23 17:03:32 +02:00
final var askForConfirmationCheckbox = new SettingsCheckbox ( ( SettingsItem < Boolean > ) settingsItems . get ( " askForConfirmation " ) ) ;
final var askForConfirmationTooltip = new Tooltip ( " When selected, nothing will prompt a confirmation dialog " ) ;
askForConfirmationTooltip . setWrapText ( true ) ;
askForConfirmationCheckbox . setTooltip ( askForConfirmationTooltip ) ;
getChildren ( ) . add ( askForConfirmationCheckbox ) ;
2020-06-09 21:03:19 +02:00
final var combobox = new ComboBox < String > ( ) ;
2020-06-08 10:02:39 +02:00
combobox . getItems ( ) . add ( " dark " ) ;
combobox . getItems ( ) . add ( " light " ) ;
2020-08-02 20:26:22 +02:00
combobox . setTooltip ( new Tooltip ( " Determines the current theme Envoy will be displayed in. " ) ) ;
2020-06-08 10:02:39 +02:00
combobox . setValue ( settings . getCurrentTheme ( ) ) ;
2020-09-23 17:03:32 +02:00
combobox . setOnAction ( e - > { settings . setCurrentTheme ( combobox . getValue ( ) ) ; EventBus . getInstance ( ) . dispatch ( new ThemeChangeEvent ( ) ) ; } ) ;
2020-08-02 20:26:22 +02:00
getChildren ( ) . add ( combobox ) ;
2020-06-08 10:02:39 +02:00
2020-06-09 21:03:19 +02:00
final var statusComboBox = new ComboBox < UserStatus > ( ) ;
statusComboBox . getItems ( ) . setAll ( UserStatus . values ( ) ) ;
statusComboBox . setValue ( UserStatus . ONLINE ) ;
2020-08-02 20:26:22 +02:00
statusComboBox . setTooltip ( new Tooltip ( " Change your current status " ) ) ;
2020-06-09 21:03:19 +02:00
// TODO add action when value is changed
statusComboBox . setOnAction ( e - > { } ) ;
2020-08-02 20:26:22 +02:00
getChildren ( ) . add ( statusComboBox ) ;
2020-04-18 16:04:47 +02:00
}
2020-04-18 12:03:32 +02:00
}