ItEr41S08CUAltaFormularioCalidadeItEr40S09 : fix the quality form type constraint (by items) and fix the open event of the master/details component.

This commit is contained in:
Susana Montes Pedreira 2009-12-30 19:09:38 +01:00 committed by Javier Moran Rua
parent ea9aed314c
commit db2534f46e
4 changed files with 81 additions and 39 deletions

View file

@ -79,9 +79,11 @@ public class TaskQualityForm extends BaseEntity {
@SuppressWarnings("unused")
@AssertTrue(message = "dates must be consecutive.")
public boolean checkConstraintCorrectConsecutivesDate() {
for (TaskQualityFormItem item : taskQualityFormItems) {
if (!isCorrectConsecutiveDate(item)) {
return false;
if (!isByItems()) {
for (TaskQualityFormItem item : taskQualityFormItems) {
if (!isCorrectConsecutiveDate(item)) {
return false;
}
}
}
return true;
@ -90,9 +92,11 @@ public class TaskQualityForm extends BaseEntity {
@SuppressWarnings("unused")
@AssertTrue(message = "dates must be consecutive.")
public boolean checkConstraintConsecutivePassedItems() {
for (TaskQualityFormItem item : taskQualityFormItems) {
if (!isCorrectConsecutivePassed(item)) {
return false;
if (!isByItems()) {
for (TaskQualityFormItem item : taskQualityFormItems) {
if (!isCorrectConsecutivePassed(item)) {
return false;
}
}
}
return true;
@ -134,4 +138,12 @@ public class TaskQualityForm extends BaseEntity {
return true;
}
public boolean isByItems() {
if ((this.qualityForm != null)
&& (this.qualityForm.getQualityFormType() != null)) {
return (this.qualityForm.getQualityFormType()
.equals(QualityFormType.BY_ITEMS));
}
return true;
}
}

View file

@ -33,7 +33,6 @@ import org.navalplanner.business.qualityforms.entities.QualityForm;
import org.navalplanner.business.qualityforms.entities.TaskQualityForm;
import org.navalplanner.business.qualityforms.entities.TaskQualityFormItem;
import org.navalplanner.business.resources.entities.CriterionSatisfaction;
import org.navalplanner.web.common.ConstraintChecker;
import org.navalplanner.web.common.IMessagesForUser;
import org.navalplanner.web.common.Level;
import org.navalplanner.web.common.MessagesForUser;
@ -210,6 +209,7 @@ public class AssignedTaskQualityFormsToOrderElementController extends
private void reloadTaskQualityForms() {
Util.reloadBindings(bdQualityForms);
Util.reloadBindings(assignedTaskQualityForms);
assignedTaskQualityForms.invalidate();
}
public void close() {
@ -224,7 +224,7 @@ public class AssignedTaskQualityFormsToOrderElementController extends
@Override
public void render(Row row, Object data) throws Exception {
TaskQualityForm taskQualityForm = (TaskQualityForm) data;
row.setValue(data);
row.setValue(taskQualityForm);
appendDetails(row, taskQualityForm);
appendNewLabel(row, taskQualityForm.getQualityForm().getName());
@ -319,7 +319,7 @@ public class AssignedTaskQualityFormsToOrderElementController extends
@Override
public void render(Row row, Object data) throws Exception {
TaskQualityFormItem item = (TaskQualityFormItem) data;
row.setValue(data);
row.setValue(item);
appendNewLabel(row, item.getName());
appendNewLabel(row, item.getPosition().toString());
@ -342,9 +342,6 @@ public class AssignedTaskQualityFormsToOrderElementController extends
final TaskQualityForm taskQualityForm = getTaskQualityFormByRow(row);
final TaskQualityFormItem item = (TaskQualityFormItem) row.getValue();
date.setDisabled(assignedTaskQualityFormsToOrderElementModel
.isDisabledDateItem(taskQualityForm, item));
Util.bind(date, new Util.Getter<Date>() {
@Override
public Date get() {
@ -358,6 +355,8 @@ public class AssignedTaskQualityFormsToOrderElementController extends
}
});
date.setDisabled(assignedTaskQualityFormsToOrderElementModel
.isDisabledDateItem(taskQualityForm, item));
date.setConstraint(checkConsecutiveDate(row));
}
@ -368,9 +367,6 @@ public class AssignedTaskQualityFormsToOrderElementController extends
final TaskQualityForm taskQualityForm = getTaskQualityFormByRow(row);
final TaskQualityFormItem item = (TaskQualityFormItem) row.getValue();
checkbox.setDisabled(assignedTaskQualityFormsToOrderElementModel
.isDisabledPassedItem(taskQualityForm, item));
Util.bind(checkbox, new Util.Getter<Boolean>() {
@Override
public Boolean get() {
@ -384,14 +380,20 @@ public class AssignedTaskQualityFormsToOrderElementController extends
}
});
checkbox.addEventListener(Events.ON_CHECK, new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
assignedTaskQualityFormsToOrderElementModel
.updatePassedTaskQualityFormItems(taskQualityForm);
Util.reloadBindings(assignedTaskQualityForms);
}
});
checkbox.setDisabled(assignedTaskQualityFormsToOrderElementModel
.isDisabledPassedItem(taskQualityForm, item));
if (!taskQualityForm.isByItems()) {
checkbox.addEventListener(Events.ON_CHECK, new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
Grid gridItems = row.getGrid();
gridItems.setModel(new SimpleListModel(taskQualityForm
.getTaskQualityFormItems().toArray()));
gridItems.invalidate();
}
});
}
}
private Constraint checkConsecutiveDate(final Row row) {
@ -412,11 +414,12 @@ public class AssignedTaskQualityFormsToOrderElementController extends
throw new WrongValueException(comp,
_("The date cannot be null."));
}
if (!taskQualityForm.isCorrectConsecutiveDate(item)) {
if (!assignedTaskQualityFormsToOrderElementModel
.isCorrectConsecutiveDate(taskQualityForm, item)) {
item.setDate(null);
throw new WrongValueException(
comp,
_("The date must be later the previous item date, and previous the later item date."));
_("must be consecutive."));
}
}
}
@ -435,11 +438,7 @@ public class AssignedTaskQualityFormsToOrderElementController extends
// Operations to confirm and validate
public boolean confirm() {
return (validateConstraints() && validate());
}
private boolean validateConstraints() {
return ConstraintChecker.isValid(self);
return validate();
}
/**
@ -490,11 +489,13 @@ public class AssignedTaskQualityFormsToOrderElementController extends
if (rowItem != null) {
if (TaskQualityFormItem.propertyDate.equals(propertyName)) {
openDetails(rowItem);
Datebox datebox = getDatebox(rowItem);
throw new WrongValueException(datebox, invalidValue
.getMessage());
}
if (TaskQualityFormItem.propertyPassed.equals(propertyName)) {
openDetails(rowItem);
Checkbox checkbox = getCheckbox(rowItem);
throw new WrongValueException(checkbox, invalidValue
.getMessage());
@ -529,10 +530,18 @@ public class AssignedTaskQualityFormsToOrderElementController extends
}
private void openDetails(Row row) {
Detail details = getDetails(row);
if (details != null) {
details.setOpen(true);
assignedTaskQualityForms.invalidate();
}
}
private Detail getDetails(Row row) {
if (row.getValue() instanceof TaskQualityForm) {
((Detail) row.getFirstChild()).setOpen(true);
return ((Detail) row.getFirstChild());
} else {
((Detail) row.getGrid().getParent()).setOpen(true);
return ((Detail) row.getGrid().getParent());
}
}

View file

@ -163,8 +163,8 @@ public class AssignedTaskQualityFormsToOrderElementModel implements
if ((taskQualityForm == null) || ((item == null))) {
return true;
}
return (!(item.getPassed() || taskQualityForm
.isPassedPreviousItem(item)));
return ((!taskQualityForm.isByItems()) && (!(item.getPassed() || taskQualityForm
.isPassedPreviousItem(item))));
}
public boolean isDisabledDateItem(TaskQualityForm taskQualityForm,
@ -172,7 +172,18 @@ public class AssignedTaskQualityFormsToOrderElementModel implements
if ((taskQualityForm == null) || ((item == null))) {
return true;
}
return (!item.getPassed());
return (!taskQualityForm.isByItems() && (!item.getPassed()));
}
public boolean isCorrectConsecutiveDate(TaskQualityForm taskQualityForm,
TaskQualityFormItem item) {
if ((taskQualityForm == null) || ((item == null))) {
return true;
}
if (taskQualityForm.isByItems()) {
return true;
}
return (taskQualityForm.isCorrectConsecutiveDate(item));
}
public void updatePassedTaskQualityFormItems(TaskQualityForm taskQualityForm) {
@ -219,13 +230,15 @@ public class AssignedTaskQualityFormsToOrderElementModel implements
for (TaskQualityFormItem item : taskQualityForm
.getTaskQualityFormItems()) {
if (!taskQualityForm.isCorrectConsecutivePassed(item)) {
if ((!taskQualityForm.isByItems())
&& (!taskQualityForm.isCorrectConsecutivePassed(item))) {
throw new ValidationException(new InvalidValue(
_("must be consecutive"), TaskQualityForm.class,
"passed", item.getName(), taskQualityForm));
}
if (!taskQualityForm.isCorrectConsecutiveDate(item)) {
}
if ((!taskQualityForm.isByItems())
&& (!taskQualityForm.isCorrectConsecutiveDate(item))) {
throw new ValidationException(new InvalidValue(
_("must be consecutive"), TaskQualityForm.class,
"date", item.getName(), taskQualityForm));

View file

@ -102,13 +102,21 @@ public interface IAssignedTaskQualityFormsToOrderElementModel {
TaskQualityFormItem item);
/**
* Check whether {@link QualityFormItem} date mustbe disabled
* Check whether {@link QualityFormItem} date must be disabled
* @param taskQualityForm
* ,item
*/
boolean isDisabledDateItem(TaskQualityForm taskQualityForm,
TaskQualityFormItem item);
/**
* Check whether {@link QualityFormItem} date is consecutive
* @param taskQualityForm
* ,item
*/
boolean isCorrectConsecutiveDate(TaskQualityForm taskQualityForm,
TaskQualityFormItem item);
/**
* Check whether all {@link QualityForm} and its {@link QualityFormItem} are
* valid.