diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java b/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java index f80971bef..24689f95e 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java @@ -61,7 +61,6 @@ public class TaskComponent extends Div implements AfterCompose { private static final Log LOG = LogFactory.getLog(TaskComponent.class); private static final int HEIGHT_PER_TASK = 10; - private static final String STANDARD_TASK_COLOR = "#007bbe"; private static Pattern pixelsSpecificationPattern = Pattern .compile("\\s*(\\d+)px\\s*;?\\s*"); @@ -183,7 +182,12 @@ public class TaskComponent extends Div implements AfterCompose { setHeight(HEIGHT_PER_TASK + "px"); setContext("idContextMenuTaskAssignment"); this.task = task; - setColor(STANDARD_TASK_COLOR); + if (task.isSubcontracted()) { + setClass("box subcontracted-task"); + } else { + setClass("box standard-task"); + } + setId(UUID.randomUUID().toString()); this.disabilityConfiguration = disabilityConfiguration; taskViolationListener = new IConstraintViolationListener() { @@ -206,7 +210,12 @@ public class TaskComponent extends Div implements AfterCompose { } protected String calculateClass() { - String classText = "box"; + String classText; + if (getSclass().equals("null")) { + classText = "box"; + } else { + classText = getSclass(); + } if (task.isInCriticalPath()) { classText += " critical"; } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java index 7343a31c1..726fd1f48 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java @@ -163,4 +163,8 @@ public class DefaultFundamentalProperties implements ITaskFundamentalProperties return null; } + public boolean isSubcontracted() { + return false; + } + } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java index 3e995d9f1..3b4e1a54f 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java @@ -76,4 +76,6 @@ public interface ITaskFundamentalProperties { public void moveTo(Date date); + public boolean isSubcontracted(); + } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java index 0e2b1d9b3..064224534 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java @@ -296,4 +296,8 @@ public abstract class Task implements ITaskFundamentalProperties { } } + public boolean isSubcontracted() { + return fundamentalProperties.isSubcontracted(); + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java index 75cf58d5f..e95ea0410 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java @@ -526,6 +526,11 @@ public class TaskElementAdapter implements ITaskElementAdapter { return deadline.toDateTimeAtStartOfDay().toDate(); } + @Override + public boolean isSubcontracted() { + return taskElement.isSubcontracted(); + } + } @Override diff --git a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css index e3bf4d993..98650ca7d 100644 --- a/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css +++ b/navalplanner-webapp/src/main/webapp/planner/css/ganttzk.css @@ -138,6 +138,14 @@ min-width:200px; margin-top: -3px; } +.standard-task { + background-color: #007bbe; +} + +.subcontracted-task { + background-color: #AA80D5; +} + /* -------------- Dependencies -------------- */ #listdependencies { position: relative;