ItEr56S12CUAsignacionRecursosLimitantesItEr55S16: Displaying static limitingResource queue elements

This commit is contained in:
Lorenzo Tilve 2010-04-30 09:22:20 +02:00 committed by Javier Moran Rua
parent 43e335ddcd
commit 41102d19e8
5 changed files with 68 additions and 22 deletions

View file

@ -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<Resource> result = Resource.sortByName(resourcesDAO
.getAllLimitingResources());
for (Resource each : result) {
each.getLimitingResourceQueue().getLimitingResourceQueueElements()
.size();
limitingResourceQueues.add(each.getLimitingResourceQueue());
}
return result;

View file

@ -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<Div> divs = null;
// createDivsForPeriods(mapper, limitingResourceQueue
// .getLimitingResourceQueueElements());
List<Div> 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<Div> createDivsForPeriods(IDatesMapper datesMapper,
private static List<Div> createDivsForQueueElements(
IDatesMapper datesMapper,
Set<LimitingResourceQueueElement> list) {
List<Div> result = new ArrayList<Div>();
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());
}

View file

@ -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) {

View file

@ -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" %>
<c:set var="self" value="${requestScope.arg.self}"/>
<div id="${self.uuid}" class="row_resourceload z.autoz="true" ${self.outerAttrs}">
<span class="resourceload_name">${self.resourceName}</span>
<c:forEach var="child" items="${self.children}">
${z:redraw(child, null)}
</c:forEach>
</div>

View file

@ -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 ----------------- */