diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java b/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java index 326751d62..1cdbdc555 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java @@ -320,7 +320,7 @@ public class TaskComponent extends Div implements AfterCompose { public boolean isMovingTasksEnabled() { return disabilityConfiguration.isMovingTasksEnabled() - && !task.isSubcontracted(); + && task.canBeExplicitlyMoved(); } void doUpdatePosition(String leftX, String topY) { diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/Milestone.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/Milestone.java index 35e71f44c..da1a24646 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/Milestone.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/Milestone.java @@ -71,4 +71,9 @@ public class Milestone extends Task { return false; } + @Override + public boolean canBeExplicitlyMoved() { + return true; + } + } 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 fc85a3214..b09460b93 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java @@ -314,4 +314,5 @@ public abstract class Task implements ITaskFundamentalProperties { return fundamentalProperties.canBeExplicitlyResized(); } + public abstract boolean canBeExplicitlyMoved(); } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskContainer.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskContainer.java index 08e0c863e..2aaf9c9ba 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskContainer.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskContainer.java @@ -208,4 +208,9 @@ public class TaskContainer extends Task { return true; } + @Override + public boolean canBeExplicitlyMoved() { + return false; + } + } \ No newline at end of file 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 1f3ce5a79..a6f0a805b 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskLeaf.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskLeaf.java @@ -52,4 +52,9 @@ public class TaskLeaf extends Task { return false; } + @Override + public boolean canBeExplicitlyMoved() { + return !isSubcontracted(); + } + }