ItEr60S07RFAspectosGraficosRecursoLimitantesItEr59S07: Queue elements display order deadline if task has not an specific one

This commit is contained in:
Lorenzo Tilve 2010-06-15 12:18:30 +02:00 committed by Javier Moran Rua
parent e141c0e1c7
commit 8ebe502c7e
2 changed files with 31 additions and 8 deletions

View file

@ -25,6 +25,7 @@ import static org.navalplanner.web.I18nHelper._;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.SortedSet;
@ -210,6 +211,7 @@ public class QueueComponent extends XulElement implements
}
result.append("[" + element.getStartDate().toString() + ","
+ element.getEndDate().toString() + "]");
return result.toString();
}
@ -248,9 +250,11 @@ public class QueueComponent extends XulElement implements
private static QueueTask createDivForElement(IDatesMapper datesMapper,
LimitingResourceQueueElement queueElement) {
final Task task = queueElement.getResourceAllocation().getTask();
final OrderElement order = getRootOrder(task);
QueueTask result = new QueueTask(queueElement);
String cssClass = "queue-element";
result.setTooltiptext(createTooltiptext(queueElement));
int startPixels = getStartPixels(datesMapper, queueElement);
@ -269,13 +273,21 @@ public class QueueComponent extends XulElement implements
}
result.setWidth(forCSS(taskWidth));
Task task = queueElement.getResourceAllocation().getTask();
if (task.getDeadline() != null) {
int deadlinePosition = getDeadlinePixels(datesMapper, task
.getDeadline());
LocalDate deadlineDate = task.getDeadline();
boolean isOrderDeadline = false;
if (deadlineDate == null) {
Date orderDate = order.getDeadline();
if (orderDate != null) {
deadlineDate = LocalDate.fromDateFields(orderDate);
isOrderDeadline = true;
}
}
if (deadlineDate != null) {
int deadlinePosition = getDeadlinePixels(datesMapper, deadlineDate);
if (deadlinePosition < datesMapper.getHorizontalSize()) {
Div deadline = new Div();
deadline.setSclass("deadline");
deadline.setSclass(isOrderDeadline ? "deadline order-deadline"
: "deadline");
deadline
.setLeft((deadlinePosition - startPixels - DEADLINE_MARK_HALF_WIDTH)
+ "px");
@ -283,12 +295,11 @@ public class QueueComponent extends XulElement implements
result.appendChild(generateNonWorkableShade(datesMapper,
queueElement));
}
if (task.getDeadline().isBefore(queueElement.getEndDate())) {
if (deadlineDate.isBefore(queueElement.getEndDate())) {
cssClass += " unmet-deadline ";
}
}
result.setClass(cssClass);
result.appendChild(generateCompletionShade(datesMapper, queueElement));
result.appendChild(generateProgressBar(datesMapper, queueElement, task,

View file

@ -1071,6 +1071,18 @@ div.z-tree {
display: none;
}
.queue-element .deadline.order-deadline {
position:absolute;
margin-top: -5px;
background-repeat: repeat-y;
float:left;
width:10px;
height:22px;
background-image: url("../../zkau/web/ganttz/img/watermark_deadline.png");
}
body .perspectives-column {
display:inline;
}