blob: c140772bda48a3161e1c854c37009e488a346a55 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.equinox.internal.security.ui.storage;
import org.eclipse.equinox.internal.security.storage.friends.ReEncrypter;
import org.eclipse.equinox.internal.security.ui.nls.SecUIMessages;
import org.eclipse.equinox.security.storage.ISecurePreferences;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
public class ChangePasswordWizardDialog extends WizardDialog {
final private ReEncrypter reEncrypter;
private boolean decryptedOK;
private boolean recodeDone;
public ChangePasswordWizardDialog(Shell parentShell, ISecurePreferences node, String moduleID) {
super(parentShell, new ChangePasswordWizard());
reEncrypter = new ReEncrypter(node, moduleID);
}
public boolean isDecryptedOK() {
return decryptedOK;
}
public boolean isRecodeDone() {
return recodeDone;
}
protected void nextPressed() {
IWizardPage currentPage = getCurrentPage();
if (currentPage instanceof ChangePasswordWizard.DecodePage) { // decrypt
if (!reEncrypter.decrypt()) {
MessageBox messageBox = new MessageBox(getShell(), SWT.YES | SWT.NO | SWT.ICON_WARNING);
messageBox.setText(SecUIMessages.changePasswordWizardTitle);
messageBox.setMessage(SecUIMessages.wizardDecodeWarning);
if (messageBox.open() == SWT.YES) {
setReturnCode(CANCEL);
close();
return;
}
}
} else if (currentPage instanceof ChangePasswordWizard.EncodePage) { // encrypt
if (!reEncrypter.switchToNewPassword()) {
MessageBox messageBox = new MessageBox(getShell(), SWT.OK | SWT.ICON_ERROR);
messageBox.setText(SecUIMessages.changePasswordWizardTitle);
messageBox.setMessage(SecUIMessages.wizardSwitchError);
messageBox.open();
close();
return;
}
reEncrypter.encrypt();
recodeDone = true;
}
super.nextPressed();
}
}