Package net.sourceforge.fullsync.ui

Source Code of net.sourceforge.fullsync.ui.UserPasswordSpecificComposite

/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*
* For information about the authors of this project Have a look
* at the AUTHORS file in the root of this project.
*/
package net.sourceforge.fullsync.ui;

import java.net.URI;
import java.net.URISyntaxException;

import net.sourceforge.fullsync.ConnectionDescription;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Spinner;
import org.eclipse.swt.widgets.Text;

abstract class UserPasswordSpecificComposite extends ProtocolSpecificComposite {
  private Label labelHost = null;
  private Text textHost = null;
  private Label labelPort = null;
  private Spinner spinnerPort = null;
  private Label labelUsername = null;
  private Text textUsername = null;
  private Label labelPassword = null;
  private Text textPassword = null;

  @Override
  public void createGUI(final Composite parent) {
    labelHost = new Label(parent, SWT.NONE);
    labelHost.setText("Host:");
    GridData gridData = getGridData();
    gridData.grabExcessHorizontalSpace = true;
    textHost = new Text(parent, SWT.BORDER);
    textHost.setLayoutData(getGridData());

    int port = getDefaultPort();
    if (-1 != port) {
      labelPort = new Label(parent, SWT.NONE);
      labelPort.setText("Port:");
      spinnerPort = new Spinner(parent, SWT.BORDER);
      spinnerPort.setMinimum(1);
      spinnerPort.setMaximum(0xFFFF);
      spinnerPort.setSelection(port);
      spinnerPort.setLayoutData(getGridData());
    }

    onBeforePasswordHook(parent);
    labelUsername = new Label(parent, SWT.NONE);
    labelUsername.setText("Username:");
    textUsername = new Text(parent, SWT.BORDER);
    textUsername.setLayoutData(getGridData());
    labelPassword = new Label(parent, SWT.NONE);
    labelPassword.setText("Password:");
    textPassword = new Text(parent, SWT.BORDER);
    textPassword.setLayoutData(getGridData());
    textPassword.setEchoChar('*');
    super.createGUI(parent);
  }

  protected void onBeforePasswordHook(final Composite parent) {
  }

  protected void setUserPasswordEnabled(boolean enabled) {
    labelUsername.setEnabled(enabled);
    textUsername.setEnabled(enabled);
    labelPassword.setEnabled(enabled);
    textPassword.setEnabled(enabled);
  }

  private GridData getGridData() {
    GridData gridData1 = new GridData();
    gridData1.horizontalAlignment = SWT.FILL;
    gridData1.horizontalSpan = 2;
    gridData1.verticalAlignment = SWT.CENTER;
    return gridData1;
  }

  @Override
  public ConnectionDescription getConnectionDescription() throws URISyntaxException {
    ConnectionDescription desc = super.getConnectionDescription();
    if (null != spinnerPort) {
      desc.setUri(new URI(m_scheme, null, textHost.getText(), spinnerPort.getSelection(), desc.getUri().getPath(), null, null));
    }
    else {
      desc.setUri(new URI(m_scheme, textHost.getText(), desc.getUri().getPath(), null));
    }
    desc.setParameter(ConnectionDescription.PARAMETER_USERNAME, textUsername.getText());
    desc.setSecretParameter(ConnectionDescription.PARAMETER_PASSWORD, textPassword.getText());
    return desc;
  }

  @Override
  public void setConnectionDescription(final ConnectionDescription connection) {
    super.setConnectionDescription(connection);
    URI uri = connection.getUri();
    textHost.setText(uri.getHost());
    int port = uri.getPort();
    if (-1 == port) {
      port = getDefaultPort();
    }
    if (null != spinnerPort) {
      spinnerPort.setSelection(port);
    }
    textUsername.setText(connection.getParameter(ConnectionDescription.PARAMETER_USERNAME));
    textPassword.setText(connection.getSecretParameter(ConnectionDescription.PARAMETER_PASSWORD));
  }

  @Override
  public void reset(final String scheme) {
    super.reset(scheme);
    textHost.setText("");
    if (null != spinnerPort) {
      spinnerPort.setSelection(getDefaultPort());
    }
    textUsername.setText("");
    textPassword.setText("");
  }

  abstract public int getDefaultPort();
}
TOP

Related Classes of net.sourceforge.fullsync.ui.UserPasswordSpecificComposite

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.