/*******************************************************************************
* 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.tools.openshift.express.internal.ui.wizard.domain;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.osgi.util.NLS;
import org.jboss.tools.common.ui.WizardUtils;
import org.jboss.tools.openshift.common.ui.wizard.AbstractOpenShiftWizard;
import org.jboss.tools.openshift.express.internal.core.connection.ExpressConnection;
import org.jboss.tools.openshift.express.internal.ui.ExpressUIActivator;
import org.jboss.tools.openshift.express.internal.ui.utils.Logger;
import org.jboss.tools.openshift.internal.common.core.job.AbstractDelegatingMonitorJob;
import com.openshift.client.OpenShiftEndpointException;
/**
* @author André Dietisheim
*/
public class NewDomainWizard extends AbstractOpenShiftWizard<NewDomainWizardModel> {
public NewDomainWizard(ExpressConnection connection) {
super("Create Domain", new NewDomainWizardModel(connection));
}
@Override
public boolean performFinish() {
AbstractDelegatingMonitorJob newDomainJob =
new AbstractDelegatingMonitorJob(NLS.bind("Creating domain {0}...", getModel().getDomainId())) {
@Override
protected IStatus doRun(IProgressMonitor monitor) {
try {
getModel().createDomain();
return Status.OK_STATUS;
} catch (OpenShiftEndpointException e) {
return ExpressUIActivator.createErrorStatus(
NLS.bind("Could not create domain \"{0}\": {1}",
getModel().getDomainId(), e.getRestResponseMessages()), e);
}
}
};
try {
WizardUtils.runInWizard(newDomainJob, getContainer());
} catch (Exception e) {
Logger.error("Could not create domain", e);
}
return newDomainJob.getResult().isOK();
}
@Override
public void addPages() {
addPage(new NewDomainWizardPage(getModel(), this));
}
}