package com.tibco.as.spacebar.ui.wizards.space;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import com.tibco.as.space.SpaceDef;
import com.tibco.as.spacebar.ui.model.Connection;
import com.tibco.as.spacebar.ui.model.Space;
import com.tibco.as.spacebar.ui.model.Spaces;
import com.tibco.as.spacebar.ui.wizards.AbstractWizard;
import com.tibco.as.spacebar.ui.wizards.space.def.SpaceDefWizardPage;
import com.tibco.as.spacebar.ui.wizards.space.distribution.DistributionWizardPage;
import com.tibco.as.spacebar.ui.wizards.space.field.FieldsWizardPage;
import com.tibco.as.spacebar.ui.wizards.space.index.IndexesWizardPage;
import com.tibco.as.spacebar.ui.wizards.space.key.KeyWizardPage;
import com.tibco.as.util.Utils;
public class CreateSpaceWizard extends AbstractWizard implements INewWizard {
private Space space;
public CreateSpaceWizard() {
super("CreateSpace", "Space Creation Error", "Could not create space");
}
@Override
public void addPages() {
addPage(new SpaceDefWizardPage(space));
addPage(new FieldsWizardPage(space.getFields()));
addPage(new KeyWizardPage(space));
if (Utils.hasSpaceDefMethod("setDistributionFields")) {
addPage(new DistributionWizardPage(space));
}
addPage(new IndexesWizardPage(space.getIndexes()));
}
@Override
protected void finish(IProgressMonitor monitor) throws Exception {
monitor.beginTask("Defining space", 1);
Connection connection = space.getParent().getParent().getConnection();
SpaceDef spaceDef = space.getSpaceDef();
connection.getMetaspace().defineSpace(spaceDef);
monitor.worked(1);
}
@Override
public void init(IWorkbench workbench, IStructuredSelection selection) {
Object element = selection.getFirstElement();
if (element instanceof Spaces) {
Spaces spaces = (Spaces) element;
space = new Space();
space.setSpaces(spaces);
space.setSpaceDef(SpaceDef.create());
}
}
}