From: <se...@us...> - 2008-05-10 09:19:01
|
Revision: 117 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=117&view=rev Author: sem62 Date: 2008-05-10 02:19:03 -0700 (Sat, 10 May 2008) Log Message: ----------- Fixed bug: Sometimes, PrimaryObjective in Summary page was null. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java 2008-05-10 09:16:37 UTC (rev 116) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java 2008-05-10 09:19:03 UTC (rev 117) @@ -3,11 +3,8 @@ 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.item.sequencing.objectives.Objectives; import edu.lnu.FireFly.FFManifest.parser.TestDocException; @@ -75,7 +72,8 @@ ArrayList<String> objectiveIds = getShowingItemsIds(root); - Objectives objectives = getObjectivesInstance(summaryPage); + ItemModel model = ItemModels.getModelFromItem(summaryPage); + Objectives objectives = model.getObjectivesInstance(summaryPage); objectives.objective = new ArrayList<Objective>(); for (int i = 0; i < objectiveIds.size(); i++) { @@ -89,16 +87,6 @@ } } - private Objectives getObjectivesInstance(Item summaryPage) { - Sequencing sequencing = getSequencingInstance(summaryPage); - - if (sequencing.objectives == null) { - sequencing.objectives = ManifestFactory.createObjectives(); - } - - return sequencing.objectives; - } - private ArrayList<String> getShowingItemsIds(TreeItem root) { ArrayList<String> result = new ArrayList<String>(); @@ -106,7 +94,7 @@ TreeItem item = root.getChild(i); ItemModel model = ItemModels.getModelFromItem(item); if (model.getShowOnSummaryPage(item)) { - result.add(getItemId(item)); + result.add(model.getIdentifier(item)); } for (int j = 0; j < item.getChildCount(); j++) { @@ -114,7 +102,7 @@ ItemModel childModel = ItemModels.getModelFromItem(child); if (childModel.getShowOnSummaryPage(child)) { - result.add(getItemId(child)); + result.add(model.getIdentifier(child)); result.addAll(getShowingItemsIds(child)); } } @@ -124,7 +112,9 @@ } private void recursivlyUpdateObjectives(TreeItem root) { - updateItemObjectives(root); + + ItemModel model = ItemModels.getModelFromItem(root); + model.updateItemObjectives(root); for (int i = 0; i < root.getChildCount(); i++) { recursivlyUpdateObjectives(root.getChild(i)); @@ -227,59 +217,4 @@ } } - private Sequencing getSequencingInstance(TreeItem anItem) { - Sequencing sequencing = null; - - if (anItem.getClass() == Organization.class) { - if (((Organization) anItem).sequencing == null) { - ((Organization) anItem).sequencing = ManifestFactory - .createSequencing(); - } - - sequencing = ((Organization) anItem).sequencing; - } - - if (anItem.getClass() == Item.class) { - if (((Item) anItem).sequencing == null) { - ((Item) anItem).sequencing = ManifestFactory.createSequencing(); - } - - sequencing = ((Item) anItem).sequencing; - } - return sequencing; - } - - private void updateItemObjectives(TreeItem anItem) { - Sequencing sequencing = getSequencingInstance(anItem); - - if (sequencing.objectives == null) { - sequencing.objectives = ManifestFactory.createObjectives(); - } - - 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.add(mapInfo); - } - - private String getItemId(TreeItem anItem) { - if (anItem.getClass() == Item.class) { - return ((Item) anItem).identifier; - } - - if (anItem.getClass() == Organization.class) { - return ((Organization) anItem).identifier; - } - - return null; - } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-10 09:16:37 UTC (rev 116) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-10 09:19:03 UTC (rev 117) @@ -10,8 +10,12 @@ 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.Objectives; import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.WebEditor; +import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; public abstract class ItemModel { @@ -161,5 +165,60 @@ return null; } + public Objectives getObjectivesInstance(Item summaryPage) { + ItemModel model = ItemModels.getModelFromItem(summaryPage); + Sequencing sequencing = model.getSequencingInstance(summaryPage); + + if (sequencing.objectives == null) { + sequencing.objectives = ManifestFactory.createObjectives(); + } + + return sequencing.objectives; + } + + public void updateItemObjectives(TreeItem anItem) { + Sequencing sequencing = getSequencingInstance(anItem); + + if (sequencing.objectives == null) { + sequencing.objectives = ManifestFactory.createObjectives(); + } + + sequencing.objectives.primaryObjective = ManifestFactory + .createObjective(); + sequencing.objectives.primaryObjective.objectiveID = getIdentifier(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.add(mapInfo); + } + + private Sequencing getSequencingInstance(TreeItem anItem) { + Sequencing sequencing = null; + + if (anItem.getClass() == Organization.class) { + if (((Organization) anItem).sequencing == null) { + ((Organization) anItem).sequencing = ManifestFactory + .createSequencing(); + } + + sequencing = ((Organization) anItem).sequencing; + } + + if (anItem.getClass() == Item.class) { + if (((Item) anItem).sequencing == null) { + ((Item) anItem).sequencing = ManifestFactory.createSequencing(); + } + + sequencing = ((Item) anItem).sequencing; + } + return sequencing; + } + protected abstract ItemData createItemDataInstance(); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java 2008-05-10 09:16:37 UTC (rev 116) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java 2008-05-10 09:19:03 UTC (rev 117) @@ -2,8 +2,8 @@ import java.util.ArrayList; +import edu.lnu.FireFly.FFManifest.Organization; import edu.lnu.FireFly.FFManifest.TreeItem; -import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; public class ItemModels { @@ -38,21 +38,27 @@ return null; } - public static void initializeAllItemDatas(TreeItem root) { + public static void synchronizeAllItemDatas(TreeItem root) { int childsCount = root.getChildCount(); + if (root.getClass() == Organization.class) { + // this is a root of tree. + synchronizeItemDatas(root, false); + } + for (int i = 0; i < childsCount; i++) { - TreeItem item = root.getChild(i); - ItemModel model = ItemModels.getModelFromItem(item); + synchronizeItemDatas(root.getChild(i), true); + } + } - if (item.getClass() == Item.class) { - model.synchronizeItemWithResource((Item)item, "course"); - } + private static void synchronizeItemDatas(TreeItem item, boolean recursivly) { + ItemModel model = ItemModels.getModelFromItem(item); - if (model.getClass() == ChapterModel.class - || model.getClass() == OrganizationModel.class) { - initializeAllItemDatas(item); - } + model.synchronizeItemWithResource(item, "course"); + + if ((model.getClass() == ChapterModel.class || model.getClass() == OrganizationModel.class) + && recursivly) { + synchronizeAllItemDatas(item); } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-10 09:16:37 UTC (rev 116) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-10 09:19:03 UTC (rev 117) @@ -76,7 +76,7 @@ .getFileContent("imsmanifest.xml", "course")); TreeDataModel.initInstance(manifest); - ItemModels.initializeAllItemDatas(manifest.getRoot()); + ItemModels.synchronizeAllItemDatas(manifest.getRoot()); SummaryPageManager.getInstance().setManifest(manifest); } @@ -137,7 +137,7 @@ try { manifest = ManifestFactory.createManifest(); SummaryPageManager.getInstance().setManifest(manifest); - ItemModels.initializeAllItemDatas(manifest.getRoot()); + ItemModels.synchronizeAllItemDatas(manifest.getRoot()); TreeDataModel.initInstance(manifest); TreeItem root = manifest.getRoot(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |