Author: adietish
Date: 2011-10-04 05:05:29 -0400 (Tue, 04 Oct 2011)
New Revision: 35315
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/AbstractSkippingWizard.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ISkipableWizardPage.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/AbstractOpenshiftWizardPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ApplicationWizardPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizard.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizardModel.java
Log:
[JBIDE-9793] now skipping domain page if domain is already present
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/AbstractOpenshiftWizardPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/AbstractOpenshiftWizardPage.java 2011-10-04
08:56:48 UTC (rev 35314)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/AbstractOpenshiftWizardPage.java 2011-10-04
09:05:29 UTC (rev 35315)
@@ -12,12 +12,14 @@
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.dialogs.IPageChangedListener;
+import org.eclipse.jface.dialogs.PageChangedEvent;
import org.eclipse.jface.wizard.IWizard;
+import org.eclipse.jface.wizard.IWizardContainer;
+import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
import org.jboss.ide.eclipse.as.openshift.ui.internal.OpenshiftImages;
import org.jboss.tools.common.ui.databinding.ParametrizableWizardPageSupport;
@@ -27,8 +29,10 @@
public abstract class AbstractOpenshiftWizardPage extends WizardPage {
protected ServerAdapterWizardModel model;
+ private DataBindingContext dbc;
- protected AbstractOpenshiftWizardPage(String title, String description, String pageName,
IWizard wizard, ServerAdapterWizardModel model) {
+ protected AbstractOpenshiftWizardPage(String title, String description, String pageName,
IWizard wizard,
+ ServerAdapterWizardModel model) {
super(pageName);
this.model = model;
setWizard(wizard);
@@ -39,23 +43,44 @@
@Override
public void createControl(Composite parent) {
- final DataBindingContext dbc = new DataBindingContext();
+ this.dbc = new DataBindingContext();
ParametrizableWizardPageSupport.create(
IStatus.ERROR | IStatus.INFO | IStatus.WARNING | IStatus.CANCEL, this,
dbc);
Composite container = new Composite(parent, SWT.NONE);
setControl(container);
- container.addListener(SWT.Show, new Listener() {
- @Override
- public void handleEvent(Event event) {
- onPageVisible(dbc);
- }
- });
+ initPageChangedListener();
+
+ // container.addListener(SWT.Show, new Listener() {
+ // @Override
+ // public void handleEvent(Event event) {
+ // onPageVisible(dbc);
+ // }
+ // });
doCreateControls(container, dbc);
}
-
- protected void onPageVisible(DataBindingContext dbc) {
+
+ protected void initPageChangedListener() {
+ IWizardContainer wizardContainer = getContainer();
+ if (wizardContainer instanceof WizardDialog) {
+ ((WizardDialog) getContainer()).addPageChangedListener(new IPageChangedListener() {
+
+ @Override
+ public void pageChanged(PageChangedEvent event) {
+ if (event.getSelectedPage() == AbstractOpenshiftWizardPage.this) {
+ onPageActivated(dbc);
+ }
+ }
+ });
+ }
}
+ protected DataBindingContext getDatabindingContext() {
+ return dbc;
+ }
+
+ protected void onPageActivated(DataBindingContext dbc) {
+ }
+
protected abstract void doCreateControls(Composite parent, DataBindingContext dbc);
}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/AbstractSkippingWizard.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/AbstractSkippingWizard.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/AbstractSkippingWizard.java 2011-10-04
09:05:29 UTC (rev 35315)
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.ide.eclipse.as.openshift.ui.internal.wizard;
+
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+
+/**
+ * @author André Dietisheim
+ */
+public abstract class AbstractSkippingWizard extends Wizard implements INewWizard {
+
+ @Override
+ public IWizardPage getNextPage(IWizardPage page) {
+ IWizardPage nextPage = null;
+ while ((nextPage = super.getNextPage(page)) != null) {
+ if (ISkipableWizardPage.class.isAssignableFrom(nextPage.getClass())
+ && ((ISkipableWizardPage) nextPage).isSkip()) {
+ page = nextPage;
+ continue;
+ } else {
+ break;
+ }
+ }
+
+ return nextPage;
+ }
+
+ @Override
+ public IWizardPage getPreviousPage(IWizardPage page) {
+ IWizardPage previousPage = null;
+ while ((previousPage = super.getPreviousPage(page)) != null) {
+ if (ISkipableWizardPage.class.isAssignableFrom(previousPage.getClass())
+ && ((ISkipableWizardPage) previousPage).isSkip()) {
+ page = previousPage;
+ continue;
+ } else {
+ break;
+ }
+ }
+
+ return previousPage;
+ }
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/AbstractSkippingWizard.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ApplicationWizardPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ApplicationWizardPage.java 2011-10-04
08:56:48 UTC (rev 35314)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ApplicationWizardPage.java 2011-10-04
09:05:29 UTC (rev 35315)
@@ -69,7 +69,7 @@
}
@Override
- protected void onPageVisible(DataBindingContext dbc) {
+ protected void onPageActivated(DataBindingContext dbc) {
try {
WizardUtils.runInWizard(new LoadApplicationsJob(), getWizard().getContainer(), dbc);
} catch (Exception ex) {
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ISkipableWizardPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ISkipableWizardPage.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ISkipableWizardPage.java 2011-10-04
09:05:29 UTC (rev 35315)
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.ide.eclipse.as.openshift.ui.internal.wizard;
+
+/**
+ * @author André Dietisheim
+ */
+public interface ISkipableWizardPage {
+
+ public boolean isSkip();
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ISkipableWizardPage.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java 2011-10-04
08:56:48 UTC (rev 35314)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java 2011-10-04
09:05:29 UTC (rev 35315)
@@ -10,7 +10,6 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.openshift.ui.internal.wizard;
-
import java.io.File;
import org.eclipse.core.databinding.DataBindingContext;
@@ -24,8 +23,6 @@
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
@@ -38,7 +35,6 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.PlatformUI;
-import org.jboss.ide.eclipse.as.openshift.core.NotFoundOpenshiftException;
import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
import org.jboss.ide.eclipse.as.openshift.ui.internal.OpenshiftUIActivator;
import org.jboss.tools.common.ui.BrowserUtil;
@@ -48,7 +44,7 @@
/**
* @author André Dietisheim
*/
-public class NewDomainWizardPage extends AbstractOpenshiftWizardPage {
+public class NewDomainWizardPage extends AbstractOpenshiftWizardPage implements
ISkipableWizardPage {
private static final String OPENSHIFT_EXPRESS_SIGNUP_URL =
"https://openshift.redhat.com/app/user/new/express"; //$NON-NLS-1$
@@ -70,14 +66,16 @@
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(namespaceLabel);
Text namespaceText = new Text(container, SWT.BORDER);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2,
1).applyTo(namespaceText);
- DataBindingUtils.bindMandatoryTextField(namespaceText, "Domain name",
ServerAdapterWizardModel.PROPERTY_NAMESPACE, model, dbc);
+ DataBindingUtils.bindMandatoryTextField(namespaceText, "Domain name",
+ ServerAdapterWizardModel.PROPERTY_NAMESPACE, model, dbc);
Label sshKeyLabel = new Label(container, SWT.NONE);
sshKeyLabel.setText("SSH Key");
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(sshKeyLabel);
Text sshKeyText = new Text(container, SWT.READ_ONLY | SWT.BORDER);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true,
false).applyTo(sshKeyText);
- DataBindingUtils.bindMandatoryTextField(sshKeyText, "SSH Key",
ServerAdapterWizardModel.PROPERTY_SSHKEY, model, dbc);
+ DataBindingUtils.bindMandatoryTextField(sshKeyText, "SSH Key",
ServerAdapterWizardModel.PROPERTY_SSHKEY, model,
+ dbc);
Button browseSShKeyButton = new Button(container, SWT.PUSH);
browseSShKeyButton.setText("Browse");
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).hint(100,
SWT.DEFAULT).applyTo(browseSShKeyButton);
@@ -88,7 +86,8 @@
Button createButton = new Button(container, SWT.NONE);
createButton.setText("&Create New Domain");
- GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).span(2, 1).indent(0,
10).hint(160, 34).applyTo(createButton);
+ GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).span(2, 1).indent(0,
10).hint(160, 34)
+ .applyTo(createButton);
createButton.addSelectionListener(onCreate(dbc));
DataBindingUtils.bindButtonEnablementToValidationStatus(createButton, dbc);
}
@@ -101,16 +100,17 @@
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
FileDialog dialog = new FileDialog(shell);
dialog.setFilterPath(getSshKeysDirectory());
- dialog.setFilterNames(new String[]{FILTERNAME_PUBLIC_SSH_KEY});
- dialog.setFilterExtensions(new String[]{FILTEREXPRESSION_PUBLIC_SSH_KEY});
+ dialog.setFilterNames(new String[] { FILTERNAME_PUBLIC_SSH_KEY });
+ dialog.setFilterExtensions(new String[] { FILTEREXPRESSION_PUBLIC_SSH_KEY });
String sshKeyPath = dialog.open();
- if (sshKeyPath != null){
+ if (sshKeyPath != null) {
model.setSshKey(sshKeyPath);
- };
+ }
+ ;
}
};
}
-
+
private String getSshKeysDirectory() {
String userHome = System.getProperty("user.home");
File sshKeysDirectory = new File(userHome, DIRECTORY_SSH_KEYS);
@@ -132,7 +132,8 @@
model.createDomain();
} catch (OpenshiftException e) {
return new Status(IStatus.ERROR, OpenshiftUIActivator.PLUGIN_ID, NLS.bind(
- "Could not create a new domain with the name \"{0}\"",
model.getNamespace()), e);
+ "Could not create a new domain with the name \"{0}\"",
+ model.getNamespace()), e);
}
return Status.OK_STATUS;
}
@@ -165,28 +166,26 @@
}
@Override
- protected void onPageVisible(DataBindingContext dbc) {
+ public boolean isSkip() {
+ final boolean[] isSkip = new boolean[] { false };
try {
WizardUtils.runInWizard(
- new Job("Loading domain name") {
+ new Job("Checking presence of domain") {
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
- model.loadDomain();
- IWizardPage page = getNextPage();
- ((WizardDialog) getWizard().getContainer()).showPage(page);
- } catch(NotFoundOpenshiftException e) {
- // valid user without domain
+ isSkip[0] = model.hasDomain();
} catch (OpenshiftException e) {
return new Status(IStatus.ERROR, OpenshiftUIActivator.PLUGIN_ID,
- "Could not get domain name", e);
+ "Could not get domain", e);
}
return Status.OK_STATUS;
}
- }, getWizard().getContainer(), dbc);
+ }, getWizard().getContainer(), getDatabindingContext());
} catch (Exception ex) {
// ignore
}
+ return isSkip[0];
}
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizard.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizard.java 2011-10-04
08:56:48 UTC (rev 35314)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizard.java 2011-10-04
09:05:29 UTC (rev 35315)
@@ -11,14 +11,12 @@
package org.jboss.ide.eclipse.as.openshift.ui.internal.wizard;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
/**
* @author André Dietisheim
*/
-public class ServerAdapterWizard extends Wizard implements INewWizard {
+public class ServerAdapterWizard extends AbstractSkippingWizard {
public ServerAdapterWizard() {
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizardModel.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizardModel.java 2011-10-04
08:56:48 UTC (rev 35314)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizardModel.java 2011-10-04
09:05:29 UTC (rev 35315)
@@ -161,17 +161,19 @@
return null;
}
- public void renameDomain() throws OpenshiftException {
- IDomain domain = getUser().getDomain();
- domain.setNamespace(namespace);
- }
-
public void setNamespace(String namespace) throws OpenshiftException {
firePropertyChange(PROPERTY_NAMESPACE, this.namespace, this.namespace = namespace);
}
+ public boolean hasDomain() throws OpenshiftException {
+ return getUser().hasDomain();
+ }
+
public void loadDomain() throws OpenshiftException {
- this.domain = getUser().getDomain();
- setNamespace(domain.getNamespace());
+ IDomain domain = getUser().getDomain();
+ if (domain != null) {
+ this.domain = domain;
+ setNamespace(domain.getNamespace());
+ }
}
}