示例#1
0
  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));
  }