appendOperations(row);
}
private void appendCheckboxReportAdvance(Row row,
final TaskQualityForm taskQualityForm) {
final Checkbox tmpCheckbox = new Checkbox();
Checkbox checkbox = Util.bind(tmpCheckbox,
new Util.Getter<Boolean>() {
@Override
public Boolean get() {
return taskQualityForm.isReportAdvance();
}
}, new Util.Setter<Boolean>() {
@Override
public void set(Boolean value) {
try {
if (value) {
assignedTaskQualityFormsToOrderElementModel
.addAdvanceAssignmentIfNeeded(taskQualityForm);
} else {
try {
assignedTaskQualityFormsToOrderElementModel
.removeAdvanceAssignmentIfNeeded(taskQualityForm);
} catch (ValidationException e) {
showInformativeMessage(e.getMessage());
return;
}
}
taskQualityForm.setReportAdvance(value);
} catch (DuplicateValueTrueReportGlobalAdvanceException e) {
throw new RuntimeException(e);
} catch (DuplicateAdvanceAssignmentForOrderElementException e) {
messages
.showMessage(
Level.ERROR,
_("Another task in the same branch is already reporting progress for this quality form"));
tmpCheckbox.setChecked(false);
}
}
});
if (!taskQualityForm.getQualityForm().isReportAdvance()) {
checkbox.setDisabled(true);
}
row.appendChild(checkbox);
}