package rocks.inspectit.ui.rcp.wizard;
import java.util.Objects;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import rocks.inspectit.ui.rcp.InspectIT;
import rocks.inspectit.ui.rcp.InspectITImages;
import rocks.inspectit.ui.rcp.repository.CmrRepositoryDefinition;
import rocks.inspectit.ui.rcp.wizard.page.DefineCmrWizardPage;
import rocks.inspectit.ui.rcp.wizard.page.PreviewCmrDataWizardPage;
/**
* Wizard for adding the {@link rocks.inspectit.ui.rcp.repository.CmrRepositoryDefinition}.
*
* @author Ivan Senic
*
*/
public class AddCmrRepositoryWizard extends Wizard implements INewWizard {
/**
* {@link DefineCmrWizardPage}.
*/
private DefineCmrWizardPage defineCmrWizardPage;
/**
* {@link PreviewCmrDataWizardPage}.
*/
private PreviewCmrDataWizardPage previewCmrDataWizardPage;
/**
* Default constructor.
*/
public AddCmrRepositoryWizard() {
this.setWindowTitle("Add Central Management Repository (CMR)");
this.setDefaultPageImageDescriptor(InspectIT.getDefault().getImageDescriptor(InspectITImages.IMG_WIZBAN_SERVER));
}
/**
* {@inheritDoc}
*/
@Override
public void init(IWorkbench workbench, IStructuredSelection selection) {
}
/**
* {@inheritDoc}
*/
@Override
public void addPages() {
defineCmrWizardPage = new DefineCmrWizardPage("Add New CMR Repository");
addPage(defineCmrWizardPage);
previewCmrDataWizardPage = new PreviewCmrDataWizardPage();
addPage(previewCmrDataWizardPage);
}
/**
* {@inheritDoc}
*/
@Override
public IWizardPage getNextPage(IWizardPage page) {
if (Objects.equals(page, defineCmrWizardPage)) {
previewCmrDataWizardPage.cancel();
previewCmrDataWizardPage.update(defineCmrWizardPage.getCmrRepositoryDefinition());
}
return super.getNextPage(page);
}
/**
* {@inheritDoc}
*/
@Override
public boolean performFinish() {
CmrRepositoryDefinition cmrRepositoryDefinition = defineCmrWizardPage.getCmrRepositoryDefinition();
InspectIT.getDefault().getCmrRepositoryManager().addCmrRepositoryDefinition(cmrRepositoryDefinition);
return true;
}
}