ItEr17S13CUConfiguracionDeOrganizacionsDeTraballoConUnidadesTraballoItEr15S11: Using a Window instead of a Popup for edit an OrderElement.

This commit is contained in:
Manuel Rego Casasnovas 2009-07-14 10:00:50 +02:00 committed by Javier Moran Rua
parent 2d4626df2e
commit 5752c205fb
5 changed files with 49 additions and 42 deletions

View file

@ -180,7 +180,7 @@ public class OrderCRUDController extends GenericForwardComposer {
OrderElementController orderElementController = new OrderElementController(); OrderElementController orderElementController = new OrderElementController();
orderElementController.doAfterCompose(comp orderElementController.doAfterCompose(comp
.getFellow("editOrderElementPopup")); .getFellow("editOrderElement"));
setupOrderElementTreeController(comp, "editWindow", setupOrderElementTreeController(comp, "editWindow",
orderElementController); orderElementController);

View file

@ -17,6 +17,7 @@ import org.navalplanner.business.resources.entities.Criterion;
import org.navalplanner.business.resources.entities.CriterionType; import org.navalplanner.business.resources.entities.CriterionType;
import org.navalplanner.web.common.Util; import org.navalplanner.web.common.Util;
import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.SuspendNotAllowedException;
import org.zkoss.zk.ui.WrongValueException; import org.zkoss.zk.ui.WrongValueException;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.EventListener;
@ -31,8 +32,8 @@ import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listheader; import org.zkoss.zul.Listheader;
import org.zkoss.zul.Listitem; import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer; import org.zkoss.zul.ListitemRenderer;
import org.zkoss.zul.Popup;
import org.zkoss.zul.Vbox; import org.zkoss.zul.Vbox;
import org.zkoss.zul.Window;
import org.zkoss.zul.api.Listhead; import org.zkoss.zul.api.Listhead;
/** /**
@ -48,9 +49,9 @@ public class OrderElementController extends GenericForwardComposer {
private IOrderElementModel model; private IOrderElementModel model;
/** /**
* {@link Popup} where {@link OrderElement} edition form is showed * {@link Window} where {@link OrderElement} edition form is showed
*/ */
private Popup popup; private Window window;
/** /**
* {@link Listitem} for every {@link HoursGroup} * {@link Listitem} for every {@link HoursGroup}
@ -152,17 +153,17 @@ public class OrderElementController extends GenericForwardComposer {
super.doAfterCompose(comp); super.doAfterCompose(comp);
comp.setVariable("orderElementController", this, true); comp.setVariable("orderElementController", this, true);
popup = (Popup) comp; window = (Window) comp;
} }
/** /**
* Open the popup to edit a {@link OrderElement}. If it's a * Open the window to edit a {@link OrderElement}. If it's a
* {@link OrderLineGroup} less fields will be enabled. * {@link OrderLineGroup} less fields will be enabled.
* *
* @param orderElement * @param orderElement
* The {@link OrderElement} to be edited * The {@link OrderElement} to be edited
*/ */
public void openPopup(IOrderElementModel model) { public void openWindow(IOrderElementModel model) {
this.model = model; this.model = model;
@ -171,31 +172,31 @@ public class OrderElementController extends GenericForwardComposer {
// If is a container // If is a container
if (orderElement instanceof OrderLineGroup) { if (orderElement instanceof OrderLineGroup) {
// Disable fields just used in the OrderLine // Disable fields just used in the OrderLine
((Intbox) popup.getFellow("totalHours")).setDisabled(true); ((Intbox) window.getFellow("totalHours")).setDisabled(true);
// Hide not needed buttons // Hide not needed buttons
popup.getFellow("manageCriterions").setVisible(false); window.getFellow("manageCriterions").setVisible(false);
popup.getFellow("addHoursGroup").setVisible(false); window.getFellow("addHoursGroup").setVisible(false);
popup.getFellow("deleteHoursGroup").setVisible(false); window.getFellow("deleteHoursGroup").setVisible(false);
} else { } else {
// Enable fields just used in the OrderLine // Enable fields just used in the OrderLine
((Intbox) popup.getFellow("totalHours")).setDisabled(false); ((Intbox) window.getFellow("totalHours")).setDisabled(false);
// Show needed buttons // Show needed buttons
popup.getFellow("manageCriterions").setVisible(true); window.getFellow("manageCriterions").setVisible(true);
popup.getFellow("addHoursGroup").setVisible(true); window.getFellow("addHoursGroup").setVisible(true);
popup.getFellow("deleteHoursGroup").setVisible(true); window.getFellow("deleteHoursGroup").setVisible(true);
// Add EventListener to reload the popup when the value change // Add EventListener to reload the window when the value change
popup.getFellow("totalHours").addEventListener(Events.ON_CHANGE, window.getFellow("totalHours").addEventListener(Events.ON_CHANGE,
new EventListener() { new EventListener() {
@Override @Override
public void onEvent(Event event) throws Exception { public void onEvent(Event event) throws Exception {
Util.reloadBindings(popup); Util.reloadBindings(window);
} }
}); });
((Intbox) popup.getFellow("totalHours")) ((Intbox) window.getFellow("totalHours"))
.setConstraint(new Constraint() { .setConstraint(new Constraint() {
@Override @Override
@ -213,25 +214,30 @@ public class OrderElementController extends GenericForwardComposer {
// selectCriterions Vbox is always hidden // selectCriterions Vbox is always hidden
reloadSelectedCriterionTypes(); reloadSelectedCriterionTypes();
popup.getFellow("selectCriterions").setVisible(false); window.getFellow("selectCriterions").setVisible(false);
popup.getFellow("hoursGroupsListbox").invalidate(); window.getFellow("hoursGroupsListbox").invalidate();
Util.reloadBindings(popup); Util.reloadBindings(window);
// Review this positioning parameters (popup.getParent(), "start-after"); try {
popup.open(150, 150); window.doModal();
} catch (SuspendNotAllowedException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
reloadSelectedCriterionTypes(); reloadSelectedCriterionTypes();
} }
/** /**
* Just close the {@link Popup} and refresh parent status. Save actions are * Just close the {@link Window} and refresh parent status. Save actions are
* managed by "save-when" at .zul file. * managed by "save-when" at .zul file.
*/ */
public void back() { public void back() {
popup.close(); window.setVisible(false);
Util.reloadBindings(popup.getParent()); Util.reloadBindings(window.getParent());
} }
/** /**
@ -246,7 +252,7 @@ public class OrderElementController extends GenericForwardComposer {
orderLine.addHoursGroup(hoursGroup); orderLine.addHoursGroup(hoursGroup);
Util.reloadBindings(popup); Util.reloadBindings(window);
} }
/** /**
@ -265,14 +271,14 @@ public class OrderElementController extends GenericForwardComposer {
.getValue()); .getValue());
} }
Util.reloadBindings(popup); Util.reloadBindings(window);
} }
/** /**
* Toggle visibility of the selectCriterions {@link Vbox} * Toggle visibility of the selectCriterions {@link Vbox}
*/ */
public void manageCriterions() { public void manageCriterions() {
Component selectCriterions = popup.getFellow("selectCriterions"); Component selectCriterions = window.getFellow("selectCriterions");
if (selectCriterions.isVisible()) { if (selectCriterions.isVisible()) {
selectCriterions.setVisible(false); selectCriterions.setVisible(false);
@ -344,7 +350,7 @@ public class OrderElementController extends GenericForwardComposer {
CriterionType value = (CriterionType) listitem.getValue(); CriterionType value = (CriterionType) listitem.getValue();
selectedCriterionTypes.add(value); selectedCriterionTypes.add(value);
} }
Util.reloadBindings(popup); Util.reloadBindings(window);
} }
/** /**
@ -361,7 +367,7 @@ public class OrderElementController extends GenericForwardComposer {
selectedCriterionTypes.remove(value); selectedCriterionTypes.remove(value);
removeCriterionsFromHoursGroup(value); removeCriterionsFromHoursGroup(value);
} }
Util.reloadBindings(popup); Util.reloadBindings(window);
} }
/** /**
@ -495,7 +501,7 @@ public class OrderElementController extends GenericForwardComposer {
} }
}); });
// Add EventListener to reload the popup when the value change // Add EventListener to reload the window when the value change
workingHours.addEventListener(Events.ON_CHANGE, workingHours.addEventListener(Events.ON_CHANGE,
new EventListener() { new EventListener() {
@ -503,7 +509,7 @@ public class OrderElementController extends GenericForwardComposer {
public void onEvent(Event event) throws Exception { public void onEvent(Event event) throws Exception {
((OrderLine) getOrderElement()) ((OrderLine) getOrderElement())
.recalculateHoursGroups(); .recalculateHoursGroups();
Util.reloadBindings(popup); Util.reloadBindings(window);
} }
}); });
@ -522,7 +528,7 @@ public class OrderElementController extends GenericForwardComposer {
} }
}); });
// Add EventListener to reload the popup when the value change // Add EventListener to reload the window when the value change
percentage.addEventListener(Events.ON_CHANGE, percentage.addEventListener(Events.ON_CHANGE,
new EventListener() { new EventListener() {
@ -530,7 +536,7 @@ public class OrderElementController extends GenericForwardComposer {
public void onEvent(Event event) throws Exception { public void onEvent(Event event) throws Exception {
((OrderLine) getOrderElement()) ((OrderLine) getOrderElement())
.recalculateHoursGroups(); .recalculateHoursGroups();
Util.reloadBindings(popup); Util.reloadBindings(window);
} }
}); });
@ -563,7 +569,7 @@ public class OrderElementController extends GenericForwardComposer {
public void onEvent(Event event) throws Exception { public void onEvent(Event event) throws Exception {
((OrderLine) getOrderElement()) ((OrderLine) getOrderElement())
.recalculateHoursGroups(); .recalculateHoursGroups();
Util.reloadBindings(popup); Util.reloadBindings(window);
} }
}); });

View file

@ -364,7 +364,7 @@ public class OrderElementTreeController extends GenericForwardComposer {
public void onEvent(Event event) throws Exception { public void onEvent(Event event) throws Exception {
IOrderElementModel model = orderModel IOrderElementModel model = orderModel
.getOrderElementModel(orderElement); .getOrderElementModel(orderElement);
orderElementController.openPopup(model); orderElementController.openWindow(model);
} }
}); });

View file

@ -1,4 +1,5 @@
<popup id="${arg.top_id}" width="600px" left="100px" top="100px"> <window visible="false" id="${arg.top_id}" title="Edit Order Element"
width="600px" left="100px" top="100px">
<vbox> <vbox>
@ -106,4 +107,4 @@
</vbox> </vbox>
</popup> </window>

View file

@ -9,7 +9,7 @@
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?> <?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<?component name="list" inline="true" macroURI="_list.zul"?> <?component name="list" inline="true" macroURI="_list.zul"?>
<?component name="edition" inline="true" macroURI="_edition.zul"?> <?component name="edition" inline="true" macroURI="_edition.zul"?>
<?component name="orderElementPopup" inline="true" macroURI="_editOrderElement.zul"?> <?component name="orderElement" inline="true" macroURI="_editOrderElement.zul"?>
<zk> <zk>
<window self="@{define(content)}" <window self="@{define(content)}"
apply="org.navalplanner.web.orders.OrderCRUDController"> apply="org.navalplanner.web.orders.OrderCRUDController">
@ -19,7 +19,7 @@
save_button_label="Save" cancel_button_label="Cancel" /> save_button_label="Save" cancel_button_label="Cancel" />
<edition top_id="editWindow" title="Edit Personal Data" <edition top_id="editWindow" title="Edit Personal Data"
save_button_label="Save" cancel_button_label="Cancel" /> save_button_label="Save" cancel_button_label="Cancel" />
<orderElementPopup top_id="editOrderElementPopup" title="Edit Order Element" <orderElement top_id="editOrderElement" title="Edit Order Element"
back_button_label="Back" /> back_button_label="Back" />
<window visible="@{controller.confirmingRemove}" <window visible="@{controller.confirmingRemove}"
id="confirmRemove" title="Confirmación" width="500px" id="confirmRemove" title="Confirmación" width="500px"