ItEr35S14CUAdministracionMateriaisItEr34S14: Show error Material code must be unique within a material category

This commit is contained in:
Diego Pino Garcia 2009-11-23 10:47:11 +01:00 committed by Javier Moran Rua
parent 4bfe05639d
commit 60cc1fd5d0

View file

@ -292,17 +292,33 @@ public class MaterialsController extends
private void showInvalidValues(ValidationException validationException) {
final InvalidValue[] invalidValues = validationException.getInvalidValues();
for (InvalidValue each: invalidValues) {
if (each.getBean() instanceof Material) {
final Material material = (Material) each.getBean();
final Object bean = each.getBean();
// Errors related with contraints in Material (not null, etc)
if (bean instanceof Material) {
final Material material = (Material) bean;
showConstraintErrorsFor(material.getCategory());
}
// Unique material in materialCategory
if (bean instanceof MaterialCategory) {
final MaterialCategory materialCategory = (MaterialCategory) bean;
if (locateAndSelectMaterialCategory(materialCategory)) {
messagesForUser.showMessage(Level.ERROR, each.getMessage());
}
}
}
}
private void showConstraintErrorsFor(MaterialCategory materialCategory) {
private boolean locateAndSelectMaterialCategory(MaterialCategory materialCategory) {
Treeitem treeitem = findTreeItemByMaterialCategory(categoriesTree.getRoot(), materialCategory);
if (treeitem != null) {
treeitem.setSelected(true);
return true;
}
return false;
}
private void showConstraintErrorsFor(MaterialCategory materialCategory) {
if (locateAndSelectMaterialCategory(materialCategory)) {
// Load materials for category
final List<Material> materials = getMaterials(materialCategory);