From 41102d19e87659dca4c38ec73918a078d7cbc56f Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Fri, 30 Apr 2010 09:22:20 +0200 Subject: [PATCH] ItEr56S12CUAsignacionRecursosLimitantesItEr55S16: Displaying static limitingResource queue elements --- .../LimitingResourceQueueModel.java | 5 +- .../LimitingResourcesComponent.java | 62 +++++++++++++------ .../LimitingResourcesController.java | 1 + .../limitingresources/limitingresources.dsp | 12 ++++ .../src/main/webapp/planner/css/ganttzk.css | 10 ++- 5 files changed, 68 insertions(+), 22 deletions(-) create mode 100644 navalplanner-webapp/src/main/webapp/limitingresources/limitingresources.dsp diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourceQueueModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourceQueueModel.java index 3988408d9..423c1ccff 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourceQueueModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourceQueueModel.java @@ -64,9 +64,6 @@ import org.springframework.transaction.annotation.Transactional; import org.zkoss.ganttz.data.resourceload.TimeLineRole; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; import org.zkoss.ganttz.util.Interval; -import org.zkoss.zul.Label; -import org.zkoss.zul.Row; -import org.zkoss.zul.RowRenderer; @Component @Scope(BeanDefinition.SCOPE_PROTOTYPE) @@ -205,6 +202,8 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel { List result = Resource.sortByName(resourcesDAO .getAllLimitingResources()); for (Resource each : result) { + each.getLimitingResourceQueue().getLimitingResourceQueueElements() + .size(); limitingResourceQueues.add(each.getLimitingResourceQueue()); } return result; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesComponent.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesComponent.java index 50bc7a0f5..655167df5 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesComponent.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesComponent.java @@ -21,11 +21,14 @@ package org.navalplanner.web.limitingresources; +import static org.navalplanner.web.I18nHelper._; + import java.util.ArrayList; import java.util.List; import java.util.Set; import org.joda.time.LocalDate; +import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.planner.entities.LimitingResourceQueueElement; import org.navalplanner.business.resources.entities.LimitingResourceQueue; import org.zkoss.ganttz.IDatesMapper; @@ -47,13 +50,13 @@ public class LimitingResourcesComponent extends XulElement { limitingResourceQueue); } - private final LimitingResourceQueue loadLine; + private final LimitingResourceQueue limitingResourceQueue; private final TimeTracker timeTracker; private transient IZoomLevelChangedListener zoomChangedListener; private LimitingResourcesComponent(final TimeTracker timeTracker, final LimitingResourceQueue limitingResourceQueue) { - this.loadLine = limitingResourceQueue; + this.limitingResourceQueue = limitingResourceQueue; this.timeTracker = timeTracker; createChildren(limitingResourceQueue, timeTracker.getMapper()); zoomChangedListener = new IZoomLevelChangedListener() { @@ -70,34 +73,58 @@ public class LimitingResourcesComponent extends XulElement { private void createChildren(LimitingResourceQueue limitingResourceQueue, IDatesMapper mapper) { - List
divs = null; - - // createDivsForPeriods(mapper, limitingResourceQueue - // .getLimitingResourceQueueElements()); + List
divs = createDivsForQueueElements(mapper, + limitingResourceQueue.getLimitingResourceQueueElements()); if (divs != null) { - for (Div div : divs) { - appendChild(div); + for (Div div : divs) { + appendChild(div); } } } - public String getResourceLoadName() { - return loadLine.getResource().getName(); + public String getResourceName() { + return limitingResourceQueue.getResource().getName(); } - private static List
createDivsForPeriods(IDatesMapper datesMapper, + private static List
createDivsForQueueElements( + IDatesMapper datesMapper, Set list) { List
result = new ArrayList
(); - for (LimitingResourceQueueElement loadPeriod : list) { - result.add(createDivForPeriod(datesMapper, loadPeriod)); + + for (LimitingResourceQueueElement queueElement : list) { + validateQueueElement(queueElement); + result.add(createDivForQueueElement(datesMapper, queueElement)); } + + // FIX: adding static elements + result.add(createFakeDivForQueueElement(datesMapper)); + return result; } - private static Div createDivForPeriod(IDatesMapper datesMapper, + private static void validateQueueElement( + LimitingResourceQueueElement queueElement) { + if ((queueElement.getStartDate() == null) + || (queueElement.getStartDate() == null)) { + throw new ValidationException(_("Invalid queue element")); + } + } + + private static Div createFakeDivForQueueElement(IDatesMapper datesMapper) { + Div result = new Div(); + result.setClass("queue-element"); + + result.setTooltiptext("Tooltip"); + + result.setLeft("200px"); + result.setWidth("200px"); + return result; + } + + private static Div createDivForQueueElement(IDatesMapper datesMapper, LimitingResourceQueueElement loadPeriod) { Div result = new Div(); - result.setClass("queue element"); + result.setClass("queue-element"); result.setTooltiptext("Tooltip"); @@ -123,9 +150,8 @@ public class LimitingResourcesComponent extends XulElement { } private static int getStartPixels(IDatesMapper datesMapper, - LimitingResourceQueueElement loadPeriod) { - return datesMapper.toPixels(loadPeriod.getResourceAllocation() - .getStartDate().toDateMidnight() + LimitingResourceQueueElement queueElement) { + return datesMapper.toPixels(queueElement.getStartDate().toDateMidnight() .toDate()); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java index 83546bab3..806a6e5d2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java @@ -114,6 +114,7 @@ public class LimitingResourcesController implements Composer { addCommands(limitingResourcesPanel); } catch (IllegalArgumentException e) { try { + e.printStackTrace(); Messagebox.show(_("Limiting resources error") + e, _("Error"), Messagebox.OK, Messagebox.ERROR); } catch (InterruptedException o) { diff --git a/navalplanner-webapp/src/main/webapp/limitingresources/limitingresources.dsp b/navalplanner-webapp/src/main/webapp/limitingresources/limitingresources.dsp new file mode 100644 index 000000000..052bffab2 --- /dev/null +++ b/navalplanner-webapp/src/main/webapp/limitingresources/limitingresources.dsp @@ -0,0 +1,12 @@ +<%@ taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" %> +<%@ taglib uri="http://www.zkoss.org/dsp/zk/core" prefix="z" %> + + + +
+ ${self.resourceName} + + ${z:redraw(child, null)} + +
+ diff --git a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css index d50ca6d08..bc6c2c0d0 100644 --- a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css +++ b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css @@ -628,7 +628,7 @@ tr.z-vbox-sep { } .limitingresources .z-tree-body { - margin-top: 4px; + margin-top: -4px; } .limitingresources td.z-tree-cell { @@ -653,6 +653,14 @@ tr.z-vbox-sep { table-layout:auto !important; } +.queue-element { + background-color: #007BBE; + border: solid 1px; + float:left; + height:10px; + position:absolute; +} + /* ---------- End Limiting resources ----------------- */