From 449ff9cea3764e2d3a69c538e4c4cbb44f5bd1d7 Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Tue, 11 Aug 2009 14:39:01 +0200 Subject: [PATCH] ItEr21S07CUVistaRecursosTempoPorProxectoItEr20S09: New components structure and zul page for Resources Load Panel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * It has been created a new page planner/resources_use.zul with an static view of ResourcesLoadComponent entities. * Added ResourceLoadInterval static elements to ResourceLoad component Signed-off-by: Óscar González Fernández Removed modifications to TimeTracker --- .../zkoss/ganttz/ResourceLoadComponent.java | 91 +++++++++++++++++++ .../org/zkoss/ganttz/ResourceLoadList.java | 38 ++++++++ .../org/zkoss/ganttz/ResourcesLoadPanel.java | 46 ++++++++++ .../org/zkoss/ganttz/data/ResourceLoad.java | 26 ++++++ .../main/resources/metainfo/zk/lang-addon.xml | 18 ++++ .../resources/web/ganttz/resourceload.dsp | 15 +++ .../web/ganttz/resourcesLoadPanel.dsp | 14 +++ .../web/js/ganttz/resourcesloadpanel.js | 8 ++ .../src/main/webapp/planner/css/ganttzk.css | 36 +++++++- .../src/main/webapp/planner/resources_use.zul | 15 +++ 10 files changed, 306 insertions(+), 1 deletion(-) create mode 100755 navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourceLoadComponent.java create mode 100644 navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourceLoadList.java create mode 100644 navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourcesLoadPanel.java create mode 100644 navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/data/ResourceLoad.java create mode 100755 navalplanner-gantt-zk/src/main/resources/web/ganttz/resourceload.dsp create mode 100644 navalplanner-gantt-zk/src/main/resources/web/ganttz/resourcesLoadPanel.dsp create mode 100644 navalplanner-gantt-zk/src/main/resources/web/js/ganttz/resourcesloadpanel.js create mode 100644 navalplanner-webapp/src/main/webapp/planner/resources_use.zul diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourceLoadComponent.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourceLoadComponent.java new file mode 100755 index 000000000..efd67ae3e --- /dev/null +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourceLoadComponent.java @@ -0,0 +1,91 @@ +package org.zkoss.ganttz; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import org.zkoss.ganttz.data.ResourceLoad; +import org.zkoss.zk.au.out.AuInvoke; +import org.zkoss.zk.ui.ext.AfterCompose; +import org.zkoss.zul.Div; + +/** + * This class wraps ResourceLoad data inside an specific HTML Div component. + * Created at Aug 11, 2009 + * @author Lorenzo Tilve Álvaro + */ +public class ResourceLoadComponent extends Div implements AfterCompose { + + private static final int HEIGHT_PER_ROW = 10; + private final ResourceLoad resourceLoad; + private List children; + + public class ResourceLoadInterval extends Div { + + private int length; + private String plannificationType; + + public ResourceLoadInterval(int length, String plannificationType) { + this.length = length; + this.plannificationType = plannificationType; + } + + public int getLenght() { + return this.length; + } + + public String getPlannificationType() { + return this.plannificationType; + } + } + + public ResourceLoadComponent(ResourceLoad resourceLoad) { + setHeight(HEIGHT_PER_ROW + "px"); + setContext("idContextMenuTaskAssigment"); + this.resourceLoad = resourceLoad; + + // Added some example ResourceLoadIntervals + this.children = new ArrayList(); + setId(UUID.randomUUID().toString()); + } + + protected String calculateClass() { + return "box"; + } + + protected void updateClass() { + response(null, new AuInvoke(this, "setClass", + new Object[] { calculateClass() })); + } + + public void afterCompose() { + } + + private String _color; + + public static ResourceLoadComponent asResourceLoadComponent( + ResourceLoad ResourceLoad, ResourceLoadList ResourceLoadList, + boolean isTopLevel) { + final ResourceLoadComponent result; + result = new ResourceLoadComponent(ResourceLoad); + return result; + } + + public static ResourceLoadComponent asResourceLoadComponent( + ResourceLoad ResourceLoad, ResourceLoadList ResourceLoadList) { + return asResourceLoadComponent(ResourceLoad, ResourceLoadList, true); + } + + public String getResourceLoadName() { + return this.resourceLoad.getName(); + } + + public List getChildren() { + return this.children; + } + + public void addInterval(int length, String plannificationType) { + this.children.add(new ResourceLoadInterval(length, plannificationType)); + } + +} \ No newline at end of file diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourceLoadList.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourceLoadList.java new file mode 100644 index 000000000..dab4e6a0d --- /dev/null +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourceLoadList.java @@ -0,0 +1,38 @@ +package org.zkoss.ganttz; + +import java.util.List; + +import org.zkoss.ganttz.data.ResourceLoad; +import org.zkoss.zk.ui.ext.AfterCompose; +import org.zkoss.zul.impl.XulElement; + +/** + * Component to include a list of ResourceLoads inside the ResourcesLoadPanel. + * Created at Aug 11, 2009 + * @author Lorenzo Tilve Álvaro + */ +public class ResourceLoadList extends XulElement implements AfterCompose { + + private List resourceLoads; + + public ResourceLoadList(List resourceLoads) { + this.resourceLoads = resourceLoads; + } + + @Override + public void afterCompose() { + } + + public Planner getPlanner() { + return getGanttPanel().getPlanner(); + } + + private GanttPanel getGanttPanel() { + return (GanttPanel) getParent(); + } + + public synchronized void addResourceLoadComponent(ResourceLoad r) { + resourceLoads.add(r); + } + +} diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourcesLoadPanel.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourcesLoadPanel.java new file mode 100644 index 000000000..87a969380 --- /dev/null +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ResourcesLoadPanel.java @@ -0,0 +1,46 @@ +package org.zkoss.ganttz; + +import org.zkoss.ganttz.data.ResourceLoad; +import org.zkoss.zk.ui.ext.AfterCompose; +import org.zkoss.zul.impl.XulElement; + +public class ResourcesLoadPanel extends XulElement implements AfterCompose { + + private TimeTracker timeTracker; + + public ResourcesLoadPanel() { + ResourceLoadComponent rlc1 = new ResourceLoadComponent( + new ResourceLoad("ResourceLoad 1")); + ResourceLoadComponent rlc2 = new ResourceLoadComponent( + new ResourceLoad("ResourceLoad 1")); + + rlc1.addInterval(40, "fullplanificated"); + rlc1.addInterval(20, "planificated"); + rlc1.addInterval(30, "overplanificated"); + rlc1.addInterval(10, "not_planificated"); + + rlc2.addInterval(10, "overplanificated"); + rlc2.addInterval(20, "planificated"); + rlc2.addInterval(30, "fullplanificated"); + rlc2.addInterval(20, "planificated"); + rlc2.addInterval(20, "not_planificated"); + + appendChild(rlc1); + appendChild(rlc2); + + } + + @Override + public void afterCompose() { + //timeTracker.afterCompose(); + } + + public TimeTracker getTimeTracker() { + return timeTracker; + } + + public Planner getPlanner() { + return (Planner) getParent(); + } + +} \ No newline at end of file diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/data/ResourceLoad.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/data/ResourceLoad.java new file mode 100644 index 000000000..81a8f35da --- /dev/null +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/data/ResourceLoad.java @@ -0,0 +1,26 @@ +package org.zkoss.ganttz.data; + +/** + * This class contains the information of a ResourceLoad unit. It will fetch + * information from the DailyAssignments and build all its associated + * ResourceLoad intervals
+ * Created at Ago 11, 2009 + * @author Lorenzo Tilve Álvaro + */ +public class ResourceLoad { + + private String name; + + public ResourceLoad(String name) { + this.name = name; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + +} \ No newline at end of file diff --git a/navalplanner-gantt-zk/src/main/resources/metainfo/zk/lang-addon.xml b/navalplanner-gantt-zk/src/main/resources/metainfo/zk/lang-addon.xml index 0e267a0f5..3afa04a4f 100755 --- a/navalplanner-gantt-zk/src/main/resources/metainfo/zk/lang-addon.xml +++ b/navalplanner-gantt-zk/src/main/resources/metainfo/zk/lang-addon.xml @@ -20,6 +20,15 @@ + + resourcesLoadPanel + org.zkoss.ganttz.ResourcesLoadPanel + + default + ~./ganttz/resourcesLoadPanel.dsp + + + leftPane org.zkoss.ganttz.LeftPane @@ -41,6 +50,15 @@ + + resourceload + org.zkoss.ganttz.ResourceLoadComponent + + default + ~./ganttz/resourceload.dsp + + + task org.zkoss.ganttz.TaskComponent diff --git a/navalplanner-gantt-zk/src/main/resources/web/ganttz/resourceload.dsp b/navalplanner-gantt-zk/src/main/resources/web/ganttz/resourceload.dsp new file mode 100755 index 000000000..f3689c0d6 --- /dev/null +++ b/navalplanner-gantt-zk/src/main/resources/web/ganttz/resourceload.dsp @@ -0,0 +1,15 @@ +<%@ taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" %> +<%@ taglib uri="http://www.zkoss.org/dsp/zk/core" prefix="z" %> + + + +
+
+ ${self.resourceLoadName} + +
+
+
+
\ No newline at end of file diff --git a/navalplanner-gantt-zk/src/main/resources/web/ganttz/resourcesLoadPanel.dsp b/navalplanner-gantt-zk/src/main/resources/web/ganttz/resourcesLoadPanel.dsp new file mode 100644 index 000000000..97b5ebfe7 --- /dev/null +++ b/navalplanner-gantt-zk/src/main/resources/web/ganttz/resourcesLoadPanel.dsp @@ -0,0 +1,14 @@ +<%@ taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" %> +<%@ taglib uri="http://www.zkoss.org/dsp/zk/core" prefix="z" %> + + +

Resources Load

+
+
+ + ${z:redraw(child, null)} + +
+
+ +
\ No newline at end of file diff --git a/navalplanner-gantt-zk/src/main/resources/web/js/ganttz/resourcesloadpanel.js b/navalplanner-gantt-zk/src/main/resources/web/js/ganttz/resourcesloadpanel.js new file mode 100644 index 000000000..8e08c978d --- /dev/null +++ b/navalplanner-gantt-zk/src/main/resources/web/js/ganttz/resourcesloadpanel.js @@ -0,0 +1,8 @@ +/** + * Javascript behaviuor for ResourcesLoadPanel element + * @author Lorenzo Tilve Álvaro + */ +zkResourcesLoadPanel = {}; + +zkResourcesLoadPanel.init = function(cmp){ +} \ No newline at end of file diff --git a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css index 4b490b1fd..6ecb21540 100644 --- a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css +++ b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css @@ -326,10 +326,44 @@ tr.z-vbox-sep { display:none; } -/* Hide at the beginning */ +/* Hidden at the beginning to avoid the first scalation effect */ #ganttpanel_scroller_x { display:none; } #ganttpanel_scroller_y { display:none; } + +/* -------------- ResourceLoad -------------- */ +.taskassignmentinterval { + float:left; + height:10px; + position:relative; +} + +.fullplanificated { + background-color:green; +} + +.planificated { + background-color:orange; +} + +.overplanificated { + background-color:red; +} +.not_planificated { + background-color:#007bbe; +} + +.row_resourceload { + height: 10px; + border: solid 1px #000000; + margin-bottom: 10px; + margin-top: 10px; + width: auto; +} + +.resourceload_name { + display:none; +} \ No newline at end of file diff --git a/navalplanner-webapp/src/main/webapp/planner/resources_use.zul b/navalplanner-webapp/src/main/webapp/planner/resources_use.zul new file mode 100644 index 000000000..57328bf74 --- /dev/null +++ b/navalplanner-webapp/src/main/webapp/planner/resources_use.zul @@ -0,0 +1,15 @@ + + + + + + + + + + + +
+
+ +
\ No newline at end of file