diff options
author | Steffen Pingel | 2011-12-01 11:39:09 +0000 |
---|---|---|
committer | Steffen Pingel | 2011-12-01 11:39:09 +0000 |
commit | 9b88e7cbfa520afb94a8ef957ef1e8644fb9bda1 (patch) | |
tree | 75a68e6b85bbf0e92cec02bcc50fc18bb4d252c0 /org.eclipse.mylyn.commons.ui | |
parent | e7b847ec2fe8aa4f5f291dc8ca5dd204c20ba8f0 (diff) | |
download | org.eclipse.mylyn.commons-9b88e7cbfa520afb94a8ef957ef1e8644fb9bda1.tar.gz org.eclipse.mylyn.commons-9b88e7cbfa520afb94a8ef957ef1e8644fb9bda1.tar.xz org.eclipse.mylyn.commons-9b88e7cbfa520afb94a8ef957ef1e8644fb9bda1.zip |
NEW - bug 360046: Fix validation when creating repositories from Team
Repositories view
https://bugs.eclipse.org/bugs/show_bug.cgi?id=360046
Diffstat (limited to 'org.eclipse.mylyn.commons.ui')
-rw-r--r-- | org.eclipse.mylyn.commons.ui/src/org/eclipse/mylyn/internal/provisional/commons/ui/dialogs/ValidatableWizardDialog.java | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/org.eclipse.mylyn.commons.ui/src/org/eclipse/mylyn/internal/provisional/commons/ui/dialogs/ValidatableWizardDialog.java b/org.eclipse.mylyn.commons.ui/src/org/eclipse/mylyn/internal/provisional/commons/ui/dialogs/ValidatableWizardDialog.java index 5923fe78..600f37bb 100644 --- a/org.eclipse.mylyn.commons.ui/src/org/eclipse/mylyn/internal/provisional/commons/ui/dialogs/ValidatableWizardDialog.java +++ b/org.eclipse.mylyn.commons.ui/src/org/eclipse/mylyn/internal/provisional/commons/ui/dialogs/ValidatableWizardDialog.java @@ -13,7 +13,9 @@ package org.eclipse.mylyn.internal.provisional.commons.ui.dialogs; import java.util.HashMap; +import org.eclipse.core.runtime.IAdaptable; import org.eclipse.jface.wizard.IWizard; +import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages; import org.eclipse.swt.widgets.Button; @@ -52,11 +54,12 @@ public class ValidatableWizardDialog extends EnhancedWizardDialog { @Override public void updateExtraButtons() { - if (getCurrentPage() instanceof IValidatable && ((IValidatable) getCurrentPage()).needsValidation()) { + IValidatable validatable = getValidatablePage(); + if (validatable != null && validatable.needsValidation()) { if (!validateServerButton.isVisible()) { validateServerButton.setVisible(true); } - validateServerButton.setEnabled(((IValidatable) getCurrentPage()).canValidate()); + validateServerButton.setEnabled(validatable.canValidate()); } else { if (validateServerButton != null && validateServerButton.isVisible()) { validateServerButton.setVisible(false); @@ -64,11 +67,23 @@ public class ValidatableWizardDialog extends EnhancedWizardDialog { } } + private IValidatable getValidatablePage() { + IValidatable validatable = null; + IWizardPage currentPage = getCurrentPage(); + if (currentPage instanceof IValidatable) { + validatable = (IValidatable) currentPage; + } else if (currentPage instanceof IAdaptable) { + validatable = (IValidatable) ((IAdaptable) currentPage).getAdapter(IValidatable.class); + } + return validatable; + } + @Override protected boolean handleExtraButtonPressed(int buttonId) { if (buttonId == VALIDATE_BUTTON_ID) { - if (getCurrentPage() instanceof IValidatable) { - ((IValidatable) getCurrentPage()).validate(); + IValidatable validatable = getValidatablePage(); + if (validatable != null) { + validatable.validate(); return true; } } |