From b8f17c7235721359e499dd124a47a2a980c7d712 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 12 Nov 2012 23:05:04 +0100 Subject: [PATCH] Disable drag & drop for tasks updated from timesheets in the WBS FEA: ItEr77S12AdaptPlanningAccordingTimesheets --- .../libreplan/web/tree/TreeController.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java index f8681f3a0..f1cdf5d29 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java @@ -188,8 +188,15 @@ public abstract class TreeController> extends viewStateSnapshot = TreeViewStateSnapshot.takeSnapshot(tree); - Treerow from = (Treerow) dragged; - T fromNode = type.cast(((Treeitem) from.getParent()).getValue()); + T fromNode = null; + if (dragged instanceof Treerow) { + Treerow from = (Treerow) dragged; + fromNode = type.cast(((Treeitem) from.getParent()).getValue()); + } + if (dragged instanceof Treeitem) { + Treeitem from = (Treeitem) dragged; + fromNode = type.cast(from.getValue()); + } if (dropedIn instanceof Tree) { getModel().moveToRoot(fromNode); } @@ -708,8 +715,8 @@ public abstract class TreeController> extends public void render(final Treeitem item, Object data) { item.setValue(data); applySnapshot(item); - currentTreeRow = getTreeRowWithoutChildrenFor(item); final T currentElement = type.cast(data); + currentTreeRow = getTreeRowWithoutChildrenFor(item, currentElement); createCells(item, currentElement); onDropMoveFromDraggedToTarget(); } @@ -738,10 +745,17 @@ public abstract class TreeController> extends } } - private Treerow getTreeRowWithoutChildrenFor(final Treeitem item) { + private Treerow getTreeRowWithoutChildrenFor(final Treeitem item, + T element) { Treerow result = createOrRetrieveFor(item); // Attach treecells to treerow - result.setDroppable("true"); + if (element.isUpdatedFromTimesheets()) { + result.setDraggable("false"); + result.setDroppable("false"); + } else { + result.setDraggable("true"); + result.setDroppable("true"); + } result.getChildren().clear(); return result; } @@ -813,7 +827,7 @@ public abstract class TreeController> extends } }); schedulingStateToggler.afterCompose(); - cell.setDraggable("true"); + } protected abstract SchedulingState getSchedulingStateFrom(