diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/qualityforms/entities/QualityForm.java b/navalplanner-business/src/main/java/org/navalplanner/business/qualityforms/entities/QualityForm.java index 2292b51f5..3fb7bb37f 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/qualityforms/entities/QualityForm.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/qualityforms/entities/QualityForm.java @@ -38,11 +38,12 @@ import org.hibernate.validator.NotNull; import org.hibernate.validator.Valid; import org.navalplanner.business.advance.entities.AdvanceType; import org.navalplanner.business.common.BaseEntity; +import org.navalplanner.business.common.IHumanIdentifiable; import org.navalplanner.business.common.Registry; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.qualityforms.daos.IQualityFormDAO; -public class QualityForm extends BaseEntity { +public class QualityForm extends BaseEntity implements IHumanIdentifiable{ public static final String ADVANCE_TYPE_PREFIX = "QF: "; @@ -409,4 +410,9 @@ public class QualityForm extends BaseEntity { return true; } + @Override + public String getHumanId() { + return name; + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/IQualityFormModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/IQualityFormModel.java index a11183d36..be5e972b0 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/IQualityFormModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/IQualityFormModel.java @@ -23,6 +23,7 @@ package org.navalplanner.web.qualityforms; import java.util.List; +import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.qualityforms.entities.QualityForm; import org.navalplanner.business.qualityforms.entities.QualityFormItem; @@ -37,7 +38,7 @@ public interface IQualityFormModel { * Removes {@link QualityForm} * @param qualityForm */ - void confirmDelete(QualityForm qualityForm); + void confirmDelete(QualityForm qualityForm) throws InstanceNotFoundException; /** * Ends conversation saving current {@link QualityForm} diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormCRUDController.java index b8fd692f6..ce5c3fa81 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormCRUDController.java @@ -28,10 +28,12 @@ import java.util.Iterator; import java.util.List; import org.hibernate.validator.InvalidValue; +import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.qualityforms.entities.QualityForm; import org.navalplanner.business.qualityforms.entities.QualityFormItem; import org.navalplanner.business.qualityforms.entities.QualityFormType; +import org.navalplanner.web.common.BaseCRUDController; import org.navalplanner.web.common.IMessagesForUser; import org.navalplanner.web.common.Level; import org.navalplanner.web.common.MessagesForUser; @@ -59,23 +61,11 @@ import org.zkoss.zul.impl.InputElement; * CRUD Controller for {@link QualityForm} * @author Susana Montes Pedreira */ -public class QualityFormCRUDController extends GenericForwardComposer { +public class QualityFormCRUDController extends BaseCRUDController { @Autowired private IQualityFormModel qualityFormModel; - private Window listWindow; - - private Window editWindow; - - private OnlyOneVisible visibility; - - private IMessagesForUser messagesForUser; - - private IMessagesForUser messagesEditWindow; - - private Component messagesContainer; - private Grid gridQualityForms; private Grid gridQualityFormItems; @@ -93,28 +83,13 @@ public class QualityFormCRUDController extends GenericForwardComposer { @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); - comp.setVariable("controller", this, true); - messagesForUser = new MessagesForUser(messagesContainer); - messagesEditWindow = new MessagesForUser(editWindow - .getFellowIfAny("messagesContainer")); + txtFilter = (Textbox) listWindow.getFellowIfAny("txtFilter"); cbFilterQualityFormName = (Combobox) listWindow .getFellowIfAny("cbFilterQualityFormName"); gridQualityFormItems = (Grid) editWindow .getFellowIfAny("gridQualityFormItems"); gridQualityForms = (Grid) listWindow.getFellowIfAny("qualityFormsList"); - showListWindow(); - } - - private void showListWindow() { - getVisibility().showOnly(listWindow); - } - - private OnlyOneVisible getVisibility() { - if (visibility == null) { - visibility = new OnlyOneVisible(listWindow, editWindow); - } - return visibility; } /** @@ -142,53 +117,14 @@ public class QualityFormCRUDController extends GenericForwardComposer { return qualityFormModel.getQualityFormItems(); } - /** - * Prepare form for Create - */ - public void goToCreateForm() { - qualityFormModel.initCreate(); - editWindow.setTitle(_("Create Quality Form")); - showEditWindow(); - Util.reloadBindings(editWindow); - } - - private void showEditWindow() { - getVisibility().showOnly(editWindow); - } - - /** - * Prepare form for Edit - * @param qualityForm - */ - public void goToEditForm(QualityForm qualityForm) { - qualityFormModel.initEdit(qualityForm); - editWindow.setTitle(_("Edit Quality Form")); - showEditWindow(); - Util.reloadBindings(editWindow); - } - - /** - * Save current {@link QualityForm} and return - */ - public void save() { + @Override + protected void beforeSaving() throws ValidationException { validate(); - try { - qualityFormModel.confirmSave(); - goToList(); - messagesForUser.showMessage(Level.INFO, _("Quality form saved")); - } catch (ValidationException e) { - showInvalidValues(e); - } catch (IllegalStateException e) { - } } - /** - * Show all {@link QualityForm} - */ - private void goToList() { - getVisibility().showOnly(listWindow); - clearFilter(); - Util.reloadBindings(listWindow); + @Override + protected void save() throws ValidationException { + qualityFormModel.confirmSave(); } /** @@ -229,19 +165,6 @@ public class QualityFormCRUDController extends GenericForwardComposer { } } - /** - * Save current {@link QualityForm} and continue - */ - public void saveAndContinue() { - validate(); - try { - qualityFormModel.confirmSave(); - goToEditForm(qualityFormModel.getQualityForm()); - messagesEditWindow.showMessage(Level.INFO, _("Quality form saved")); - } catch (ValidationException e) { - showInvalidValues(e); - } - } private void showInvalidValues(ValidationException e) { for (InvalidValue invalidValue : e.getInvalidValues()) { @@ -297,13 +220,6 @@ public class QualityFormCRUDController extends GenericForwardComposer { return null; } - /** - * Cancel edition - */ - public void close() { - goToList(); - } - public void createQualityFormItem() { qualityFormModel.addQualityFormItem(); Util.reloadBindings(gridQualityFormItems); @@ -364,26 +280,6 @@ public class QualityFormCRUDController extends GenericForwardComposer { Util.reloadBindings(gridQualityFormItems); } - /** - * Pop up confirm remove dialog - * @param QualityForm - */ - public void confirmDelete(QualityForm qualityForm) { - try { - if (Messagebox.show(_("Delete item. Are you sure?"), _("Confirm"), - Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.OK) { - qualityFormModel.confirmDelete(qualityForm); - Grid qualityForms = (Grid) listWindow - .getFellowIfAny("qualityFormsList"); - if (qualityForms != null) { - Util.reloadBindings(qualityForms); - } - } - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } public QualityFormType[] getQualityFormTypes() { return QualityFormType.values(); @@ -423,8 +319,7 @@ public class QualityFormCRUDController extends GenericForwardComposer { item.setName((String)value); if (((String) value == null) || (((String) value)).isEmpty()) { item.setName(null); - throw new WrongValueException(comp, - _("cannot be empty")); + throw new WrongValueException(comp, _("cannot be empty")); } else if (!qualityFormModel .checkConstraintUniqueQualityFormItemName()) { item.setName(null); @@ -539,4 +434,40 @@ public class QualityFormCRUDController extends GenericForwardComposer { reportProgress.invalidate(); } } + + @Override + protected String getEntityType() { + return _("Quality form"); + } + + @Override + protected String getPluralEntityType() { + return _("Quality forms"); + } + + @Override + protected void initCreate() { + qualityFormModel.initCreate(); + } + + + @Override + protected void initEdit(QualityForm qualityForm) { + qualityFormModel.initEdit(qualityForm); + } + + @Override + protected QualityForm getEntityBeingEdited() { + return qualityFormModel.getQualityForm(); + } + + @Override + protected void delete(QualityForm qualityForm) throws InstanceNotFoundException { + qualityFormModel.confirmDelete(qualityForm); + Grid qualityForms = (Grid) listWindow + .getFellowIfAny("qualityFormsList"); + if (qualityForms != null) { + Util.reloadBindings(qualityForms); + } + } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormModel.java index 85b6c525a..e153982fc 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/qualityforms/QualityFormModel.java @@ -83,12 +83,8 @@ public class QualityFormModel implements IQualityFormModel { @Override @Transactional - public void confirmDelete(QualityForm qualityForm) { - try { - qualityFormDAO.remove(qualityForm.getId()); - } catch (InstanceNotFoundException e) { - throw new RuntimeException(); - } + public void confirmDelete(QualityForm qualityForm) throws InstanceNotFoundException { + qualityFormDAO.remove(qualityForm.getId()); } @Override diff --git a/navalplanner-webapp/src/main/webapp/qualityforms/_editQualityForm.zul b/navalplanner-webapp/src/main/webapp/qualityforms/_editQualityForm.zul index 1a4e15028..bde0ca074 100644 --- a/navalplanner-webapp/src/main/webapp/qualityforms/_editQualityForm.zul +++ b/navalplanner-webapp/src/main/webapp/qualityforms/_editQualityForm.zul @@ -41,7 +41,8 @@