/*
* Copyright (c) 2010-2012 Research In Motion Limited. All rights reserved.
*
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License, Version 1.0,
* which accompanies this distribution and is available at
*
* http://www.eclipse.org/legal/epl-v10.html
*
*/
package net.rim.ejde.internal.util;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
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.Shell;
import org.eclipse.swt.widgets.Text;
public class PromptDialog extends MessageDialog {
protected Text _promptText;
private boolean _obscure = false;
private String _response;
private String _initialAnswer;
public PromptDialog( Shell parentShell, String title, String initialAnswer, boolean obscure ) {
super( parentShell, title, null, title + ":", QUESTION, new String[] { IDialogConstants.OK_LABEL,
IDialogConstants.CANCEL_LABEL }, 0 );
_obscure = obscure;
_response = null;
_initialAnswer = initialAnswer;
}
/**
* Overridden to create the password textboxes on the given parent composite to enable the user to supply credentials.
*
* @see org.eclipse.jface.dialogs.MessageDialog#createCustomArea(org.eclipse.swt.widgets.Composite)
*/
protected Control createCustomArea( Composite parent ) {
GridLayout gridLayout = (GridLayout) parent.getLayout();
gridLayout.numColumns = 1;
// Label lblPassword = new Label( parent, SWT.NONE );
// lblPassword.setText( _promptLabel );
int style = SWT.BORDER;
if( _obscure ) {
style |= SWT.PASSWORD;
}
_promptText = new Text( parent, style );
GridData data = new GridData();
data.horizontalAlignment = GridData.FILL;
data.grabExcessHorizontalSpace = true;
_promptText.setLayoutData( data );
_promptText.setText( _initialAnswer );
_promptText.setFocus();
return parent;
}
@Override
protected void buttonPressed( int buttonId ) {
if( buttonId == IDialogConstants.OK_ID ) {
_response = _promptText.getText();
}
super.buttonPressed( buttonId );
}
public String getResponse() {
return _response;
}
}