public PrefsGUI() { final Settings settings = Main.getSettings(); settings.reloadSettings(); memoryBash.setText(String.valueOf(settings.getMemBash())); maxConsoleLines.setText(String.valueOf(settings.getMaxConsoleLines())); sshEnabled.setSelected(settings.getSSHEnabled()); sshUsername.setText(settings.getSSHUsername()); sshPassword.setText(settings.getSSHPassword()); sshHost.setText(settings.getSSHHost()); stickyScrollbar.setSelected(settings.getStickyScrollBar()); closeOnStop.setSelected(settings.getCloseWindowOnStop()); askToExport.setSelected(settings.getAskExportLog()); if (closeOnStop.isSelected()) { askToExport.setSelected(false); askToExport.setEnabled(false); } else { askToExport.setEnabled(true); } disableSSH(); sshEnabled.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { sshUsername.setEnabled(sshEnabled.isSelected()); sshHost.setEnabled(sshEnabled.isSelected()); sshPassword.setEnabled(sshEnabled.isSelected()); passwordLabel.setEnabled(sshEnabled.isSelected()); } }); closeOnStop.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (closeOnStop.isSelected()) { askToExport.setSelected(false); askToExport.setEnabled(false); } else { askToExport.setEnabled(true); } } }); applyButton.addActionListener( new ActionListener() { @SuppressWarnings("deprecation") @Override public void actionPerformed(ActionEvent e) { String errors = ""; try { settings.setMemBash(Integer.parseInt(memoryBash.getText())); } catch (NumberFormatException nfe) { String message = "[Lava Control] ERROR: Text in memory bash settings is invalid."; System.out.println(message); errors = errors + "\n" + message; } try { settings.setMaxConsoleLines(Integer.parseInt(maxConsoleLines.getText())); } catch (NumberFormatException nfe) { String message = "[Lava Control] ERROR: Text in max console lines settings is\ninvalid."; System.out.println(message); errors = errors + "\n" + message; } settings.setSSHEnabled(sshEnabled.isSelected()); settings.setSSHUsername(sshUsername.getText()); settings.setSSHPassword(sshPassword.getText()); settings.setSSHHost(sshHost.getText()); settings.setStickyScrollBar(stickyScrollbar.isSelected()); settings.setCloseWindowOnStop(closeOnStop.isSelected()); settings.setAskExportLog(askToExport.isSelected()); settings.saveSettings(); ImageIcon scaled = new ImageIcon( Main.getIcon().getImage().getScaledInstance(96, 96, Image.SCALE_SMOOTH)); if (!errors.equals("")) { JOptionPane.showMessageDialog( Main.prefsFrame, "<html><b>Error!</b> Couldn't save your settings:\n" + errors + "\n\nPlease fix these errors and then hit apply again\nto completely save all settings.", "", JOptionPane.ERROR_MESSAGE, scaled); } else { JOptionPane.showMessageDialog( Main.prefsFrame, "<html><b>Success!</b></html> Settings were successfully applied.", "", JOptionPane.INFORMATION_MESSAGE, scaled); } } }); restoreDefaultsButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Main.getSettings().deleteSettings(); memoryBash.setText(String.valueOf(settings.getMemBash())); maxConsoleLines.setText(String.valueOf(settings.getMaxConsoleLines())); sshEnabled.setSelected(settings.getSSHEnabled()); sshUsername.setText(settings.getSSHUsername()); sshPassword.setText(settings.getSSHPassword()); sshHost.setText(settings.getSSHHost()); stickyScrollbar.setSelected(settings.getStickyScrollBar()); closeOnStop.setSelected(settings.getCloseWindowOnStop()); askToExport.setSelected(settings.getAskExportLog()); } }); cancelButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Main.prefsFrame.setVisible(false); } }); memoryBash.setBorder(new RoundedCornerBorder(6)); sshUsername.setBorder(new RoundedCornerBorder(6)); sshHost.setBorder(new RoundedCornerBorder(6)); sshPassword.setBorder(new RoundedCornerBorder(6)); maxConsoleLines.setBorder(new RoundedCornerBorder(6)); }