package scrum.client.release; import ilarkesto.gwt.client.Date; public class UnreleaseReleaseAction extends GUnreleaseReleaseAction { public UnreleaseReleaseAction(scrum.client.release.Release release) { super(release); } @Override public String getLabel() { return "Mark as planned"; } @Override public boolean isExecutable() { if (!release.isReleased()) return false; return true; } @Override protected void onExecute() { Date previousDate = release.getReleaseDate(); release.setReleaseDate(Date.today()); release.setReleased(false); addUndo(new Undo(previousDate)); } class Undo extends ALocalUndo { private Date date; public Undo(Date date) { super(); this.date = date; } @Override public String getLabel() { return "Undo Mark as planned " + release.getReference() + " " + release.getLabel(); } @Override protected void onUndo() { release.setReleaseDate(date); release.setReleased(true); } } }