blob: 2521ef9e151334500655e9bd467a38f7fa5150e6 [file] [log] [blame]
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.motorola.studio.android.common.utilities.ui;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.PlatformUI;
import com.motorola.studio.android.common.utilities.i18n.UtilitiesNLS;
public class LoginPasswordDialogCreator
{
private LoginPasswordDialog dialog;
private final String url;
// dialog return values
public static final int OK = LoginPasswordDialog.OK;
public static final int CANCEL = LoginPasswordDialog.CANCEL;
public LoginPasswordDialogCreator(String url)
{
this.url = url;
}
public int openLoginPasswordDialog()
{
final Integer[] dialogReturnValue = new Integer[1];
PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable()
{
public void run()
{
dialog =
new LoginPasswordDialog(PlatformUI.getWorkbench().getDisplay()
.getActiveShell());
dialogReturnValue[0] = dialog.open();
}
});
return dialogReturnValue[0];
}
public String getTypedLogin()
{
String login = dialog != null ? dialog.getTypedLogin() : null;
return login;
}
public String getTypedPassword()
{
String password = dialog != null ? dialog.getTypedPassword() : null;
return password;
}
private class LoginPasswordDialog extends Dialog
{
private String login;
private String password;
/**
* @param parentShell
*/
protected LoginPasswordDialog(Shell parentShell)
{
super(parentShell);
setShellStyle(getShellStyle() | SWT.DIALOG_TRIM);
}
/* (non-Javadoc)
* @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
*/
@Override
protected Control createDialogArea(Composite parent)
{
parent.getShell().setText(UtilitiesNLS.LoginPasswordDialogCreator_DialogTItle0);
Composite topComposite = new Composite(parent, SWT.FILL);
GridLayout layout = new GridLayout(1, false);
GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
topComposite.setLayout(layout);
topComposite.setLayoutData(layoutData);
Label messageLabel = new Label(topComposite, SWT.NONE);
layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
messageLabel.setLayoutData(layoutData);
messageLabel
.setText(" \n" + UtilitiesNLS.SDKLoginPasswordDialog_LoginInformationMessage + " " + url.substring(0, url.lastIndexOf("/")) + " "); //$NON-NLS-1$ //$NON-NLS-3$ //$NON-NLS-4$
Composite mainComposite = new Composite(topComposite, SWT.FILL);
layout = new GridLayout(2, false);
mainComposite.setLayout(layout);
mainComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
Label loginLabel = new Label(mainComposite, SWT.NONE);
layoutData = new GridData(SWT.LEFT, SWT.CENTER, false, false);
loginLabel.setLayoutData(layoutData);
loginLabel.setText(UtilitiesNLS.SDKLoginPasswordDialog_UsernameLabel);
final Text loginText = new Text(mainComposite, SWT.SINGLE | SWT.BORDER);
layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
loginText.setLayoutData(layoutData);
loginText.addModifyListener(new ModifyListener()
{
public void modifyText(ModifyEvent e)
{
login = loginText.getText();
}
});
Label passwordLabel = new Label(mainComposite, SWT.NONE);
layoutData = new GridData(SWT.LEFT, SWT.CENTER, false, false);
passwordLabel.setLayoutData(layoutData);
passwordLabel.setText(UtilitiesNLS.SDKLoginPasswordDialog_PasswordLabel);
final Text passwordText =
new Text(mainComposite, SWT.SINGLE | SWT.BORDER | SWT.PASSWORD);
layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
passwordText.setLayoutData(layoutData);
passwordText.addModifyListener(new ModifyListener()
{
public void modifyText(ModifyEvent e)
{
password = passwordText.getText();
}
});
return topComposite;
}
public String getTypedLogin()
{
return login;
}
public String getTypedPassword()
{
return password;
}
}
}