Package org.dru.clay.respository.transport.ssh

Source Code of org.dru.clay.respository.transport.ssh.SwingUserInfo

package org.dru.clay.respository.transport.ssh;

import java.io.File;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class SwingUserInfo implements SshUserInfo {
  private static final String TITLE = "JsClay SSH Transport";

  private final ImageIcon clayIcon;
  private String password;
  private String passphrase;
  private String username;
  private String identity;

  public SwingUserInfo() {
    final URL url = getClass().getClassLoader().getResource("clay-icon-32.png");
    clayIcon = new ImageIcon(url);
  }

  @Override
  public String getPassphrase() {
    return passphrase;
  }

  @Override
  public String getPassword() {
    return password;
  }
 
  @Override
  public String getUsername() {
    return username;
  }
 
  @Override
  public void setUsername(String username) {
    this.username = username;
  }

  @Override
  public boolean promptPassphrase(String message) {
    final JPasswordField field = new JPasswordField(20);
    final int result = JOptionPane.showConfirmDialog(null, new Object[] { new JLabel(message), field }, TITLE, JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, clayIcon);
    if (result == JOptionPane.OK_OPTION) {
      passphrase = new String(field.getPassword());
      return true;
    }
    return false;
  }

  @Override
  public boolean promptPassword(String message) {
    final JPasswordField field = new JPasswordField(20);
    final int result = JOptionPane.showConfirmDialog(null, new Object[] { new JLabel(message), field }, TITLE, JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, clayIcon);
    if (result == JOptionPane.OK_OPTION) {
      password = new String(field.getPassword());
      return true;
    }
    return false;   
  }
 
  @Override
  public boolean promptUsername(String message) {
    final JTextField field = new JTextField(20);
    final int result = JOptionPane.showConfirmDialog(null, new Object[] { new JLabel(message), field }, TITLE, JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, clayIcon);
    if (result == JOptionPane.OK_OPTION) {
      username = field.getText();
      return true;
    }
    return false;   
  }

  @Override
  public boolean promptYesNo(String message) {
    final int n = JOptionPane
        .showConfirmDialog(null, message, TITLE, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, clayIcon);
    return n == 0;
  }

  @Override
  public void showMessage(String message) {
    JOptionPane.showMessageDialog(null, message, TITLE, JOptionPane.INFORMATION_MESSAGE, clayIcon);
  }

  @Override
  public String getIdentity() {
    return identity;
  }

  @Override
  public boolean promptForIdentity(String message) {   
    final JFileChooser fc = new JFileChooser();
    fc.setCurrentDirectory(new File("."));
    fc.setDialogTitle(message);
    fc.setFileHidingEnabled(false);
    int response = fc.showDialog(null, "Select");
    if (response == JFileChooser.APPROVE_OPTION) {
      identity = fc.getSelectedFile().getAbsolutePath();
      return true;
    }
    return false;
  }
}
TOP

Related Classes of org.dru.clay.respository.transport.ssh.SwingUserInfo

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.