|
From: <se...@us...> - 2008-05-02 09:52:35
|
Revision: 70
http://acmcontester.svn.sourceforge.net/acmcontester/?rev=70&view=rev
Author: sem62
Date: 2008-05-02 02:52:38 -0700 (Fri, 02 May 2008)
Log Message:
-----------
Added objectives to summary pages. Now only need modify templates.
Modified Paths:
--------------
WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java
WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java 2008-05-01 23:25:19 UTC (rev 69)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java 2008-05-02 09:52:38 UTC (rev 70)
@@ -75,4 +75,12 @@
public static MapInfo createMapInfo() {
return new MapInfo();
}
+
+ public static MapInfo createMapInfo(String targetObjectiveID) {
+ MapInfo mapInfo = new MapInfo();
+
+ mapInfo.targetObjectiveID = targetObjectiveID;
+
+ return mapInfo;
+ }
}
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java 2008-05-01 23:25:19 UTC (rev 69)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java 2008-05-02 09:52:38 UTC (rev 70)
@@ -1,11 +1,14 @@
package edu.lnu.FireFly.WebEditor.Data;
+import java.util.ArrayList;
+
import edu.lnu.FireFly.FFManifest.Manifest;
import edu.lnu.FireFly.FFManifest.Organization;
import edu.lnu.FireFly.FFManifest.TreeItem;
import edu.lnu.FireFly.FFManifest.item.Item;
import edu.lnu.FireFly.FFManifest.item.sequencing.Sequencing;
import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.MapInfo;
+import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.Objective;
import edu.lnu.FireFly.FFManifest.parser.TestDocException;
import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel;
import edu.lnu.FireFly.WebEditor.ItemModels.ChapterModel;
@@ -47,16 +50,62 @@
createSummaryPageIfNotExists(root);
Item summaryPage = (Item) root.getChild(root.getChildCount() - 1);
ItemModel model = ItemModels.getModelFromItem(summaryPage);
+
+ insertAllNeededObjectivesIntoSummaryPage(root);
+
((SummaryPageModel) model).updateItemResource(summaryPage, true);
} else {
deleteSummaryPageIfExists(root);
}
}
+ private void insertAllNeededObjectivesIntoSummaryPage(TreeItem root) {
+ Item summaryPage = (Item) root.getChild(root.getChildCount() - 1);
+
+ ArrayList<String> objectiveIds = getShowingItemsIds(root);
+
+ summaryPage.sequencing.objectives.objective = new ArrayList<Objective>();
+
+ for (int i=0; i < objectiveIds.size(); i++){
+ String objectiveId = objectiveIds.get(i);
+ Objective objective = ManifestFactory.createObjective();
+
+ objective.objectiveID = objectiveId;
+ objective.mapInfo.add(ManifestFactory.createMapInfo(objectiveId));
+
+ summaryPage.sequencing.objectives.objective.add(objective);
+ }
+ }
+
+ private ArrayList<String> getShowingItemsIds(TreeItem root) {
+ ArrayList<String> result = new ArrayList<String>();
+
+ for (int i = 0; i < root.getChildCount(); i++) {
+ TreeItem item = root.getChild(i);
+ ItemModel model = ItemModels.getModelFromItem(item);
+ if (model.getShowOnSummaryPage(item)) {
+ result.add(getItemId(item));
+ }
+
+ for (int j = 0; i < item.getChildCount(); i++) {
+ TreeItem child = item.getChild(j);
+ ItemModel chapterModel = ItemModels.getModelFromItem(child);
+
+ if (chapterModel.getClass() == ChapterModel.class) {
+ if (((ChapterModel) chapterModel).getShowOnSummaryPage(child)) {
+ result.addAll(getShowingItemsIds(child));
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
private void recursivlyUpdateObjectives(TreeItem root) {
updateItemObjectives(root);
-
- for (int i=0; i < root.getChildCount(); i++){
+
+ for (int i = 0; i < root.getChildCount(); i++) {
recursivlyUpdateObjectives(root.getChild(i));
}
}
@@ -103,7 +152,7 @@
showSummaryPage = model.getShowSummaryPage(root);
} else {
throw new TestDocException(
- "Root element must be a chapter or an organization");
+ "Root element must be a chapter or an organization");
}
return showSummaryPage;
@@ -171,8 +220,7 @@
if (anItem.getClass() == Item.class) {
if (((Item) anItem).sequencing == null) {
- ((Item) anItem).sequencing = ManifestFactory
- .createSequencing();
+ ((Item) anItem).sequencing = ManifestFactory.createSequencing();
}
sequencing = ((Item) anItem).sequencing;
@@ -183,32 +231,34 @@
private void updateItemObjectives(TreeItem anItem) {
Sequencing sequencing = getSequencingInstance(anItem);
- if (sequencing.objectives == null){
+ if (sequencing.objectives == null) {
sequencing.objectives = ManifestFactory.createObjectives();
}
-
- sequencing.objectives.primaryObjective = ManifestFactory.createObjective();
+
+ sequencing.objectives.primaryObjective = ManifestFactory
+ .createObjective();
sequencing.objectives.primaryObjective.objectiveID = getItemId(anItem);
sequencing.objectives.primaryObjective.satisfiedByMeasure = true;
-
+
MapInfo mapInfo = ManifestFactory.createMapInfo();
mapInfo.writeNormalizedMeasure = true;
mapInfo.writeSatisfiedStatus = true;
mapInfo.targetObjectiveID = sequencing.objectives.primaryObjective.objectiveID;
-
- sequencing.objectives.primaryObjective.mapInfo = ManifestFactory.createMapInfos();
+
+ sequencing.objectives.primaryObjective.mapInfo = ManifestFactory
+ .createMapInfos();
sequencing.objectives.primaryObjective.mapInfo.add(mapInfo);
}
-
+
private String getItemId(TreeItem anItem) {
- if (anItem.getClass() == Item.class){
- return ((Item)anItem).identifier;
+ if (anItem.getClass() == Item.class) {
+ return ((Item) anItem).identifier;
}
-
- if (anItem.getClass() == Organization.class){
- return ((Organization)anItem).identifier;
+
+ if (anItem.getClass() == Organization.class) {
+ return ((Organization) anItem).identifier;
}
-
+
return null;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|