/* * Hurraa is a web application conceived to manage resources * in companies that need manage IT resources. Create issues * and purchase IT materials. Copyright (C) 2014 CEJUG. * * Hurraa is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Hurraa is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Hurraa. If not, see http://www.gnu.org/licenses/gpl-3.0.html. * */ package org.cejug.hurraa.controller; import java.text.DateFormat; import java.util.ResourceBundle; import javax.inject.Inject; import javax.validation.Valid; import org.cejug.hurraa.model.Equipment; import org.cejug.hurraa.model.bean.EquipmentBean; import org.cejug.hurraa.model.bean.EquipmentModelBean; import org.cejug.hurraa.producer.ValidationMessages; import org.cejug.hurraa.validation.Unique; import br.com.caelum.vraptor.Controller; import br.com.caelum.vraptor.Get; import br.com.caelum.vraptor.Path; import br.com.caelum.vraptor.Post; import br.com.caelum.vraptor.Result; import br.com.caelum.vraptor.validator.SimpleMessage; import br.com.caelum.vraptor.validator.Validator; @Path("equipment") @Controller public class EquipmentController { private Result result; private EquipmentBean equipmentBean; private EquipmentModelBean equipmentModelBean; private ResourceBundle validationBundle; private ResourceBundle messagesBundle; @Deprecated public EquipmentController() {}; @Inject public EquipmentController(Result result, EquipmentBean equipmentBean, EquipmentModelBean equipmentModelBean, ResourceBundle messagesBundle , @ValidationMessages ResourceBundle validationBundle) { this.result = result; this.equipmentBean = equipmentBean; this.equipmentModelBean = equipmentModelBean; this.validationBundle = validationBundle; this.messagesBundle = messagesBundle; } @Path(value = { "", "/" }) public void index() { result.forwardTo(EquipmentController.class).list(); } @Path("form") public void form() { result.include("models" , equipmentModelBean.findAll() ); } @Path("form/{id}") public void form(Long id) { Equipment equipment = equipmentBean.findById(id); result.include( equipment ); result.include("models" , equipmentModelBean.findAll() ); } @Post("insert") public void insert(@Valid @Unique(propertyName = "serialId" , identityPropertyName="id" , entityClass =Equipment.class ) Equipment equipment, Validator validator ) { verifyIfSelectedEquipmentModel(equipment, validator); validator.onErrorForwardTo( EquipmentController.class ).form(); equipmentBean.insert(equipment); result.include("message", messagesBundle.getString("insert.success") ); result.redirectTo(EquipmentController.class).list(); } @Get("list") public void list() { result.include("equipments", equipmentBean.findAll()); } @Post @Path("update") public void update(@Valid @Unique(propertyName = "serialId" , identityPropertyName="id" , entityClass =Equipment.class ) Equipment equipment, Validator validator) { verifyIfSelectedEquipmentModel(equipment, validator); validator.onErrorForwardTo( EquipmentController.class ).form(); equipmentBean.update(equipment); result.redirectTo(EquipmentController.class).list(); } @Path("delete/{equipment.id}") public void delete(Equipment equipment) { equipmentBean.delete(equipment); result.redirectTo(EquipmentController.class).list(); } protected void verifyIfSelectedEquipmentModel(Equipment equipment, Validator validator ){ if(equipment.getEquipmentModel() == null || equipment.getEquipmentModel().getId() == null) { validator.add( new SimpleMessage( "equipment.equipmentModel.id" , validationBundle.getString("equipment.equipmentModel.required") ) ); } } }