package info.limpet.stackedcharts.ui.editor.commands; import info.limpet.stackedcharts.model.Chart; import info.limpet.stackedcharts.model.ChartSet; import org.eclipse.gef.commands.Command; public class DeleteChartCommand extends Command { private final Chart chart; private final ChartSet parent; private int index = -1; public DeleteChartCommand(final ChartSet parent, final Chart chart) { this.chart = chart; this.parent = parent; } @Override public void execute() { index = parent.getCharts().indexOf(chart); parent.getCharts().remove(chart); } @Override public void undo() { if (index != -1) { parent.getCharts().add(index, chart); } else { parent.getCharts().add(chart); } } }