From db2534f46ec339a335643cd7f5b85a0e570f196e Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Wed, 30 Dec 2009 19:09:38 +0100 Subject: [PATCH] ItEr41S08CUAltaFormularioCalidadeItEr40S09 : fix the quality form type constraint (by items) and fix the open event of the master/details component. --- .../entities/TaskQualityForm.java | 24 ++++++-- ...kQualityFormsToOrderElementController.java | 61 +++++++++++-------- ...edTaskQualityFormsToOrderElementModel.java | 25 ++++++-- ...edTaskQualityFormsToOrderElementModel.java | 10 ++- 4 files changed, 81 insertions(+), 39 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/qualityforms/entities/TaskQualityForm.java b/navalplanner-business/src/main/java/org/navalplanner/business/qualityforms/entities/TaskQualityForm.java index d5a949643..ecb3fb492 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/qualityforms/entities/TaskQualityForm.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/qualityforms/entities/TaskQualityForm.java @@ -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; + } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedTaskQualityFormsToOrderElementController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedTaskQualityFormsToOrderElementController.java index 8a140ab11..7c8005cd2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedTaskQualityFormsToOrderElementController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedTaskQualityFormsToOrderElementController.java @@ -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() { @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() { @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()); } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedTaskQualityFormsToOrderElementModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedTaskQualityFormsToOrderElementModel.java index dd619b160..b37f194dc 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedTaskQualityFormsToOrderElementModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedTaskQualityFormsToOrderElementModel.java @@ -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)); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IAssignedTaskQualityFormsToOrderElementModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IAssignedTaskQualityFormsToOrderElementModel.java index 70367d41e..e737a231e 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IAssignedTaskQualityFormsToOrderElementModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IAssignedTaskQualityFormsToOrderElementModel.java @@ -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.