package info.limpet.stackedcharts.ui.editor.parts;
import info.limpet.stackedcharts.model.Chart;
import info.limpet.stackedcharts.model.ChartSet;
import info.limpet.stackedcharts.model.Orientation;
import info.limpet.stackedcharts.ui.editor.StackedchartsImages;
import info.limpet.stackedcharts.ui.editor.figures.DirectionalIconLabel;
import info.limpet.stackedcharts.ui.editor.figures.DirectionalShape;
import info.limpet.stackedcharts.ui.editor.figures.ScatterSetContainerFigure;
import info.limpet.stackedcharts.ui.editor.parts.ChartEditPart.ScatterSetContainer;
import info.limpet.stackedcharts.ui.editor.policies.ScatterSetContainerEditPolicy;
import java.util.List;
import org.eclipse.draw2d.BorderLayout;
import org.eclipse.draw2d.IFigure;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
public class ScatterSetContainerEditPart extends AbstractGraphicalEditPart
{
private ScatterSetContainerFigure scatterSetContainerFigure;
private DirectionalIconLabel titleLabel;
@Override
protected IFigure createFigure()
{
DirectionalShape figure = new DirectionalShape();
titleLabel = new DirectionalIconLabel(StackedchartsImages.getImage(
StackedchartsImages.DESC_SCATTERSET));
figure.add(titleLabel);
titleLabel.getLabel().setText("Scatterset");
scatterSetContainerFigure = new ScatterSetContainerFigure();
figure.add(scatterSetContainerFigure);
return figure;
}
@Override
public IFigure getContentPane()
{
return scatterSetContainerFigure;
}
@Override
protected void createEditPolicies()
{
installEditPolicy(EditPolicy.CONTAINER_ROLE,
new ScatterSetContainerEditPolicy());
}
@SuppressWarnings("rawtypes")
@Override
protected List getModelChildren()
{
return (ScatterSetContainer) getModel();
}
@Override
protected void refreshVisuals()
{
final DirectionalShape figure = (DirectionalShape) getFigure();
ChartSet chartSet = ((Chart) getParent().getModel()).getParent();
final boolean vertical = chartSet.getOrientation() == Orientation.VERTICAL;
((GraphicalEditPart) getParent()).setLayoutConstraint(this, figure, vertical
? BorderLayout.BOTTOM : BorderLayout.RIGHT);
figure.setVertical(!vertical);
scatterSetContainerFigure.setVertical(!vertical);
titleLabel.setVertical(!vertical);
}
}