| /******************************************************************************* |
| * Copyright (c) 2010 SAP AG. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Eduard Bartsch (SAP AG) - initial API and implementation |
| * Mathias Kinzler (SAP AG) - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.core.resources.semantic.examples.webdav; |
| |
| import org.apache.http.auth.Credentials; |
| import org.apache.http.auth.UsernamePasswordCredentials; |
| import org.eclipse.jface.dialogs.Dialog; |
| import org.eclipse.jface.layout.GridDataFactory; |
| import org.eclipse.osgi.util.NLS; |
| import org.eclipse.swt.SWT; |
| 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; |
| |
| public class UserCredentialsDialog extends Dialog { |
| protected Text usernameField; |
| protected Text passwordField; |
| |
| protected String host; |
| protected String message; |
| private Credentials credentials; |
| |
| public static org.apache.http.auth.Credentials askForCredentials(String host, String message) { |
| UserCredentialsDialog ui = new UserCredentialsDialog(null, host, message); |
| ui.open(); |
| |
| return ui.getCredentials(); |
| } |
| |
| private UserCredentialsDialog(Shell parentShell, String host, String message) { |
| super(parentShell); |
| this.host = host; |
| this.message = message; |
| this.setBlockOnOpen(true); |
| } |
| |
| @Override |
| protected void configureShell(Shell shell) { |
| super.configureShell(shell); |
| |
| shell.setText(Messages.UserCredentialsDialog_PasswordRequired_XGRP); |
| } |
| |
| /** |
| */ |
| @Override |
| protected Control createDialogArea(Composite parent) { |
| Composite main = new Composite(parent, SWT.NONE); |
| GridLayout layout = new GridLayout(); |
| layout.numColumns = 2; |
| main.setLayout(layout); |
| main.setLayoutData(new GridData(GridData.FILL_BOTH)); |
| |
| Label label = new Label(main, SWT.WRAP); |
| String text = NLS.bind(Messages.UserCredentialsDialog_ConnectTo_XFLD, host); |
| text += "\n\n" + message; //$NON-NLS-1$ |
| label.setText(text); |
| GridDataFactory.generate(label, 2, 1); |
| |
| Label userLabel = new Label(main, SWT.NONE); |
| userLabel.setText(Messages.UserCredentialsDialog_UserName_XFLD); |
| GridDataFactory.fillDefaults().applyTo(userLabel); |
| |
| usernameField = new Text(main, SWT.BORDER); |
| GridDataFactory.fillDefaults().applyTo(usernameField); |
| |
| Label pwdLabel = new Label(main, SWT.NONE); |
| pwdLabel.setText(Messages.UserCredentialsDialog_Password_XFLD); |
| GridDataFactory.fillDefaults().applyTo(pwdLabel); |
| |
| passwordField = new Text(main, SWT.BORDER | SWT.PASSWORD); |
| GridDataFactory.fillDefaults().applyTo(passwordField); |
| |
| return main; |
| } |
| |
| private Credentials getCredentials() { |
| return credentials; |
| } |
| |
| /** |
| * Notifies that the ok button of this dialog has been pressed. |
| */ |
| @Override |
| protected void okPressed() { |
| if (usernameField.getText() != null && passwordField.getText() != null) { |
| this.credentials = new UsernamePasswordCredentials(usernameField.getText(), passwordField.getText()); |
| } |
| super.okPressed(); |
| } |
| } |