ItEr18S13CreacionDeOrganizacionsDeTraballoItEr17S09: validate code the sons of each order element and append the name of the orderline to the message of error
This commit is contained in:
parent
7e0241a15c
commit
4059f70b02
4 changed files with 38 additions and 2 deletions
|
|
@ -2,12 +2,14 @@ package org.navalplanner.business.orders.entities;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.hibernate.validator.Valid;
|
||||
|
||||
public class OrderLineGroup extends OrderElement implements IOrderLineGroup {
|
||||
|
||||
private List<OrderElement> children = new ArrayList<OrderElement>();
|
||||
|
||||
@Override
|
||||
@Valid
|
||||
public List<OrderElement> getChildren() {
|
||||
return new ArrayList<OrderElement>(children);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,12 +2,18 @@ package org.navalplanner.web.common;
|
|||
|
||||
import org.hibernate.validator.InvalidValue;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
|
||||
/**
|
||||
* Defines the ways in which information messages can be shown to the user <br />
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
*/
|
||||
public interface IMessagesForUser {
|
||||
public interface ICustomLabelCreator{
|
||||
public Component createLabelFor(InvalidValue invalidValue);
|
||||
}
|
||||
|
||||
void invalidValue(InvalidValue invalidValue, ICustomLabelCreator customLabelCreator);
|
||||
|
||||
void invalidValue(InvalidValue invalidValue);
|
||||
|
||||
|
|
@ -17,4 +23,6 @@ public interface IMessagesForUser {
|
|||
|
||||
void showInvalidValues(ValidationException e);
|
||||
|
||||
void showInvalidValues(ValidationException e, ICustomLabelCreator customLabelCreator);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import java.util.concurrent.ConcurrentLinkedQueue;
|
|||
import org.apache.commons.lang.StringUtils;
|
||||
import org.hibernate.validator.InvalidValue;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.event.Event;
|
||||
import org.zkoss.zk.ui.event.EventListener;
|
||||
|
|
@ -92,12 +93,17 @@ public class MessagesForUser extends GenericForwardComposer implements
|
|||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidValue(InvalidValue invalidValue, ICustomLabelCreator customLabelCreator) {
|
||||
addMessage(customLabelCreator.createLabelFor(invalidValue));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidValue(InvalidValue invalidValue) {
|
||||
addMessage(createLabelFor(invalidValue));
|
||||
}
|
||||
|
||||
private Component createLabelFor(InvalidValue invalidValue) {
|
||||
private Component createLabelFor(InvalidValue invalidValue){
|
||||
Label result = new Label();
|
||||
result.setValue(invalidValue.getPropertyName() + ": "
|
||||
+ invalidValue.getMessage());
|
||||
|
|
@ -141,4 +147,11 @@ public class MessagesForUser extends GenericForwardComposer implements
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showInvalidValues(ValidationException e, ICustomLabelCreator customLabelCreator) {
|
||||
for (InvalidValue invalidValue : e.getInvalidValues()) {
|
||||
invalidValue(invalidValue, customLabelCreator);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,11 @@ package org.navalplanner.web.orders;
|
|||
import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.hibernate.validator.InvalidValue;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.orders.entities.IOrderLineGroup;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.web.common.IMessagesForUser;
|
||||
import org.navalplanner.web.common.Level;
|
||||
import org.navalplanner.web.common.MessagesForUser;
|
||||
|
|
@ -14,6 +16,7 @@ import org.navalplanner.web.common.Util;
|
|||
import org.navalplanner.web.planner.IOrderPlanningControllerEntryPoints;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
||||
import org.zkoss.zul.Label;
|
||||
import org.zkoss.zul.api.Window;
|
||||
|
||||
/**
|
||||
|
|
@ -69,7 +72,17 @@ public class OrderCRUDController extends GenericForwardComposer {
|
|||
messagesForUser.showMessage(Level.INFO, "order saved");
|
||||
goToList();
|
||||
} catch (ValidationException e) {
|
||||
messagesForUser.showInvalidValues(e);
|
||||
messagesForUser.showInvalidValues(e, new IMessagesForUser.ICustomLabelCreator() {
|
||||
|
||||
@Override
|
||||
public Component createLabelFor(InvalidValue invalidValue) {
|
||||
Label result= new Label();
|
||||
String orderElementName = ((OrderElement)invalidValue.getBean()).getName();
|
||||
result.setValue(orderElementName+" "+invalidValue.getPropertyName() + ": "
|
||||
+ invalidValue.getMessage());
|
||||
return result;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue