diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/bandboxsearch/BandboxSearch.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/bandboxsearch/BandboxSearch.java index cea2ce1cd..d33942f38 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/bandboxsearch/BandboxSearch.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/bandboxsearch/BandboxSearch.java @@ -137,14 +137,15 @@ public class BandboxSearch extends HtmlMacroComponent { @Override public void onEvent(Event event) throws Exception { - bandbox.close(); + close(); } }); listbox.addEventListener(Events.ON_OK, new EventListener() { @Override public void onEvent(Event event) throws Exception { - bandbox.close(); + pickElementFromList(); + close(); } }); @@ -212,8 +213,9 @@ public class BandboxSearch extends HtmlMacroComponent { } } - private Listitem getSelectedItem() { - return (Listitem) listbox.getSelectedItems().iterator().next(); + public Listitem getSelectedItem() { + return listbox == null ? null : (Listitem) listbox.getSelectedItems() + .iterator().next(); } public String getFinder() { @@ -325,4 +327,9 @@ public class BandboxSearch extends HtmlMacroComponent { } } + public void close() { + if (bandbox != null) { + bandbox.close(); + } + } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java index 56b1cbcd3..03b759add 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java @@ -981,6 +981,17 @@ public class OrderCRUDController extends GenericForwardComposer { orderModel.setExternalCompany((ExternalCompany) object); } }); + bdExternalCompanies.setListboxEventListener(Events.ON_OK, + new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + final Object object = bdExternalCompanies + .getSelectedElement(); + orderModel.setExternalCompany((ExternalCompany) object); + bdExternalCompanies.close(); + } + }); + } public void setupOrderDetails() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ProjectDetailsController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ProjectDetailsController.java index f3c10151f..fda514426 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ProjectDetailsController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ProjectDetailsController.java @@ -32,12 +32,16 @@ import org.navalplanner.business.externalcompanies.entities.ExternalCompany; import org.navalplanner.business.orders.entities.Order; import org.navalplanner.web.common.ConstraintChecker; import org.navalplanner.web.common.Util; +import org.navalplanner.web.common.components.bandboxsearch.BandboxSearch; import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController; import org.navalplanner.web.planner.tabs.MultipleTabsPlannerController; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.SuspendNotAllowedException; import org.zkoss.zk.ui.WrongValueException; +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.ComboitemRenderer; import org.zkoss.zul.Constraint; @@ -72,6 +76,8 @@ public class ProjectDetailsController extends GenericForwardComposer { private Datebox initDate; + private BandboxSearch bdExternalCompanies; + private Datebox deadline; public ProjectDetailsController() { @@ -99,7 +105,7 @@ public class ProjectDetailsController extends GenericForwardComposer { this.defaultCalendar = orderController.getOrder().getCalendar(); this.isCodeAutogeneratedInit = orderController.getOrder() .isCodeAutogenerated(); - + loadComponents(); try { Util.reloadBindings(window); Util.createBindingsFor(gridProjectDetails); @@ -224,4 +230,27 @@ public class ProjectDetailsController extends GenericForwardComposer { } }; } + + private void loadComponents() { + bdExternalCompanies.setListboxEventListener(Events.ON_SELECT, + new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + final Object object = bdExternalCompanies + .getSelectedElement(); + getOrder().setCustomer((ExternalCompany) object); + } + }); + bdExternalCompanies.setListboxEventListener(Events.ON_OK, + new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + final Object object = bdExternalCompanies + .getSelectedElement(); + getOrder().setCustomer((ExternalCompany) object); + bdExternalCompanies.close(); + } + }); + } + } \ No newline at end of file diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/scenarios/TransferOrdersController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/scenarios/TransferOrdersController.java index f92851f52..c6bf65b63 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/scenarios/TransferOrdersController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/scenarios/TransferOrdersController.java @@ -78,23 +78,49 @@ public class TransferOrdersController extends GenericForwardComposer { new EventListener() { @Override public void onEvent(Event event) throws Exception { - Scenario sourceScenario = (Scenario) sourceScenarioBandboxSearch - .getSelectedElement(); - transferOrdersModel.setSourceScenario(sourceScenario); - Util.reloadBindings(sourceScenarioOrders); + setSourceScenario(); } }); + + sourceScenarioBandboxSearch.setListboxEventListener(Events.ON_OK, + new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + setSourceScenario(); + } + }); + destinationScenarioBandboxSearch.setListboxEventListener( Events.ON_CLICK, new EventListener() { @Override public void onEvent(Event event) throws Exception { - Scenario destinationScenario = (Scenario) destinationScenarioBandboxSearch - .getSelectedElement(); - transferOrdersModel - .setDestinationScenario(destinationScenario); - Util.reloadBindings(destinationScenarioOrders); + setDestinationScenario(); } }); + + destinationScenarioBandboxSearch.setListboxEventListener(Events.ON_OK, + new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + setDestinationScenario(); + } + }); + } + + private void setSourceScenario() { + Scenario sourceScenario = (Scenario) sourceScenarioBandboxSearch + .getSelectedElement(); + transferOrdersModel.setSourceScenario(sourceScenario); + Util.reloadBindings(sourceScenarioOrders); + sourceScenarioBandboxSearch.close(); + } + + private void setDestinationScenario() { + Scenario destinationScenario = (Scenario) destinationScenarioBandboxSearch + .getSelectedElement(); + transferOrdersModel.setDestinationScenario(destinationScenario); + Util.reloadBindings(destinationScenarioOrders); + destinationScenarioBandboxSearch.close(); } public List getScenarios() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportCRUDController.java index 6647de2ea..eb224141d 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/workreports/WorkReportCRUDController.java @@ -651,6 +651,21 @@ public class WorkReportCRUDController extends GenericForwardComposer implements getWorkReport().setOrderElement(orderElement); } }); + + bandboxSelectOrderElementInHead.setListboxEventListener(Events.ON_OK, + new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + Listitem selectedItem = bandboxSelectOrderElementInHead + .getSelectedItem(); + if ((selectedItem != null) && (getWorkReport() != null)) { + getWorkReport().setOrderElement( + (OrderElement) selectedItem.getValue()); + } + bandboxSelectOrderElementInHead.close(); + } + }); + } private void loadComponentslist(Component window) { @@ -914,7 +929,7 @@ public class WorkReportCRUDController extends GenericForwardComposer implements private void appendOrderElementInLines(Row row) { final WorkReportLine workReportLine = (WorkReportLine) row.getValue(); - BandboxSearch bandboxSearch = BandboxSearch.create( + final BandboxSearch bandboxSearch = BandboxSearch.create( "OrderElementBandboxFinder", getOrderElements()); bandboxSearch.setSelectedElement(workReportLine.getOrderElement()); @@ -924,17 +939,29 @@ public class WorkReportCRUDController extends GenericForwardComposer implements new EventListener() { @Override public void onEvent(Event event) throws Exception { - Listitem selectedItem = (Listitem) ((SelectEvent) event) - .getSelectedItems().iterator().next(); - OrderElement orderElement = (OrderElement) selectedItem - .getValue(); - workReportLine.setOrderElement(orderElement); + Listitem selectedItem = bandboxSearch.getSelectedItem(); + setOrderElementInWRL(selectedItem, workReportLine); + } + }); + + bandboxSearch.setListboxEventListener(Events.ON_OK, + new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + Listitem selectedItem = bandboxSearch.getSelectedItem(); + setOrderElementInWRL(selectedItem, workReportLine); + bandboxSearch.close(); } }); row.appendChild(bandboxSearch); } + private void setOrderElementInWRL(Listitem selectedItem, WorkReportLine line) { + OrderElement orderElement = (OrderElement) selectedItem.getValue(); + line.setOrderElement(orderElement); + } + private void appendFieldsAndLabelsInLines(final Row row){ final WorkReportLine line = (WorkReportLine)row.getValue(); for(Object fieldOrLabel : getFieldsAndLabelsLine(line)){ diff --git a/navalplanner-webapp/src/main/webapp/workreports/workReport.zul b/navalplanner-webapp/src/main/webapp/workreports/workReport.zul index a85741547..b63502e13 100644 --- a/navalplanner-webapp/src/main/webapp/workreports/workReport.zul +++ b/navalplanner-webapp/src/main/webapp/workreports/workReport.zul @@ -170,8 +170,7 @@ + selectedElement="@{controller.workReport.orderElement}"/>