From 96bd5d9b0e5abdfcd0759a52658742d33082b61b Mon Sep 17 00:00:00 2001 From: Lorenzo Tilve Date: Thu, 1 Oct 2009 14:18:29 +0200 Subject: [PATCH] ItEr28S09CUCreacionProxectoPlanificacionItEr27S09: Added milestones structure and simulated add milestone command --- .../java/org/zkoss/ganttz/data/Milestone.java | 55 ++++++++++++++++++ .../resources/web/ganttz/img/milestone.png | Bin 0 -> 317 bytes .../resources/web/ganttz/img/milestone2.png | Bin 0 -> 304 bytes .../main/resources/web/ganttz/milestone.dsp | 15 +++++ .../web/planner/AddMilestoneCommand.java | 44 ++++++++++++++ .../web/planner/IAddMilestoneCommand.java | 10 ++++ .../web/planner/OrderPlanningModel.java | 6 ++ .../navalplanner-webapp-spring-config.xml | 1 + .../src/main/webapp/planner/css/ganttzk.css | 11 ++++ 9 files changed, 142 insertions(+) create mode 100644 ganttzk/src/main/java/org/zkoss/ganttz/data/Milestone.java create mode 100644 ganttzk/src/main/resources/web/ganttz/img/milestone.png create mode 100644 ganttzk/src/main/resources/web/ganttz/img/milestone2.png create mode 100644 ganttzk/src/main/resources/web/ganttz/milestone.dsp create mode 100644 navalplanner-webapp/src/main/java/org/navalplanner/web/planner/AddMilestoneCommand.java create mode 100644 navalplanner-webapp/src/main/java/org/navalplanner/web/planner/IAddMilestoneCommand.java diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/Milestone.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/Milestone.java new file mode 100644 index 000000000..63a214e78 --- /dev/null +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/Milestone.java @@ -0,0 +1,55 @@ +package org.zkoss.ganttz.data; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; +import java.util.Date; +import java.util.List; + +import org.zkoss.ganttz.util.WeakReferencedListeners; +import org.zkoss.ganttz.util.WeakReferencedListeners.IListenerNotification; + +/** + * @author Lorenzo Tilve Álvaro + */ +public class Milestone extends Task { + + public Milestone() { + super(); + } + + public Milestone(ITaskFundamentalProperties fundamentalProperties) { + super(fundamentalProperties); + } + + private List tasks = new ArrayList(); + + private boolean expanded = false; + + @Override + public List getTasks() { + return tasks; + } + + @Override + public boolean isExpanded() { + return expanded; + } + + @Override + protected void setVisible(boolean visible) { + super.setVisible(visible); + if (!this.expanded) { + return; + } + for (Task task : tasks) { + task.setVisible(true); + } + } + + @Override + public boolean isLeaf() { + return false; + } + +} \ No newline at end of file diff --git a/ganttzk/src/main/resources/web/ganttz/img/milestone.png b/ganttzk/src/main/resources/web/ganttz/img/milestone.png new file mode 100644 index 0000000000000000000000000000000000000000..5627f0b795dfe4037050555bce8da8570959bfe9 GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^{2QL70(Y)*K0-AbW|YuPggaE=DdP;a?^?5kMiy64!_l=ltB< z)VvY~=c3falGGH1^30M91$R&1fbd2>aiF3Zo-U3d8t0cz_7-AR`3G)|($+oLvPjNa`L{`5yjrlNW=Cz}7^$S+5y%tZSL>m&u*T&SiZqEOAif z!rpxq%D-R0}pj2SNw(FdGUzQeFIlfGob38X7fwkg}P(i@QTel5$4@`Q# zNA~)cQ@@_KYc|+%YJA$td0|!BjR`EgOqH)6?Mw6*bB%tGFr$tG=tc%lS3j3^P6QL70(Y)*K0-AbW|YuPggaE=DeXnW@iXuL6Z6OI#yLobz*Y zQ}ap~oQqNuOHxx5$}>wc6x=<11Hv2m#DR*sJzX3_G|n%b>?m~DfP-0F?SH+|tAzp9 zJ;Ca_+Z)0pgq0O6j!&8VsXFv~DB}U)Ek32P?{9TvJkSZs%4N+~DY>c|^#10FeWiCK zBP?&Q?J?THd#z$#uoVA+IwpRD-;5$Nn2!rLGlg#78-1DUOXd09rC+13+1JnD>PTDg qQG+F8spZ}YoUhpA3(rP>WNMD`f3U;j#7v;G7(8A5T-G@yGywogMQ30D literal 0 HcmV?d00001 diff --git a/ganttzk/src/main/resources/web/ganttz/milestone.dsp b/ganttzk/src/main/resources/web/ganttz/milestone.dsp new file mode 100644 index 000000000..6c70e57da --- /dev/null +++ b/ganttzk/src/main/resources/web/ganttz/milestone.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" %> + + + + +
+
+
+
+
+
+
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/AddMilestoneCommand.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/AddMilestoneCommand.java new file mode 100644 index 000000000..09a60dd40 --- /dev/null +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/AddMilestoneCommand.java @@ -0,0 +1,44 @@ +package org.navalplanner.web.planner; + +import org.navalplanner.business.planner.entities.Task; +import org.navalplanner.business.planner.entities.TaskElement; +import org.navalplanner.business.planner.entities.TaskGroup; +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; +import org.zkoss.ganttz.extensions.IContextWithPlannerTask; + +import static org.navalplanner.web.I18nHelper._; + +@Component +@Scope(BeanDefinition.SCOPE_PROTOTYPE) +public class AddMilestoneCommand implements IAddMilestoneCommand { + + private PlanningState planningState; + + @Override + public void setState(PlanningState planningState) { + this.planningState = planningState; + } + + @Override + public void doAction(IContextWithPlannerTask context, + TaskElement task) { + if (!(task instanceof TaskGroup)) { + return; + } +/* TaskGroup old = (TaskGroup) task; + if (!old.canBeMerged()) + return; + Task result = old.merge(); + context.replace(old, result); + planningState.removed(old); + planningState.added(result); */ + } + + @Override + public String getName() { + return _("Add Milestone"); + } + +} diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/IAddMilestoneCommand.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/IAddMilestoneCommand.java new file mode 100644 index 000000000..436a334c2 --- /dev/null +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/IAddMilestoneCommand.java @@ -0,0 +1,10 @@ +package org.navalplanner.web.planner; + +import org.navalplanner.business.planner.entities.TaskElement; +import org.zkoss.ganttz.extensions.ICommandOnTask; + +public interface IAddMilestoneCommand extends ICommandOnTask { + + public void setState(PlanningState planningState); + +} diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java index 47df86f1a..ceb5a90d7 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java @@ -83,6 +83,10 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { mergeCommand.setState(planningState); configuration.addCommandOnTask(mergeCommand); + IAddMilestoneCommand addMilestoneCommand = getAddMilestoneCommand(); + addMilestoneCommand.setState(planningState); + configuration.addCommandOnTask(addMilestoneCommand); + IEditTaskCommand editTaskCommand = getEditTaskCommand(); editTaskCommand.setEditTaskController(editTaskController); configuration.setEditTaskCommand(editTaskCommand); @@ -168,6 +172,8 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { protected abstract IMergeTaskCommand getMergeTaskCommand(); + protected abstract IAddMilestoneCommand getAddMilestoneCommand(); + protected abstract IEditTaskCommand getEditTaskCommand(); protected abstract ICalendarAllocationCommand getCalendarAllocationCommand(); diff --git a/navalplanner-webapp/src/main/resources/navalplanner-webapp-spring-config.xml b/navalplanner-webapp/src/main/resources/navalplanner-webapp-spring-config.xml index c92e99c8a..59fdc6027 100644 --- a/navalplanner-webapp/src/main/resources/navalplanner-webapp-spring-config.xml +++ b/navalplanner-webapp/src/main/resources/navalplanner-webapp-spring-config.xml @@ -23,6 +23,7 @@ + diff --git a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css index 90917650c..7fc741cb3 100644 --- a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css +++ b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css @@ -196,6 +196,17 @@ zkTasklist.GANTT_PANEL_LEFT = 300 background-color: transparent !important; } +.milestone_end { + background-image: + url("/navalplanner-webapp/zkau/web/ganttz/img/milestone2.png"); + height: 15px; + width: 15px; + float: right; + position:relative; + left: 8px; + top: -3px; +} + .row .closed { border-top: solid black 2px; }