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. |