Adapted WorkReportTypeCRUDController in order to extend BaseCRUDController
FEA: ItEr75S14ShowInformationEditedEntity
This commit is contained in:
parent
fe288512c6
commit
7f4d7ffb38
5 changed files with 77 additions and 113 deletions
|
|
@ -30,6 +30,7 @@ import org.hibernate.NonUniqueResultException;
|
|||
import org.hibernate.validator.AssertTrue;
|
||||
import org.hibernate.validator.NotEmpty;
|
||||
import org.hibernate.validator.Valid;
|
||||
import org.navalplanner.business.common.IHumanIdentifiable;
|
||||
import org.navalplanner.business.common.IntegrationEntity;
|
||||
import org.navalplanner.business.common.Registry;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
|
|
@ -42,7 +43,7 @@ import org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureExcep
|
|||
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
|
||||
*/
|
||||
|
||||
public class WorkReportType extends IntegrationEntity {
|
||||
public class WorkReportType extends IntegrationEntity implements IHumanIdentifiable{
|
||||
|
||||
public static WorkReportType create() {
|
||||
return create(new WorkReportType());
|
||||
|
|
@ -517,4 +518,8 @@ public class WorkReportType extends IntegrationEntity {
|
|||
return Registry.getWorkReportTypeDAO();
|
||||
}
|
||||
|
||||
}
|
||||
@Override
|
||||
public String getHumanId() {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
|
@ -29,6 +29,8 @@ import java.util.Map;
|
|||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.labels.entities.Label;
|
||||
import org.navalplanner.business.labels.entities.LabelType;
|
||||
import org.navalplanner.business.workreports.entities.HoursManagementEnum;
|
||||
|
|
@ -36,11 +38,11 @@ import org.navalplanner.business.workreports.entities.PositionInWorkReportEnum;
|
|||
import org.navalplanner.business.workreports.entities.WorkReportLabelTypeAssigment;
|
||||
import org.navalplanner.business.workreports.entities.WorkReportType;
|
||||
import org.navalplanner.business.workreports.valueobjects.DescriptionField;
|
||||
import org.navalplanner.web.common.BaseCRUDController;
|
||||
import org.navalplanner.web.common.EnumsListitemRenderer;
|
||||
import org.navalplanner.web.common.IMessagesForUser;
|
||||
import org.navalplanner.web.common.Level;
|
||||
import org.navalplanner.web.common.MessagesForUser;
|
||||
import org.navalplanner.web.common.OnlyOneVisible;
|
||||
import org.navalplanner.web.common.Util;
|
||||
import org.navalplanner.web.common.components.Autocomplete;
|
||||
import org.navalplanner.web.common.components.NewDataSortableGrid;
|
||||
|
|
@ -52,7 +54,6 @@ import org.zkoss.zk.ui.event.CheckEvent;
|
|||
import org.zkoss.zk.ui.event.Event;
|
||||
import org.zkoss.zk.ui.event.EventListener;
|
||||
import org.zkoss.zk.ui.event.Events;
|
||||
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
||||
import org.zkoss.zul.Button;
|
||||
import org.zkoss.zul.Column;
|
||||
import org.zkoss.zul.Combobox;
|
||||
|
|
@ -78,18 +79,12 @@ import org.zkoss.zul.api.Window;
|
|||
*
|
||||
* @author Manuel Rego Casasnovas <mrego@igalia.com>
|
||||
*/
|
||||
public class WorkReportTypeCRUDController extends GenericForwardComposer
|
||||
public class WorkReportTypeCRUDController extends BaseCRUDController<WorkReportType>
|
||||
implements IWorkReportTypeCRUDControllerEntryPoints {
|
||||
|
||||
private static final org.apache.commons.logging.Log LOG = LogFactory
|
||||
.getLog(WorkReportTypeCRUDController.class);
|
||||
|
||||
private Window listWindow;
|
||||
|
||||
private Window createWindow;
|
||||
|
||||
private Window editWindow;
|
||||
|
||||
private NewDataSortableGrid listDescriptionFields;
|
||||
|
||||
private NewDataSortableGrid listWorkReportLabelTypeAssigments;
|
||||
|
|
@ -110,12 +105,6 @@ public class WorkReportTypeCRUDController extends GenericForwardComposer
|
|||
|
||||
private IWorkReportTypeModel workReportTypeModel;
|
||||
|
||||
private OnlyOneVisible visibility;
|
||||
|
||||
private IMessagesForUser messagesForUser;
|
||||
|
||||
private Component messagesContainer;
|
||||
|
||||
private IWorkReportCRUDControllerEntryPoints workReportCRUD;
|
||||
|
||||
private IURLHandlerRegistry URLHandlerRegistry;
|
||||
|
|
@ -137,79 +126,19 @@ public class WorkReportTypeCRUDController extends GenericForwardComposer
|
|||
@Override
|
||||
public void doAfterCompose(Component comp) throws Exception {
|
||||
super.doAfterCompose(comp);
|
||||
messagesForUser = new MessagesForUser(messagesContainer);
|
||||
comp.setVariable("controller", this, true);
|
||||
final EntryPointsHandler<IWorkReportTypeCRUDControllerEntryPoints> handler = URLHandlerRegistry
|
||||
.getRedirectorFor(IWorkReportTypeCRUDControllerEntryPoints.class);
|
||||
handler.register(this, page);
|
||||
getVisibility().showOnly(listWindow);
|
||||
}
|
||||
|
||||
public void saveAndContinue() {
|
||||
save();
|
||||
goToEditForm(getWorkReportType());
|
||||
@Override
|
||||
protected void save() throws ValidationException {
|
||||
workReportTypeModel.save();
|
||||
}
|
||||
|
||||
public void saveAndExit() {
|
||||
final boolean couldSave = save();
|
||||
if (couldSave) {
|
||||
goToList();
|
||||
}
|
||||
}
|
||||
|
||||
public void cancel() {
|
||||
goToList();
|
||||
}
|
||||
|
||||
public void goToList() {
|
||||
this.workReportTypeModel.setListing(true);
|
||||
Util.reloadBindings(listWindow);
|
||||
getVisibility().showOnly(listWindow);
|
||||
}
|
||||
|
||||
public void goToEditForm(WorkReportType workReportType) {
|
||||
workReportTypeModel.initEdit(workReportType);
|
||||
getVisibility().showOnly(editWindow);
|
||||
loadComponents(editWindow);
|
||||
Util.reloadBindings(editWindow);
|
||||
}
|
||||
|
||||
public boolean save() {
|
||||
if (isAllValid()) {
|
||||
workReportTypeModel.save();
|
||||
messagesForUser.showMessage(Level.INFO, _("Work report type saved"));
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void confirmRemove(WorkReportType workReportType) {
|
||||
if (thereAreWorkReportsFor(workReportType)) {
|
||||
try {
|
||||
Messagebox.show(_("Cannot delete work report type. There are some work reports bound to it."),
|
||||
_("Warning"), Messagebox.OK, Messagebox.EXCLAMATION);
|
||||
} catch (InterruptedException e) {
|
||||
LOG.error(_("Error on showing warning message removing workReportType: ", workReportType.getId()), e);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Show remove confirming window
|
||||
try {
|
||||
if (Messagebox.show(_("Delete item. Are you sure?"), _("Confirm"),
|
||||
Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION) == Messagebox.OK) {
|
||||
workReportTypeModel.confirmRemove(workReportType);
|
||||
final Grid workReportTypes = (Grid) listWindow.getFellowIfAny("listing");
|
||||
if (workReportTypes != null) {
|
||||
Util.reloadBindings(workReportTypes);
|
||||
}
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
messagesForUser.showMessage(
|
||||
Level.ERROR, e.getMessage());
|
||||
LOG.error(_("Error on removing workReportType: ", workReportType.getId()), e);
|
||||
}
|
||||
@Override
|
||||
protected void beforeSaving() throws ValidationException {
|
||||
isAllValid();
|
||||
}
|
||||
|
||||
private boolean thereAreWorkReportsFor(WorkReportType workReportType) {
|
||||
|
|
@ -224,27 +153,6 @@ public class WorkReportTypeCRUDController extends GenericForwardComposer
|
|||
return (!thereAreWorkReportsFor(getWorkReportType()));
|
||||
}
|
||||
|
||||
public void goToEditForm() {
|
||||
getVisibility().showOnly(editWindow);
|
||||
loadComponents(editWindow);
|
||||
Util.reloadBindings(editWindow);
|
||||
}
|
||||
|
||||
public void goToCreateForm() {
|
||||
workReportTypeModel.prepareForCreate();
|
||||
getVisibility().showOnly(createWindow);
|
||||
loadComponents(createWindow);
|
||||
Util.reloadBindings(createWindow);
|
||||
}
|
||||
|
||||
private OnlyOneVisible getVisibility() {
|
||||
if (visibility == null) {
|
||||
visibility = new OnlyOneVisible(listWindow, createWindow,
|
||||
editWindow);
|
||||
}
|
||||
return visibility;
|
||||
}
|
||||
|
||||
private void loadComponents(Window window) {
|
||||
if (!window.equals(listWindow)) {
|
||||
name = (Textbox) window.getFellow("name");
|
||||
|
|
@ -922,7 +830,7 @@ public class WorkReportTypeCRUDController extends GenericForwardComposer
|
|||
type = _("Text field");
|
||||
} else {
|
||||
if((((WorkReportLabelTypeAssigment) data)
|
||||
.getLabelType() != null)
|
||||
.getLabelType() != null)
|
||||
&& (((WorkReportLabelTypeAssigment) data)
|
||||
.getDefaultLabel() != null)) {
|
||||
String labelType = ((WorkReportLabelTypeAssigment) data)
|
||||
|
|
@ -1029,4 +937,58 @@ public class WorkReportTypeCRUDController extends GenericForwardComposer
|
|||
}
|
||||
Util.reloadBindings(code);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getEntityType() {
|
||||
return _("Work Report Type");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getPluralEntityType() {
|
||||
return _("Work Report Types");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initCreate() {
|
||||
workReportTypeModel.prepareForCreate();
|
||||
loadComponents(editWindow);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initEdit(WorkReportType workReportType) {
|
||||
workReportTypeModel.initEdit(workReportType);
|
||||
loadComponents(editWindow);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected WorkReportType getEntityBeingEdited() {
|
||||
return workReportTypeModel.getWorkReportType();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean beforeDeleting(WorkReportType workReportType) {
|
||||
if (thereAreWorkReportsFor(workReportType)) {
|
||||
try {
|
||||
Messagebox
|
||||
.show(_("Cannot delete work report type. There are some work reports bound to it."),
|
||||
_("Warning"), Messagebox.OK, Messagebox.EXCLAMATION);
|
||||
} catch (InterruptedException e) {
|
||||
LOG.error(
|
||||
_("Error on showing warning message removing workReportType: ",
|
||||
workReportType.getHumanId()), e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void delete(WorkReportType workReportType)
|
||||
throws InstanceNotFoundException {
|
||||
workReportTypeModel.confirmRemove(workReportType);
|
||||
final Grid workReportTypes = (Grid) listWindow.getFellowIfAny("listing");
|
||||
if (workReportTypes != null) {
|
||||
Util.reloadBindings(workReportTypes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,8 @@
|
|||
<hbox>
|
||||
<textbox visible = "@{controller.editable}"
|
||||
id="name" value="@{controller.workReportType.name}" width="300px"
|
||||
constraint = "@{controller.validateWorkReportTypeName}" />
|
||||
constraint = "@{controller.validateWorkReportTypeName}"
|
||||
onBlur="controller.updateWindowTitle()" />
|
||||
<label visible = "@{controller.readOnly}"
|
||||
value="@{controller.workReportType.name}" width="300px"/>
|
||||
</hbox>
|
||||
|
|
@ -180,11 +181,11 @@
|
|||
label="${arg.saveAndContinue_button_label}"
|
||||
sclass="saveandcontinue-button global-action" />
|
||||
<button visible = "@{controller.editable}"
|
||||
onClick="controller.cancel();"
|
||||
onClick="controller.cancelForm();"
|
||||
label="${arg.cancel_button_label}"
|
||||
sclass="cancel-button global-action"/>
|
||||
<button visible = "@{controller.readOnly}"
|
||||
onClick="controller.cancel();"
|
||||
onClick="controller.cancelForm();"
|
||||
label="${i18n:_('Close')}"
|
||||
sclass="cancel-button global-action"/>
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
<button sclass="icono" image="/common/img/ico_borrar1.png"
|
||||
hoverImage="/common/img/ico_borrar.png"
|
||||
tooltiptext="${i18n:_('Delete')}"
|
||||
onClick="controller.confirmRemove(self.parent.parent.value);">
|
||||
onClick="controller.confirmDelete(self.parent.parent.value);">
|
||||
</button>
|
||||
|
||||
<button label="${i18n:_('New work report')}"
|
||||
|
|
|
|||
|
|
@ -33,10 +33,6 @@
|
|||
apply="org.navalplanner.web.workreports.WorkReportTypeCRUDController">
|
||||
<vbox id="messagesContainer"></vbox>
|
||||
<list top_id="listWindow" />
|
||||
<edition top_id="createWindow" title="${i18n:_('Create Work Report Type')}"
|
||||
save_button_label="${i18n:_('Save')}"
|
||||
saveAndContinue_button_label="${i18n:_('Save & Continue')}"
|
||||
cancel_button_label="${i18n:_('Cancel')}" />
|
||||
<edition top_id="editWindow" title="${i18n:_('Edit Work Report Type')}"
|
||||
save_button_label="${i18n:_('Save')}"
|
||||
saveAndContinue_button_label="${i18n:_('Save & Continue')}"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue