From: <se...@us...> - 2008-05-22 20:21:09
|
Revision: 156 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=156&view=rev Author: sem62 Date: 2008-05-22 13:21:05 -0700 (Thu, 22 May 2008) Log Message: ----------- Added AnswerStatus class and subclasses. Must be use for determining for score calculation. By default - without server (Internally. Beside on ItemData). Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/LectureUserAnswerStatus.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ScoredUserAnswerStatus.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -8,152 +8,160 @@ import edu.lnu.FireFly.WebEditor.ItemModels.ItemModel; import edu.lnu.FireFly.WebEditor.ItemModels.ItemModels; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; +import edu.lnu.FireFly.WebEditor.ItemModels.UserAnswerStatus; import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; public class ChapterModel extends ResourcedItemModel { - public ChapterModel() { - super(); - modelName = "ChapterModel"; - isContainerItem = true; - - registerConfigDlg(new ChapterPropertiestsDlg()); - } + @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return null; + } - @Override - public boolean canAddToItem(TreeItem parent) { - // TODO Auto-generated method stub - return true; - } + public ChapterModel() { + super(); + modelName = "ChapterModel"; + isContainerItem = true; - @Override - public boolean canConvertItem(TreeItem parent) { - // TODO Auto-generated method stub - return false; - } + registerConfigDlg(new ChapterPropertiestsDlg()); + } - @Override - protected ItemData createItemDataInstance() { - return new ChapterItemData(); - } + @Override + public boolean canAddToItem(TreeItem parent) { + // TODO Auto-generated method stub + return true; + } - @Override - protected String getConfFileName(TreeItem anItem) { - return getIdentifier(anItem); - } + @Override + public boolean canConvertItem(TreeItem parent) { + // TODO Auto-generated method stub + return false; + } - private ChapterItemData getData(TreeItem anItem) { - return (ChapterItemData) getItemData(anItem); - } + @Override + protected ItemData createItemDataInstance() { + return new ChapterItemData(); + } - @Override - protected String getDefaultTitle() { - return "New chapter"; - } + @Override + protected String getConfFileName(TreeItem anItem) { + return getIdentifier(anItem); + } - @Override - public boolean getLimitConditionsMenuVisible(TreeItem anItem) { - return false; - } + private ChapterItemData getData(TreeItem anItem) { + return (ChapterItemData) getItemData(anItem); + } - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return true; - } + @Override + protected String getDefaultTitle() { + return "New chapter"; + } - public boolean getShowSummaryPage(TreeItem anItem) { - ChapterItemData itemData = getData(anItem); + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return false; + } - if (itemData == null) { - System.out - .println("Warning: ItemData is null at ItemModel.getShowOnSummaryPage()"); + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return true; + } - return false; - } + public boolean getShowSummaryPage(TreeItem anItem) { + ChapterItemData itemData = getData(anItem); - return itemData.isShowSummaryPage(); - } + if (itemData == null) { + System.out + .println("Warning: ItemData is null at ItemModel.getShowOnSummaryPage()"); - @Override - public boolean getShowSummaryPageMenuVisible() { - return true; + return false; } - @Override - public boolean isRemovable() { - return true; + return itemData.isShowSummaryPage(); + } + + @Override + public boolean getShowSummaryPageMenuVisible() { + return true; + } + + @Override + public boolean isRemovable() { + return true; + } + + @Override + public void remove(TreeItem aChapter) { + if (!canDeleteChapter(aChapter)) { + System.out + .print("This chapter contains items. Please, remove all childs and try again.\n"); + return; } - @Override - public void remove(TreeItem aChapter) { - if (!canDeleteChapter(aChapter)) { - System.out - .print("This chapter contains items. Please, remove all childs and try again.\n"); - return; - } - - for (int i=0; i < aChapter.getChildCount(); i++){ - TreeItem item = aChapter.getChild(i); - ItemModel model = ItemModels.getModelFromItem(item); - - model.remove(item); - } + for (int i = 0; i < aChapter.getChildCount(); i++) { + TreeItem item = aChapter.getChild(i); + ItemModel model = ItemModels.getModelFromItem(item); - TreeDataModel.getInstance().treeNodesDeleted(aChapter); - aChapter.getParent().removeChild(aChapter); - - WebEditorServiceClient.getInstance().deleteFile(getConfFileName(aChapter)); - SummaryPageManager.getInstance().updateSummaryPages(); + model.remove(item); } - /** - * Determine if this chapter can deleted.<br> - * Chapter can be deleted, if it have no childs or it containe only summary page. - * - * @param aChapter - * @return true, if this chapter can be deleted. - */ - private boolean canDeleteChapter(TreeItem aChapter) { - boolean result = aChapter.getChildCount() == 0; - - if (!result){ - if (aChapter.getChildCount() == 1){ - TreeItem child = aChapter.getChild(0); - ItemModel model = ItemModels.getModelFromItem(child); - - if (model.getClass() == SummaryPageModel.class){ - return true; - } - } + TreeDataModel.getInstance().treeNodesDeleted(aChapter); + aChapter.getParent().removeChild(aChapter); + + WebEditorServiceClient.getInstance().deleteFile( + getConfFileName(aChapter)); + SummaryPageManager.getInstance().updateSummaryPages(); + } + + /** + * Determine if this chapter can deleted.<br> + * Chapter can be deleted, if it have no childs or it containe only summary + * page. + * + * @param aChapter + * @return true, if this chapter can be deleted. + */ + private boolean canDeleteChapter(TreeItem aChapter) { + boolean result = aChapter.getChildCount() == 0; + + if (!result) { + if (aChapter.getChildCount() == 1) { + TreeItem child = aChapter.getChild(0); + ItemModel model = ItemModels.getModelFromItem(child); + + if (model.getClass() == SummaryPageModel.class) { + return true; } - - return result; + } } - public void setShowSummaryPage(TreeItem anItem, boolean state) { - ChapterItemData itemData = getData(anItem); + return result; + } - if (itemData == null) { - ItemData data = new ChapterItemData(); - setItemData(anItem, data); - itemData = (ChapterItemData) getItemData(anItem); - } + public void setShowSummaryPage(TreeItem anItem, boolean state) { + ChapterItemData itemData = getData(anItem); - if (itemData.isShowSummaryPage() != state) { - itemData.setShowSummaryPage(state); - updateItemResource(anItem, true); - } + if (itemData == null) { + ItemData data = new ChapterItemData(); + setItemData(anItem, data); + itemData = (ChapterItemData) getItemData(anItem); } - @Override - protected void updateResourceFile(TreeItem anItem) { - // do nothing. - // Chapter currently haven't resource file + if (itemData.isShowSummaryPage() != state) { + itemData.setShowSummaryPage(state); + updateItemResource(anItem, true); } + } - @Override - public boolean modelHasResource() { - return false; - } + @Override + protected void updateResourceFile(TreeItem anItem) { + // do nothing. + // Chapter currently haven't resource file + } + + @Override + public boolean modelHasResource() { + return false; + } } \ No newline at end of file Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -9,84 +9,93 @@ import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.CompileQPropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; +import edu.lnu.FireFly.WebEditor.ItemModels.ScoredUserAnswerStatus; import edu.lnu.FireFly.WebEditor.ItemModels.Template; +import edu.lnu.FireFly.WebEditor.ItemModels.UserAnswerStatus; public class CompileQModel extends ResourcedItemModel { - - @Override - protected String getDefaultTitle() { - return "New compile question"; - } - @Override - public boolean getLimitConditionsMenuVisible(TreeItem anItem) { - return true; - } + @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return new ScoredUserAnswerStatus(anItem); + } - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return true; - } + @Override + protected String getDefaultTitle() { + return "New compile question"; + } - public CompileQModel() { - modelName = "CompileQModel"; - registerConfigDlg(new CompileQPropertiestsDlg()); - } + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return true; + } - @Override - public boolean canAddToItem(TreeItem parent) { - // TODO Auto-generated method stub - return true; - } + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return true; + } - @Override - public boolean canConvertItem(TreeItem parent) { - // TODO Auto-generated method stub - return false; - } + public CompileQModel() { + modelName = "CompileQModel"; + registerConfigDlg(new CompileQPropertiestsDlg()); + } - public CompileQData getData(TreeItem item) { - return ((CompileQData) getItemData(item)); - } + @Override + public boolean canAddToItem(TreeItem parent) { + // TODO Auto-generated method stub + return true; + } - @Override - public boolean isRemovable() { - return true; - } + @Override + public boolean canConvertItem(TreeItem parent) { + // TODO Auto-generated method stub + return false; + } - protected ItemData createItemDataInstance() { - return new CompileQData(); - } + public CompileQData getData(TreeItem item) { + return ((CompileQData) getItemData(item)); + } - @Override - protected void updateResourceFile(TreeItem anItem) { - Resource resource = WebEditor.instance.getManifest().resources - .findResourceByIdentifier(((Item) anItem).identifierref); + @Override + public boolean isRemovable() { + return true; + } - Template template = new Template(resource.getFullHref(), this); + protected ItemData createItemDataInstance() { + return new CompileQData(); + } - CompileQData itemData = getData(anItem); + @Override + protected void updateResourceFile(TreeItem anItem) { + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(((Item) anItem).identifierref); - template.setProperty("Caption", itemData.getCaption()); + Template template = new Template(resource.getFullHref(), this); - Iterator<CompileQPart> iter = itemData.getParts().questionParts.iterator(); - String answers = "\r\nsetProgrammingLanguage(\"" - + itemData.getLanguge() + "\");\r\n"; + CompileQData itemData = getData(anItem); - while (iter.hasNext()) { - CompileQPart part = iter.next(); - answers += "addPart(\"" + part.getAnswerText().replace("\"", "\\\"") + "\", " - + part.getPartAttributes().isAnswer() + ", " - + part.getPartAttributes().isReadOnly() + ", " - + part.getPartAttributes().isVisible() + ");" + "\r\n"; - } + template.setProperty("Caption", itemData.getCaption()); - template.setProperty("parts", answers); - template.updateResource(); + Iterator<CompileQPart> iter = itemData.getParts().questionParts + .iterator(); + String answers = "\r\nsetProgrammingLanguage(\"" + + itemData.getLanguge() + "\");\r\n"; + + while (iter.hasNext()) { + CompileQPart part = iter.next(); + answers += "addPart(\"" + + part.getAnswerText().replace("\"", "\\\"") + "\", " + + part.getPartAttributes().isAnswer() + ", " + + part.getPartAttributes().isReadOnly() + ", " + + part.getPartAttributes().isVisible() + ");" + "\r\n"; } - @Override - public boolean getShowSummaryPageMenuVisible() { - return false; - } + template.setProperty("parts", answers); + template.updateResource(); + } + + @Override + public boolean getShowSummaryPageMenuVisible() { + return false; + } } \ No newline at end of file Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -15,6 +15,8 @@ import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.Objectives; import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.Rte.Activity; +import edu.lnu.FireFly.Rte.Cmi; +import edu.lnu.FireFly.Rte.CmiManager; import edu.lnu.FireFly.WebEditor.WebEditor; import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; @@ -23,249 +25,268 @@ import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; public abstract class ItemModel { - protected static HashMap<TreeItem, ItemData> questionsData = new HashMap<TreeItem, ItemData>(); + protected static HashMap<TreeItem, ItemData> questionsData = new HashMap<TreeItem, ItemData>(); - protected String modelName = "Abstract model"; + protected String modelName = "Abstract model"; - protected abstract String getDefaultTitle(); - - public void setItemData(TreeItem anItem, ItemData data) { - questionsData.put(anItem, data); - } + protected abstract String getDefaultTitle(); - protected boolean isContainerItem = false; + public void setItemData(TreeItem anItem, ItemData data) { + questionsData.put(anItem, data); + } - private PropertyDlg propertyDlg = null; + protected boolean isContainerItem = false; - public final boolean getShowOnSummaryPage(TreeItem anItem) { - if (this.getClass() == SummaryPageModel.class){ - return false; - } - - ItemData itemData = getItemData(anItem); + private PropertyDlg propertyDlg = null; - if (itemData == null) { - System.out - .println("Warning: ItemData is null at ItemModel.getShowOnSummaryPage()"); + public final boolean getShowOnSummaryPage(TreeItem anItem) { + if (this.getClass() == SummaryPageModel.class) { + return false; + } - return false; - } + ItemData itemData = getItemData(anItem); - return itemData.getShowOnSummaryPage(); + if (itemData == null) { + System.out + .println("Warning: ItemData is null at ItemModel.getShowOnSummaryPage()"); + + return false; } - protected abstract void initializeDataForItem(Item anItem); - - public final void setShowOnSummaryPage(TreeItem anItem, boolean aValue) { - ItemData itemData = getItemData(anItem); - - if (itemData == null){ - System.out.println("Warning: itemData is null."); - return; - } - - if (itemData.getShowOnSummaryPage() != aValue) { - itemData.setShowOnSummaryPage(aValue); + return itemData.getShowOnSummaryPage(); + } - updateItemResource(anItem, true); - } + protected abstract void initializeDataForItem(Item anItem); + + public final void setShowOnSummaryPage(TreeItem anItem, boolean aValue) { + ItemData itemData = getItemData(anItem); + + if (itemData == null) { + System.out.println("Warning: itemData is null."); + return; } - public abstract void addItem(TreeItem parent); + if (itemData.getShowOnSummaryPage() != aValue) { + itemData.setShowOnSummaryPage(aValue); - public abstract boolean canAddToItem(TreeItem parent); + updateItemResource(anItem, true); + } + } - public abstract boolean canConvertItem(TreeItem parent); - - public final void ConfigureItem(TreeItem item) { - if (propertyDlg != null){ - propertyDlg.showDialog(item); - } + public abstract void addItem(TreeItem parent); -// In SimpleQModel -// WebEditor.tree.setSelectionPath(null); -// WebEditor.tree.setSelectionPath(TreeDataModel.getInstance() -// .getItemPath(item)); + public abstract boolean canAddToItem(TreeItem parent); - TreeDataModel.getInstance().treeNodesChanged(item); - - Activity.synchronizeActivitiesStructure(SummaryPageManager.getInstance().getManifest()); - } + public abstract boolean canConvertItem(TreeItem parent); - public final void registerConfigDlg(PropertyDlg dlg){ - this.propertyDlg = dlg; + public final void ConfigureItem(TreeItem item) { + if (propertyDlg != null) { + propertyDlg.showDialog(item); } - protected String createNewResource() { - if (modelHasResource()){ - - Resource resource = new Resource(); - resource.identifier = this.getClass().getSimpleName() + "_res_" - + UUID.randomUUID().toString(); - resource.scormType = "sco"; - resource.type = "webcontent"; + // In SimpleQModel + // WebEditor.tree.setSelectionPath(null); + // WebEditor.tree.setSelectionPath(TreeDataModel.getInstance() + // .getItemPath(item)); - String fName = resource.identifier + ".html"; - resource.setHref(fName); + TreeDataModel.getInstance().treeNodesChanged(item); - WebEditor.instance.getManifest().resources.resources.add(resource); + Activity.synchronizeActivitiesStructure(SummaryPageManager + .getInstance().getManifest()); + } - return resource.identifier; - } - - return null; - } + public final void registerConfigDlg(PropertyDlg dlg) { + this.propertyDlg = dlg; + } - public boolean modelHasResource() { - return true; - } + protected String createNewResource() { + if (modelHasResource()) { - public ItemData getItemData(TreeItem anItem) { - if (questionsData.containsKey(anItem)) { - return questionsData.get(anItem); - } + Resource resource = new Resource(); + resource.identifier = this.getClass().getSimpleName() + "_res_" + + UUID.randomUUID().toString(); + resource.scormType = "sco"; + resource.type = "webcontent"; - return null; + String fName = resource.identifier + ".html"; + resource.setHref(fName); + + WebEditor.instance.getManifest().resources.resources.add(resource); + + return resource.identifier; } - public final String getModelName() { - return modelName; + return null; + } + + public boolean modelHasResource() { + return true; + } + + public ItemData getItemData(TreeItem anItem) { + if (questionsData.containsKey(anItem)) { + return questionsData.get(anItem); } - public final String getResource(URL url) { - try { - InputStream stream = url.openStream(); + return null; + } - InputStreamReader reader = new InputStreamReader(stream); + public final String getModelName() { + return modelName; + } - BufferedReader br = new BufferedReader(reader); + public final String getResource(URL url) { + try { + InputStream stream = url.openStream(); - String line = ""; - String result = ""; - while ((line = br.readLine()) != null) { - result += line; - } + InputStreamReader reader = new InputStreamReader(stream); - stream.close(); + BufferedReader br = new BufferedReader(reader); - return result; - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } + String line = ""; + String result = ""; + while ((line = br.readLine()) != null) { + result += line; + } - public boolean isApplaingForItem(TreeItem treeItem) { - if (treeItem.getClass() != Item.class) { - return false; - } + stream.close(); - Item item = (Item) treeItem; - if (item.parameters != null - && item.parameters.contains("pageType=" + modelName)) { - return true; - } + return result; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } - return false; + public boolean isApplaingForItem(TreeItem treeItem) { + if (treeItem.getClass() != Item.class) { + return false; } - - public final boolean isContainer() { - return isContainerItem; + + Item item = (Item) treeItem; + if (item.parameters != null + && item.parameters.contains("pageType=" + modelName)) { + return true; } - public abstract boolean isRemovable(); + return false; + } - public abstract void remove(TreeItem anItem); + public final boolean isContainer() { + return isContainerItem; + } - public void rename(TreeItem item, String newTitle) { - ((Item) item).title = newTitle; - TreeDataModel.getInstance().treeNodesChanged(item); - } + public abstract boolean isRemovable(); - public abstract boolean synchronizeItemWithResource(TreeItem anItem, String location); - - public abstract boolean updateItemResource(TreeItem item, boolean updateSummaryPages); + public abstract void remove(TreeItem anItem); - public abstract boolean getLimitConditionsMenuVisible(TreeItem anItem); + public void rename(TreeItem item, String newTitle) { + ((Item) item).title = newTitle; + TreeDataModel.getInstance().treeNodesChanged(item); + } - public abstract boolean getShowOnSummaryPageMenuVisible(); + public abstract boolean synchronizeItemWithResource(TreeItem anItem, + String location); - public abstract boolean getShowSummaryPageMenuVisible(); + public abstract boolean updateItemResource(TreeItem item, + boolean updateSummaryPages); - public final String getIdentifierRef(TreeItem anItem) { - if (anItem.getClass() == Item.class){ - return ((Item)anItem).identifierref; - } - - return null; - } + public abstract boolean getLimitConditionsMenuVisible(TreeItem anItem); - public final String getIdentifier(TreeItem anItem) { - if (anItem.getClass() == Item.class){ - return ((Item)anItem).identifier; - } + public abstract boolean getShowOnSummaryPageMenuVisible(); - if (anItem.getClass() == Organization.class){ - return ((Organization)anItem).identifier; - } - - return null; + public abstract boolean getShowSummaryPageMenuVisible(); + + public final String getIdentifierRef(TreeItem anItem) { + if (anItem.getClass() == Item.class) { + return ((Item) anItem).identifierref; } - public Objectives getObjectivesInstance(Item summaryPage) { - ItemModel model = ItemModels.getModelFromItem(summaryPage); - Sequencing sequencing = model.getSequencingInstance(summaryPage); + return null; + } - if (sequencing.objectives == null) { - sequencing.objectives = ManifestFactory.createObjectives(); - } + public final String getIdentifier(TreeItem anItem) { + if (anItem.getClass() == Item.class) { + return ((Item) anItem).identifier; + } - return sequencing.objectives; + if (anItem.getClass() == Organization.class) { + return ((Organization) anItem).identifier; } - public void updateItemObjectives(TreeItem anItem) { - Sequencing sequencing = getSequencingInstance(anItem); + return null; + } - if (sequencing.objectives == null) { - sequencing.objectives = ManifestFactory.createObjectives(); - } + public Objectives getObjectivesInstance(Item summaryPage) { + ItemModel model = ItemModels.getModelFromItem(summaryPage); + Sequencing sequencing = model.getSequencingInstance(summaryPage); - sequencing.objectives.primaryObjective = ManifestFactory - .createObjective(); - sequencing.objectives.primaryObjective.objectiveID = getIdentifier(anItem); - sequencing.objectives.primaryObjective.satisfiedByMeasure = true; + if (sequencing.objectives == null) { + sequencing.objectives = ManifestFactory.createObjectives(); + } - MapInfo mapInfo = ManifestFactory.createMapInfo(); - mapInfo.writeNormalizedMeasure = true; - mapInfo.writeSatisfiedStatus = true; - mapInfo.targetObjectiveID = sequencing.objectives.primaryObjective.objectiveID; + return sequencing.objectives; + } - sequencing.objectives.primaryObjective.mapInfo = ManifestFactory - .createMapInfos(); - sequencing.objectives.primaryObjective.mapInfo.add(mapInfo); + public void updateItemObjectives(TreeItem anItem) { + Sequencing sequencing = getSequencingInstance(anItem); + + if (sequencing.objectives == null) { + sequencing.objectives = ManifestFactory.createObjectives(); } - private Sequencing getSequencingInstance(TreeItem anItem) { - Sequencing sequencing = null; + sequencing.objectives.primaryObjective = ManifestFactory + .createObjective(); + sequencing.objectives.primaryObjective.objectiveID = getIdentifier(anItem); + sequencing.objectives.primaryObjective.satisfiedByMeasure = true; - if (anItem.getClass() == Organization.class) { - if (((Organization) anItem).sequencing == null) { - ((Organization) anItem).sequencing = ManifestFactory - .createSequencing(); - } + MapInfo mapInfo = ManifestFactory.createMapInfo(); + mapInfo.writeNormalizedMeasure = true; + mapInfo.writeSatisfiedStatus = true; + mapInfo.targetObjectiveID = sequencing.objectives.primaryObjective.objectiveID; - sequencing = ((Organization) anItem).sequencing; - } + sequencing.objectives.primaryObjective.mapInfo = ManifestFactory + .createMapInfos(); + sequencing.objectives.primaryObjective.mapInfo.add(mapInfo); + } - if (anItem.getClass() == Item.class) { - if (((Item) anItem).sequencing == null) { - ((Item) anItem).sequencing = ManifestFactory.createSequencing(); - } + private Sequencing getSequencingInstance(TreeItem anItem) { + Sequencing sequencing = null; - sequencing = ((Item) anItem).sequencing; - } - return sequencing; + if (anItem.getClass() == Organization.class) { + if (((Organization) anItem).sequencing == null) { + ((Organization) anItem).sequencing = ManifestFactory + .createSequencing(); + } + + sequencing = ((Organization) anItem).sequencing; } - protected abstract ItemData createItemDataInstance(); + 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(); + + public void handleUserAnswer(String answer, TreeItem anItem){ + Activity activity = Activity.findActivityByIdentifier(anItem.getIdentifier()); + + Cmi cmi =CmiManager.getInstance().getModelForActivity(activity); + if (cmi == null){ + throw new NullPointerException("Cmi model for activity is null at ItemModel.handleUserAnswer()"); + } + + UserAnswerStatus userAnswer = createUserAnswerInstance(anItem); + userAnswer.setRawAnswer(answer); + + userAnswer.updateRteFields(cmi); + } + + protected abstract UserAnswerStatus createUserAnswerInstance(TreeItem anItem); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -6,68 +6,75 @@ import edu.lnu.FireFly.WebEditor.WebEditor; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.LecturePropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; +import edu.lnu.FireFly.WebEditor.ItemModels.LectureUserAnswerStatus; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; import edu.lnu.FireFly.WebEditor.ItemModels.Template; +import edu.lnu.FireFly.WebEditor.ItemModels.UserAnswerStatus; public class LectureModel extends ResourcedItemModel { - @Override - protected String getDefaultTitle() { - return "New lecture"; - } + @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return new LectureUserAnswerStatus(anItem); + } - @Override - public boolean getShowSummaryPageMenuVisible() { - return false; - } + @Override + protected String getDefaultTitle() { + return "New lecture"; + } - @Override - public boolean getLimitConditionsMenuVisible(TreeItem anItem) { - return true; - } + @Override + public boolean getShowSummaryPageMenuVisible() { + return false; + } - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return true; - } + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return true; + } - public LectureModel() { - modelName = "LectureModel"; - registerConfigDlg(new LecturePropertiestsDlg()); - } + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return true; + } - @Override - public boolean canAddToItem(TreeItem parent) { - // TODO Auto-generated method stub - return true; - } + public LectureModel() { + modelName = "LectureModel"; + registerConfigDlg(new LecturePropertiestsDlg()); + } - @Override - public boolean canConvertItem(TreeItem parent) { - // TODO Auto-generated method stub - return false; - } + @Override + public boolean canAddToItem(TreeItem parent) { + // TODO Auto-generated method stub + return true; + } - private LectureData getData(TreeItem item) { - return (LectureData) getItemData(item); - } + @Override + public boolean canConvertItem(TreeItem parent) { + // TODO Auto-generated method stub + return false; + } - @Override - protected void updateResourceFile(TreeItem anItem) { - Resource resource = WebEditor.instance.getManifest().resources - .findResourceByIdentifier(((Item) anItem).identifierref); + private LectureData getData(TreeItem item) { + return (LectureData) getItemData(item); + } - Template template = new Template(resource.getFullHref(), this); + @Override + protected void updateResourceFile(TreeItem anItem) { + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(((Item) anItem).identifierref); - LectureData itemData = getData(anItem); + Template template = new Template(resource.getFullHref(), this); - template.setProperty("caption", itemData.getCaption()); - template.setProperty("content", itemData.getContent()); + LectureData itemData = getData(anItem); - template.updateResource(); - } + template.setProperty("caption", itemData.getCaption()); + template.setProperty("content", itemData.getContent()); - @Override - protected ItemData createItemDataInstance() { - return new LectureData(); - } + template.updateResource(); + } + + @Override + protected ItemData createItemDataInstance() { + return new LectureData(); + } } \ No newline at end of file Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/LectureUserAnswerStatus.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/LectureUserAnswerStatus.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/LectureUserAnswerStatus.java 2008-05-22 20:21:05 UTC (rev 156) @@ -0,0 +1,24 @@ +package edu.lnu.FireFly.WebEditor.ItemModels; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.Rte.Cmi; + +public class LectureUserAnswerStatus extends UserAnswerStatus { + + public LectureUserAnswerStatus(TreeItem anItem) { + super(anItem); + } + + @Override + public void updateRteFields(Cmi cmi) { + // TODO Auto-generated method stub + + } + + @Override + protected void updateValues() { + // TODO Auto-generated method stub + + } + +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ScoredUserAnswerStatus.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ScoredUserAnswerStatus.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ScoredUserAnswerStatus.java 2008-05-22 20:21:05 UTC (rev 156) @@ -0,0 +1,50 @@ +package edu.lnu.FireFly.WebEditor.ItemModels; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.Rte.Cmi; + +public class ScoredUserAnswerStatus extends UserAnswerStatus{ + public ScoredUserAnswerStatus(TreeItem anItem) { + super(anItem); + } + + @Override + public void updateRteFields(Cmi cmi) { + // TODO Auto-generated method stub + + } + + @Override + protected void updateValues() { + // TODO Auto-generated method stub + + } + + private int minScore = 0; + private int maxScore = 0; + private int rawScore = 0; + + public int getMinScore() { + return minScore; + } + + public void setMinScore(int minScore) { + this.minScore = minScore; + } + + public int getMaxScore() { + return maxScore; + } + + public void setMaxScore(int maxScore) { + this.maxScore = maxScore; + } + + public int getRawScore() { + return rawScore; + } + + public void setRawScore(int rawScore) { + this.rawScore = rawScore; + } +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -9,10 +9,17 @@ import edu.lnu.FireFly.WebEditor.GUI.Dialogs.SimpleQuestionPropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; +import edu.lnu.FireFly.WebEditor.ItemModels.ScoredUserAnswerStatus; import edu.lnu.FireFly.WebEditor.ItemModels.Template; +import edu.lnu.FireFly.WebEditor.ItemModels.UserAnswerStatus; public class SimpleQuestionModel extends ResourcedItemModel { @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return new ScoredUserAnswerStatus(anItem); + } + + @Override protected String getDefaultTitle() { return "New simple question"; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -10,115 +10,121 @@ import edu.lnu.FireFly.WebEditor.ItemModels.OrganizationModel; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; import edu.lnu.FireFly.WebEditor.ItemModels.Template; +import edu.lnu.FireFly.WebEditor.ItemModels.UserAnswerStatus; import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; import edu.lnu.FireFly.WebEditor.ItemModels.Lecture.LectureModel; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; public class SummaryPageModel extends ResourcedItemModel { - @Override - protected String getDefaultTitle() { - return "New summary page"; - } + @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return null; + } - @Override - public boolean getLimitConditionsMenuVisible(TreeItem anItem) { - return false; - } + @Override + protected String getDefaultTitle() { + return "New summary page"; + } - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return false; - } + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return false; + } - public SummaryPageModel() { - modelName = "SummaryPageModel"; - } + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return false; + } - private String getSummaryPageContent(TreeItem parent) { - int childsCount = parent.getChildCount(); + public SummaryPageModel() { + modelName = "SummaryPageModel"; + } - ItemModel model = ItemModels.getModelFromItem(parent); - String res = "openBlock(\"" + parent.getTitle() + "\", \"" - + model.getModelName() + "\", \"" + model.getIdentifier(parent) - + "\");\n"; + private String getSummaryPageContent(TreeItem parent) { + int childsCount = parent.getChildCount(); - for (int i = 0; i < childsCount; i++) { - TreeItem item = parent.getChild(i); - model = ItemModels.getModelFromItem(item); + ItemModel model = ItemModels.getModelFromItem(parent); + String res = "openBlock(\"" + parent.getTitle() + "\", \"" + + model.getModelName() + "\", \"" + model.getIdentifier(parent) + + "\");\n"; - if (model.getShowOnSummaryPage(item)) { - res += getSummaryPageContentItem(item); - } - } + for (int i = 0; i < childsCount; i++) { + TreeItem item = parent.getChild(i); + model = ItemModels.getModelFromItem(item); - res += "closeBlock(\"" + parent.getTitle() + "\");\n"; - return res; + if (model.getShowOnSummaryPage(item)) { + res += getSummaryPageContentItem(item); + } } - private String getSummaryPageContentItem(TreeItem anItem) { - ItemModel model = ItemModels.getModelFromItem(anItem); + res += "closeBlock(\"" + parent.getTitle() + "\");\n"; + return res; + } - if (!model.getShowOnSummaryPage(anItem)) { - return ""; - } + private String getSummaryPageContentItem(TreeItem anItem) { + ItemModel model = ItemModels.getModelFromItem(anItem); - if (model.getClass() == SimpleQuestionModel.class - || model.getClass() == LectureModel.class) { + if (!model.getShowOnSummaryPage(anItem)) { + return ""; + } - return "add(\"" + anItem.getTitle() + "\", \"" - + model.getModelName() + "\", \"" - + ((Item) anItem).identifier + "\");\n"; - } + if (model.getClass() == SimpleQuestionModel.class + || model.getClass() == LectureModel.class) { - if (model.getClass() == ChapterModel.class - || model.getClass() == OrganizationModel.class) { + return "add(\"" + anItem.getTitle() + "\", \"" + + model.getModelName() + "\", \"" + + ((Item) anItem).identifier + "\");\n"; + } - return getSummaryPageContent(anItem); - } + if (model.getClass() == ChapterModel.class + || model.getClass() == OrganizationModel.class) { - return null; + return getSummaryPageContent(anItem); } - protected SummaryPageData getData(TreeItem anItem) { - return (SummaryPageData) getItemData(anItem); - } + return null; + } - @Override - public boolean canAddToItem(TreeItem parent) { - // It can be added to any item because it must generated automatically. - return false; - } + protected SummaryPageData getData(TreeItem anItem) { + return (SummaryPageData) getItemData(anItem); + } - @Override - public boolean canConvertItem(TreeItem parent) { - // It can't be converted from any other model - return false; - } + @Override + public boolean canAddToItem(TreeItem parent) { + // It can be added to any item because it must generated automatically. + return false; + } - @Override - public boolean getShowSummaryPageMenuVisible() { - return false; - } + @Override + public boolean canConvertItem(TreeItem parent) { + // It can't be converted from any other model + return false; + } - @Override - protected ItemData createItemDataInstance() { - return new SummaryPageData(); - } + @Override + public boolean getShowSummaryPageMenuVisible() { + return false; + } - @Override - protected void updateResourceFile(TreeItem anItem) { - Resource resource = WebEditor.instance.getManifest().resources - .findResourceByIdentifier(((Item) anItem).identifierref); + @Override + protected ItemData createItemDataInstance() { + return new SummaryPageData(); + } - Template template = new Template(resource.getFullHref(), this); + @Override + protected void updateResourceFile(TreeItem anItem) { + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(((Item) anItem).identifierref); - String content = "<script type=\"text/javascript\">" - + getSummaryPageContent(anItem.getParent()) + "</script>"; + Template template = new Template(resource.getFullHref(), this); - template.setProperty("content", content); - template.setProperty("title", anItem.getTitle()); + String content = "<script type=\"text/javascript\">" + + getSummaryPageContent(anItem.getParent()) + "</script>"; - template.updateResource(); - } + template.setProperty("content", content); + template.setProperty("title", anItem.getTitle()); + template.updateResource(); + } + } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -6,71 +6,79 @@ public class UnknownItemModel extends ItemModel { - @Override - public void addItem(TreeItem parent) { - System.out.println("Can't doing this operation with unknown item model"); - } + @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return new UnknownModelAnswerStatus(anItem); + } - @Override - public boolean canAddToItem(TreeItem parent) { - return false; - } + @Override + public void addItem(TreeItem parent) { + System.out + .println("Can't doing this operation with unknown item model"); + } - @Override - public boolean canConvertItem(TreeItem parent) { - return false; - } + @Override + public boolean canAddToItem(TreeItem parent) { + return false; + } - @Override - protected ItemData createItemDataInstance() { - System.out.println("Can't doing this operation with unknown item model"); - return null; - } + @Override + public boolean canConvertItem(TreeItem parent) { + return false; + } - @Override - protected String getDefaultTitle() { - return "Unknown"; - } + @Override + protected ItemData createItemDataInstance() { + System.out + .println("Can't doing this operation with unknown item model"); + return null; + } - @Override - public boolean getLimitConditionsMenuVisible(TreeItem anItem) { - return anItem.getChildCount() == 0; - } + @Override + protected String getDefaultTitle() { + return "Unknown"; + } - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return false; - } + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return anItem.getChildCount() == 0; + } - @Override - public boolean getShowSummaryPageMenuVisible() { - return false; - } + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return false; + } - @Override - protected void initializeDataForItem(Item anItem) { - System.out.println("Can't doing this operation with unknown item model"); - } + @Override + public boolean getShowSummaryPageMenuVisible() { + return false; + } - @Override - public boolean isRemovable() { - return true; - } + @Override + protected void initializeDataForItem(Item anItem) { + System.out + .println("Can't doing this operation with unknown item model"); + } - @Override - public void remove(TreeItem anItem) { - anItem.getParent().removeChild(anItem); - TreeDataModel.getInstance().treeNodesDeleted(anItem); - } + @Override + public boolean isRemovable() { + return true; + } - @Override - public boolean synchronizeItemWithResource(TreeItem anItem, String location) { - return false; - } + @Override + public void remove(TreeItem anItem) { + anItem.getParent().removeChild(anItem); + TreeDataModel.getInstance().treeNodesDeleted(anItem); + } - @Override - public boolean updateItemResource(TreeItem item, boolean updateSummaryPages) { - return false; - } + @Override + public boolean synchronizeItemWithResource(TreeItem anItem, String location) { + return false; + } + @Override + public boolean updateItemResource(TreeItem item, boolean updateSummaryPages) { + return false; + } + } Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java 2008-05-22 20:21:05 UTC (rev 156) @@ -0,0 +1,24 @@ +package edu.lnu.FireFly.WebEditor.ItemModels; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.Rte.Cmi; + +public class UnknownModelAnswerStatus extends UserAnswerStatus { + + public UnknownModelAnswerStatus(TreeItem anItem) { + super(anItem); + } + + @Override + public void updateRteFields(Cmi cmi){ + int interaction = 0; + String cmiElement = "interactions." + interaction + ".learner_response"; + cmi.setValue(cmiElement, getRawAnswer()); + } + + @Override + protected void updateValues() { + // TODO Auto-generated method stub + + } +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java 2008-05-22 20:21:05 UTC (rev 156) @@ -0,0 +1,27 @@ +package edu.lnu.FireFly.WebEditor.ItemModels; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.Rte.Cmi; + +public abstract class UserAnswerStatus { + private String rawAnswer = ""; + protected TreeItem item = null; + + public UserAnswerStatus(TreeItem anItem){ + item = anItem; + } + + public String getRawAnswer() { + return rawAnswer; + } + + public void setRawAnswer(String rawAnswer) { + this.rawAnswer = rawAnswer; + + updateValues(); + } + + protected abstract void updateValues(); + + public abstract void updateRteFields(Cmi cmi); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |