X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/ui/dialog/PasswordDialog.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/ui/dialog/PasswordDialog.java new file mode 100644 index 0000000..8e5d5bf --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/ui/dialog/PasswordDialog.java @@ -0,0 +1,122 @@ +/* + * Created on 28-ago-2003 + * + */ +package com.quantum.ui.dialog; + +import com.quantum.Messages; +import com.quantum.model.PasswordFinder; + +import org.eclipse.jface.dialogs.InputDialog; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; + +/** + * @author panic + * + */ +public class PasswordDialog extends InputDialog { + + static class PasswordFinderImpl implements PasswordFinder { + private boolean passwordMeantToBeSaved = false; + private String password; + private boolean prompted = false; + private Shell shell; + + PasswordFinderImpl(Shell shell) { + this.shell = shell; + } + + protected void prompt() { + PasswordDialog dialog = + new PasswordDialog( + this.shell, + Messages.getString("MultiSQLServer.PasswordNotProvided"), + Messages.getString("MultiSQLServer.Enter_Password"), + "", + this); + dialog.open(); + this.prompted = true; + } + + /** + * @return + */ + public String getPassword() { + if (!this.prompted) { + prompt(); + } + return password; + } + + /** + * @return + */ + public boolean isPasswordMeantToBeSaved() { + if (!this.prompted) { + prompt(); + } + return passwordMeantToBeSaved; + } + + /** + * @param string + */ + public void setPassword(String string) { + password = string; + } + + /** + * @param b + */ + public void setPasswordMeantToBeSaved(boolean b) { + passwordMeantToBeSaved = b; + } + + } + + private PasswordFinderImpl passwordFinderImpl; + + /** + * @param parentShell + * @param dialogTitle + * @param dialogMessage + * @param initialValue + * @param validator + */ + protected PasswordDialog( + Shell parentShell, + String dialogTitle, + String dialogMessage, + String initialValue, + PasswordFinderImpl passwordFinderImpl) { + super(parentShell, dialogTitle, dialogMessage, initialValue, null); + this.passwordFinderImpl = passwordFinderImpl; + } + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) + */ + protected Control createDialogArea(Composite parent) { + + Control control = super.createDialogArea(parent); + Text text = getText(); + text.setEchoChar('*'); + return control; + } + + public static PasswordFinder createPasswordFinder(Shell parentShell) { + PasswordFinderImpl passwordFinder = new PasswordFinderImpl(parentShell); + return passwordFinder; + } + /** + * @see org.eclipse.jface.dialogs.Dialog#okPressed() + */ + protected void okPressed() { + this.passwordFinderImpl.setPassword(getText().getText()); + super.okPressed(); + } + +}