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 4b6200275..a579abd81 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java @@ -262,4 +262,9 @@ public class DefaultFundamentalProperties implements ITaskFundamentalProperties return ""; } + @Override + public boolean isManualAnyAllocation() { + 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 dea750e50..83c3e6656 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java @@ -105,4 +105,6 @@ public interface ITaskFundamentalProperties { String updateTooltipText(String progressType); + boolean isManualAnyAllocation(); + } 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 269c714d5..3297bdfa3 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java @@ -454,4 +454,9 @@ public abstract class Task implements ITaskFundamentalProperties { return LocalDate.fromDateFields(getBeginDate().toDayRoundedDate()); } + @Override + public boolean isManualAnyAllocation() { + return fundamentalProperties.isManualAnyAllocation(); + } + } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskLeaf.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskLeaf.java index 52c93b477..393d590f5 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskLeaf.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskLeaf.java @@ -55,7 +55,8 @@ public class TaskLeaf extends Task { @Override public boolean canBeExplicitlyMoved() { - return !(isSubcontracted() || isLimitingAndHasDayAssignments() || hasConsolidations()); + return !(isSubcontracted() || isLimitingAndHasDayAssignments() + || hasConsolidations() || isManualAnyAllocation()); } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Task.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Task.java index b75fc49c4..2a6d9c3ff 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Task.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Task.java @@ -883,7 +883,7 @@ public class Task extends TaskElement implements ITaskPositionConstrained { @Override public boolean canBeExplicitlyResized() { - return canBeResized() && !isSubcontracted(); + return canBeResized() && !isSubcontracted() && !isManualAnyAllocation(); } @Override 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 a46de631d..a888e7650 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 @@ -1051,6 +1051,12 @@ public class TaskElementAdapter { || taskElement.hasConsolidations(); } + @Override + public boolean isManualAnyAllocation() { + return taskElement.isTask() + && ((Task) taskElement).isManualAnyAllocation(); + } + } @Override