package org.peerbox.presenter.settings; import java.io.IOException; import java.net.URL; import java.util.ResourceBundle; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.CheckBox; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import org.peerbox.app.config.AppConfig; import org.peerbox.app.config.UserConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.Inject; public class Account implements Initializable { private static final Logger logger = LoggerFactory.getLogger(Account.class); private AppConfig appConfig; private UserConfig userConfig; @FXML private TextField txtUsername; @FXML private PasswordField txtPassword; @FXML private PasswordField txtPin; @FXML private TextField txtRootPath; @FXML private CheckBox chbTrayNotification; @Inject public Account(AppConfig appConfig, UserConfig userConfig) { this.appConfig = appConfig; this.userConfig = userConfig; } @Override public void initialize(URL location, ResourceBundle resources) { reset(); } private void reset() { if(userConfig.hasUsername()) { txtUsername.setText(userConfig.getUsername()); } if(userConfig.hasPassword()) { txtPassword.setText(userConfig.getPassword()); } if(userConfig.hasPin()) { txtPin.setText(userConfig.getPin()); } if(userConfig.hasRootPath()) { txtRootPath.setText(userConfig.getRootPath().toString()); } chbTrayNotification.setSelected(appConfig.isTrayNotificationEnabled()); } @FXML public void trayNotificationAction(ActionEvent event) { boolean enabled = chbTrayNotification.isSelected(); try { appConfig.setTrayNotification(enabled); } catch (IOException e) { logger.warn("Was not possible to change Tray Notification status.", e); } } }