ItEr41S20CUGravacionModelosUnidadesTraballoItEr40S25: Adding edition form with save and cancel buttons
This commit is contained in:
parent
d30bad1994
commit
679d5a8c49
6 changed files with 154 additions and 5 deletions
|
|
@ -113,15 +113,35 @@ public abstract class OrderElementTemplate extends BaseEntity {
|
|||
return startAsDaysFromBeginning;
|
||||
}
|
||||
|
||||
public void setStartAsDaysFromBeginning(Integer days) {
|
||||
this.startAsDaysFromBeginning = days;
|
||||
}
|
||||
|
||||
public void setDeadlineAsDaysFromBeginning(Integer days) {
|
||||
this.deadlineAsDaysFromBeginning = days;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return getInfoComponent().getCode();
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
getInfoComponent().setCode(code);
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return getInfoComponent().getDescription();
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
getInfoComponent().setDescription(description);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return getInfoComponent().getName();
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
getInfoComponent().setName(name);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,5 +32,9 @@ public interface IOrderTemplatesModel {
|
|||
|
||||
List<OrderElementTemplate> getTemplates();
|
||||
|
||||
OrderElementTemplate createTemplateFrom(OrderElement orderElement);
|
||||
void createTemplateFrom(OrderElement orderElement);
|
||||
|
||||
OrderElementTemplate getTemplate();
|
||||
|
||||
void confirmSave();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,17 +19,21 @@
|
|||
*/
|
||||
package org.navalplanner.web.templates;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.templates.entities.OrderElementTemplate;
|
||||
import org.navalplanner.web.common.OnlyOneVisible;
|
||||
import org.navalplanner.web.common.Util;
|
||||
import org.navalplanner.web.common.entrypoints.IURLHandlerRegistry;
|
||||
import org.navalplanner.web.common.entrypoints.URLHandler;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.Executions;
|
||||
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
||||
import org.zkoss.zul.Window;
|
||||
|
||||
|
|
@ -49,6 +53,8 @@ public class OrderTemplatesController extends GenericForwardComposer implements
|
|||
|
||||
private Window listWindow;
|
||||
|
||||
private Window editWindow;
|
||||
|
||||
@Autowired
|
||||
private IURLHandlerRegistry handlerRegistry;
|
||||
|
||||
|
|
@ -63,9 +69,48 @@ public class OrderTemplatesController extends GenericForwardComposer implements
|
|||
return cachedOnlyOneVisible;
|
||||
}
|
||||
|
||||
public OrderElementTemplate getTemplate() {
|
||||
return model.getTemplate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToCreateTemplateFrom(OrderElement orderElement) {
|
||||
OrderElementTemplate template = model.createTemplateFrom(orderElement);
|
||||
model.createTemplateFrom(orderElement);
|
||||
show(getEditWindow());
|
||||
}
|
||||
|
||||
private void show(Component window) {
|
||||
Util.reloadBindings(window);
|
||||
getVisibility().showOnly(window);
|
||||
}
|
||||
|
||||
private Component getEditWindow() {
|
||||
if (editWindow == null) {
|
||||
editWindow = (Window) Executions.createComponents(
|
||||
"/templates/_edition.zul", self, topId("editWindow"));
|
||||
Util.createBindingsFor(editWindow);
|
||||
Util.reloadBindings(editWindow);
|
||||
}
|
||||
return editWindow;
|
||||
}
|
||||
|
||||
public void saveAndExit() {
|
||||
model.confirmSave();
|
||||
show(listWindow);
|
||||
}
|
||||
|
||||
public void cancel() {
|
||||
show(listWindow);
|
||||
}
|
||||
|
||||
public void saveAndContinue() {
|
||||
model.confirmSave();
|
||||
}
|
||||
|
||||
private Map<String, Object> topId(String value) {
|
||||
Map<String, Object> arguments = new HashMap<String, Object>();
|
||||
arguments.put("top_id", value);
|
||||
return arguments;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -45,19 +45,31 @@ public class OrderTemplatesModel implements IOrderTemplatesModel {
|
|||
@Autowired
|
||||
private IOrderElementTemplateDAO dao;
|
||||
|
||||
private OrderElementTemplate template;
|
||||
|
||||
@Override
|
||||
public List<OrderElementTemplate> getTemplates() {
|
||||
return dao.list(OrderElementTemplate.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderElementTemplate getTemplate() {
|
||||
return template;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void confirmSave() {
|
||||
dao.save(template);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public OrderElementTemplate createTemplateFrom(OrderElement orderElement) {
|
||||
public void createTemplateFrom(OrderElement orderElement) {
|
||||
loadParentsInOrderToAvoidProxies(orderElement);
|
||||
OrderElement reloaded = orderElementDAO
|
||||
.findExistingEntity(orderElement.getId());
|
||||
OrderElementTemplate result = reloaded.createTemplate();
|
||||
return result;
|
||||
template = reloaded.createTemplate();
|
||||
}
|
||||
|
||||
private void loadParentsInOrderToAvoidProxies(OrderElement orderElement) {
|
||||
|
|
|
|||
67
navalplanner-webapp/src/main/webapp/templates/_edition.zul
Normal file
67
navalplanner-webapp/src/main/webapp/templates/_edition.zul
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
<!--
|
||||
This file is part of ###PROJECT_NAME###
|
||||
|
||||
Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
|
||||
Desenvolvemento Tecnolóxico de Galicia
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<window id="${arg.top_id}">
|
||||
<tabbox>
|
||||
<tabs>
|
||||
<tab id="tabGeneralData" label="${i18n:_('General data')}" />
|
||||
</tabs>
|
||||
<tabpanels>
|
||||
<tabpanel>
|
||||
<grid fixedLayout="true">
|
||||
<columns>
|
||||
<column width="200px" />
|
||||
<column />
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="${i18n:_('Name')}" />
|
||||
<textbox value="@{templateController.template.name}" width="500px"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Code')}" />
|
||||
<hbox>
|
||||
<textbox value="@{templateController.template.code}" width="250px" />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Days from Beginning to Start')}" />
|
||||
<intbox
|
||||
value="@{templateController.template.startAsDaysFromBeginning}" constraint="no negative"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Days from Beginning to Deadline')}" />
|
||||
<intbox
|
||||
value="@{templateController.template.deadlineAsDaysFromBeginning}" constraint="no negative"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</tabpanel>
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
<hbox>
|
||||
<button label="${i18n:_('Save')}" onClick="templateController.saveAndExit()"
|
||||
sclass="save-button global-action" />
|
||||
<button label="${i18n:_('Save & Continue')}" onClick="templateController.saveAndContinue()"
|
||||
sclass="saveandcontinue-button global-action" />
|
||||
<button label="${i18n:_('Cancel')}" onClick="templateController.cancel()"
|
||||
sclass="cancel-button global-action" />
|
||||
</hbox>
|
||||
</window>
|
||||
|
|
@ -26,6 +26,7 @@
|
|||
<?taglib uri="/WEB-INF/tld/i18n.tld" prefix="i18n"?>
|
||||
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
|
||||
<?component name="list" inline="true" macroURI="_list.zul"?>
|
||||
<?component name="edition" inline="true" macroURI="_list.zul"?>
|
||||
<zk>
|
||||
<zscript><![CDATA[
|
||||
templateController = orderTemplatesController;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue