package info.limpet.stackedcharts.ui.editor.parts;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPartFactory;
import info.limpet.stackedcharts.model.Chart;
import info.limpet.stackedcharts.model.ChartSet;
import info.limpet.stackedcharts.model.Dataset;
import info.limpet.stackedcharts.model.DependentAxis;
import info.limpet.stackedcharts.model.IndependentAxis;
import info.limpet.stackedcharts.model.ScatterSet;
import info.limpet.stackedcharts.model.Styling;
import info.limpet.stackedcharts.ui.editor.parts.ChartEditPart.ScatterSetContainer;
public class StackedChartsEditPartFactory implements EditPartFactory
{
@Override
public EditPart createEditPart(EditPart context, Object model)
{
EditPart editPart = null;
if (model instanceof ChartSet)
{
editPart = new ChartSetEditPart();
}
else if (model instanceof Chart)
{
editPart = new ChartEditPart();
}
else if (model instanceof ChartEditPart.ChartPanePosition)
{
editPart = new ChartPaneEditPart();
}
else if (model instanceof DependentAxis)
{
editPart = new AxisEditPart();
}
else if (model instanceof Dataset)
{
editPart = new DatasetEditPart();
}
else if (model instanceof ChartSetEditPart.ChartsWrapper)
{
editPart = new ChartsPanelEditPart();
}
else if (model instanceof ChartSetEditPart.ChartSetWrapper)
{
editPart = new ChartSetHeaderEditPart();
}
else if (model instanceof ChartPaneEditPart.AxisLandingPad)
{
editPart = new AxisLandingPadEditPart();
}
else if (model instanceof IndependentAxis)
{
editPart = new SharedAxisEditPart();
}
else if (model instanceof Styling)
{
editPart = new StylingEditPart();
}
else if (model instanceof ScatterSetContainer)
{
editPart = new ScatterSetContainerEditPart();
}
else if (model instanceof ScatterSet) {
editPart = new ScatterSetEditPart();
}
if (editPart != null)
{
editPart.setModel(model);
}
return editPart;
}
}