### Eclipse Workspace Patch 1.0 #P samigo Index: src/java/org/sakaiproject/tool/assessment/ui/bean/questionpool/QuestionPoolBean.java =================================================================== --- src/java/org/sakaiproject/tool/assessment/ui/bean/questionpool/QuestionPoolBean.java (revision 64953) +++ src/java/org/sakaiproject/tool/assessment/ui/bean/questionpool/QuestionPoolBean.java (working copy) @@ -146,6 +146,7 @@ private Collection moveQpools; private Collection sortedSubqpools; private QuestionPoolDataModel qpDataModel; + private QuestionPoolDataModel qpDataModelCopy; private QuestionPoolDataModel subQpDataModel; private String addOrEdit; @@ -175,22 +176,22 @@ public QuestionPoolDataModel getCopyQpools() { - if (qpDataModel == null) { + if (qpDataModelCopy == null) { buildTreeCopy(); - setQpDataModelByLevel(); + setQpDataModelByLevelCopy(); } log.debug("getCopyQpools()"); - return qpDataModel; + return qpDataModelCopy; } public QuestionPoolDataModel getMoveQpools() { - if (qpDataModel == null) { + if (qpDataModelCopy == null) { buildTreeCopy(); - setQpDataModelByLevel(); + setQpDataModelByLevelCopy(); } log.debug("getMoveQpools()"); - return qpDataModel; + return qpDataModelCopy; } public QuestionPoolDataModel getSortedSubqpools() @@ -1425,7 +1426,7 @@ getCheckedPool(); buildTreeCopy(); setActionType("pool"); - setQpDataModelByProperty(); + setQpDataModelByPropertyCopy(); return "copyPool"; } @@ -1435,7 +1436,7 @@ getCheckedPool(); buildTreeCopy(); setActionType("pool"); - setQpDataModelByProperty(); + setQpDataModelByPropertyCopy(); return "movePool"; } @@ -1865,6 +1866,7 @@ this.setSortProperty(sortString); this.setSortAscending((Boolean.valueOf(ascending)).booleanValue()); setQpDataModelByLevel(); + setQpDataModelByLevelCopy(); return "poolList"; } @@ -1876,6 +1878,7 @@ this.setSortCopyPoolProperty(sortString); this.setSortCopyPoolAscending((Boolean.valueOf(ascending)).booleanValue()); setQpDataModelByLevel(); + setQpDataModelByLevelCopy(); return "copyPool"; } @@ -1887,6 +1890,7 @@ this.setSortMovePoolProperty(sortString); this.setSortMovePoolAscending((Boolean.valueOf(ascending)).booleanValue()); setQpDataModelByLevel(); + setQpDataModelByLevelCopy(); return "movePool"; } @@ -2073,7 +2077,7 @@ public void setQpDataModelByLevel() { Collection objects = tree.getSortedObjects(); - + // construct the sortedList, pools need to be sorted one level at a time // so the hierachical structure can be maintained. Here, we start from root = 0, if (objects != null) { @@ -2085,7 +2089,7 @@ this.qpDataModel = qpDataModel; } } - + public void setQpDataModelByProperty() { tree.sortByProperty(this.getSortCopyPoolProperty(), this .getSortCopyPoolAscending()); @@ -2097,6 +2101,32 @@ this.qpDataModel = qpDataModel; } + public void setQpDataModelByLevelCopy() { + Collection objects = tree.getSortedObjects(); + + // construct the sortedList, pools need to be sorted one level at a time + // so the hierachical structure can be maintained. Here, we start from root = 0, + if (objects != null) { + ArrayList sortedList = sortPoolByLevel(new Long("0"), objects, + getSortProperty(), getSortAscending()); + ListDataModel model = new ListDataModel((List) sortedList); + QuestionPoolDataModel qpDataModel = new QuestionPoolDataModel(tree, + model); + this.qpDataModelCopy = qpDataModel; + } + } + + public void setQpDataModelByPropertyCopy() { + tree.sortByProperty(this.getSortCopyPoolProperty(), this + .getSortCopyPoolAscending()); + + Collection objects = tree.getSortedObjects(); + ListDataModel model = new ListDataModel((List) objects); + QuestionPoolDataModel qpDataModel = new QuestionPoolDataModel(tree, + model); + this.qpDataModelCopy = qpDataModel; + } + public void setSubQpDataModelByLevel() { ArrayList subpools = (ArrayList) tree.getSortedObjects(getCurrentPool() .getId());