package pl.net.bluesoft.rnd.processtool.ui.buttons;
import com.vaadin.ui.Button;
import pl.net.bluesoft.rnd.processtool.ui.WidgetContextSupport;
import pl.net.bluesoft.rnd.processtool.ui.buttons.dialog.CancelTaskDialog;
import pl.net.bluesoft.rnd.processtool.ui.widgets.ProcessToolDataWidget;
import pl.net.bluesoft.rnd.processtool.ui.widgets.annotations.AliasName;
import pl.net.bluesoft.rnd.processtool.ui.widgets.annotations.AutoWiredProperty;
import java.util.Collection;
import java.util.Map;
/**
* User: POlszewski
* Date: 2012-01-10
* Time: 11:23:49
*/
@AliasName(name = "CancelTaskButton")
public class CancelTaskButton extends CommentRequiredValidatingButton {
@AutoWiredProperty
private boolean mustAddComment = false;
@Override
protected void showValidationErrorsOrSave(final WidgetContextSupport support, final Map<ProcessToolDataWidget, Collection<String>> validationErrors) {
showCancelTaskDialog(new PerformedActionParams(support, validationErrors, false));
}
private void showCancelTaskDialog(final PerformedActionParams params) {
CancelTaskDialog dialog = showDialog(new CancelTaskDialog());
dialog.getCancelTaskButton().addListener(new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent clickEvent) {
handleCancelTaskButtonClick(params);
}
});
}
protected void handleCancelTaskButtonClick(PerformedActionParams params) {
if (mustAddComment) {
showAddCommentDialog(params);
}
else {
finalizeAction(params.isSaveData());
}
}
@Override
protected boolean canSaveComment() {
return mustAddComment;
}
}