package scrum.client.issues; import ilarkesto.core.scope.Scope; import scrum.client.common.TooltipBuilder; import scrum.client.project.Quality; import scrum.client.workspace.ProjectWorkspaceWidgets; public class ConvertIssueToQualityAction extends GConvertIssueToQualityAction { public ConvertIssueToQualityAction(scrum.client.issues.Issue issue) { super(issue); } @Override public String getLabel() { return "Convert to Quality"; } @Override public String getTooltip() { TooltipBuilder tb = new TooltipBuilder("Convert this issue to a Quality in the Quality Backlog."); if (!issue.getProject().isProductOwner(getCurrentUser())) { tb.addRemark(TooltipBuilder.NOT_PRODUCT_OWNER); } return tb.getTooltip(); } @Override public boolean isExecutable() { return true; } @Override public boolean isPermitted() { if (!issue.getProject().isProductOwner(getCurrentUser())) return false; return true; } @Override protected void onExecute() { Quality quality = new Quality(issue); getDao().createQuality(quality); getDao().deleteIssue(issue); Scope.get().getComponent(ProjectWorkspaceWidgets.class).showQualityBacklog(quality); addUndo(new Undo(quality)); } class Undo extends ALocalUndo { private Quality quality; public Undo(Quality quality) { this.quality = quality; } @Override public String getLabel() { return "Undo Convert " + issue.getReference() + " " + issue.getLabel() + " to Quality"; } @Override protected void onUndo() { getDao().deleteQuality(quality); getDao().createIssue(issue); } } }