diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/IMachineModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/IMachineModel.java index 887e4a993..d4a9961c5 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/IMachineModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/IMachineModel.java @@ -22,6 +22,7 @@ package org.navalplanner.web.resources.machine; import java.util.List; +import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.resources.entities.Machine; /* @@ -29,6 +30,12 @@ import org.navalplanner.business.resources.entities.Machine; */ public interface IMachineModel { + Machine getMachine(); + List getMachines(); + void initCreate(); + + void confirmSave() throws ValidationException; + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java index d9a49dddb..cb4abcd17 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java @@ -24,6 +24,7 @@ import static org.navalplanner.web.I18nHelper._; import java.util.List; +import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.resources.entities.Machine; import org.navalplanner.web.common.IMessagesForUser; import org.navalplanner.web.common.Level; @@ -80,7 +81,7 @@ public class MachineCRUDController extends GenericForwardComposer { } public void goToCreateForm() { - // entity.initCreate(); + machineModel.initCreate(); editWindow.setTitle(_("Create machine")); showEditWindow(); Util.reloadBindings(editWindow); @@ -99,9 +100,13 @@ public class MachineCRUDController extends GenericForwardComposer { public void save() { validate(); - // model.confirmSave(); - goToList(); - messagesForUser.showMessage(Level.INFO, _("Machine saved")); + try { + machineModel.confirmSave(); + goToList(); + messagesForUser.showMessage(Level.INFO, _("Machine saved")); + } catch (ValidationException e) { + e.printStackTrace(); + } } private void validate() { @@ -113,7 +118,7 @@ public class MachineCRUDController extends GenericForwardComposer { Util.reloadBindings(listWindow); } - public void close() { + public void cancel() { goToList(); } @@ -121,4 +126,8 @@ public class MachineCRUDController extends GenericForwardComposer { return machineModel.getMachines(); } + public Machine getMachine() { + return machineModel.getMachine(); + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java index 5a24c0b9d..efe137b3b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java @@ -22,7 +22,11 @@ package org.navalplanner.web.resources.machine; import java.util.List; +import org.hibernate.validator.ClassValidator; +import org.hibernate.validator.InvalidValue; +import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.resources.daos.IMachineDAO; +import org.navalplanner.business.resources.daos.IResourceDAO; import org.navalplanner.business.resources.entities.Machine; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; @@ -37,13 +41,40 @@ import org.springframework.transaction.annotation.Transactional; @Scope(BeanDefinition.SCOPE_PROTOTYPE) public class MachineModel implements IMachineModel { + @Autowired + IResourceDAO resourceDAO; + @Autowired IMachineDAO machineDAO; + private Machine machine; + + private ClassValidator validator = new ClassValidator(Machine.class); + + @Override + public void initCreate() { + machine = Machine.create(); + } + @Override @Transactional(readOnly = true) public List getMachines() { return machineDAO.getAll(); } + @Override + public Machine getMachine() { + return machine; + } + + @Override + @Transactional + public void confirmSave() throws ValidationException { + InvalidValue[] invalidValues = validator.getInvalidValues(getMachine()); + if (invalidValues.length > 0) { + throw new ValidationException(invalidValues); + } + resourceDAO.save(machine); + } + } diff --git a/navalplanner-webapp/src/main/webapp/resources/machine/_editMachine.zul b/navalplanner-webapp/src/main/webapp/resources/machine/_editMachine.zul new file mode 100644 index 000000000..2e9cbbe33 --- /dev/null +++ b/navalplanner-webapp/src/main/webapp/resources/machine/_editMachine.zul @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +