/*******************************************************************************
* Copyright (c) 2008 Dennis Schenk, Peter Siska.
* All rights reserved. This program and the accompanying materials
* are 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:
* Dennis Schenk - initial implementation
* Peter Siska - initial implementation
*******************************************************************************/
package ch.unibe.iam.scg.archie.ui.wizards;
import org.eclipse.jface.wizard.Wizard;
import ch.unibe.iam.scg.archie.controller.ProviderManager;
import ch.unibe.iam.scg.archie.model.ChartModel;
/**
* <p>
* Main entry point for the chart wizard. Contains all the necessary chart
* wizard pages for building a chart model.
* </p>
*
* $Id: ChartWizard.java 747 2009-07-23 09:14:53Z peschehimself $
*
* @author Peter Siska
* @author Dennis Schenk
* @version $Rev: 747 $
*/
public class ChartWizard extends Wizard {
private ChartModel chartModel;
/**
* Pages in this wizard
*/
private ChartWizardMainPage mainPage;
private PieChartPage pieChartPage;
private BarChartPage barChartPage;
private ContentSelectionPage selectionPage;
/**
* Constructs a ChartWizard
*/
public ChartWizard() {
super();
assert ProviderManager.getInstance().hasProvider();
// create a new chart model and add a CLONED dataset
this.chartModel = new ChartModel();
this.chartModel.setDataSet(ProviderManager.getInstance().getProvider().getDataSet().clone());
assert this.chartModel.hasDataSet();
}
/**
* @see org.eclipse.jface.wizard.Wizard#performFinish()
*/
@Override
public boolean performFinish() {
return true;
}
/**
* @see org.eclipse.jface.wizard.Wizard#canFinish()
*/
@Override
public boolean canFinish() {
return this.getContainer().getCurrentPage() instanceof ContentSelectionPage && this.chartModel.isValid();
}
/**
* @see org.eclipse.jface.wizard.Wizard#addPages()
*/
@Override
public void addPages() {
// main page
this.mainPage = new ChartWizardMainPage();
this.addPage(this.mainPage);
// consecutive pages
this.pieChartPage = new PieChartPage();
this.addPage(this.pieChartPage);
this.barChartPage = new BarChartPage();
this.addPage(this.barChartPage);
// final page
this.selectionPage = new ContentSelectionPage();
this.addPage(this.selectionPage);
}
/**
* @return ChartModel
*/
public ChartModel getModel() {
return this.chartModel;
}
}