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