From: <se...@us...> - 2008-05-23 14:27:49
|
Revision: 161 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=161&view=rev Author: sem62 Date: 2008-05-23 07:27:49 -0700 (Fri, 23 May 2008) Log Message: ----------- modifying code for checking user answer internally in applet Modified Paths: -------------- WebEditor/resources/index.html WebEditor/src/deploy.jardesc WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java 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/LectureUserAnswerStatus.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 WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java WebEditor/template/LectureModel.html Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AnswersStatusManager.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Utils.java Modified: WebEditor/resources/index.html =================================================================== --- WebEditor/resources/index.html 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/resources/index.html 2008-05-23 14:27:49 UTC (rev 161) @@ -57,6 +57,14 @@ padding: 4px; } </style> + + <script type="text/javascript"> + function getVal(){ + var result = ""; + result = GetValue(document.getElementById('getval').value); + document.getElementById('getvalres').value = result + ""; + } + </script> </head> @@ -85,7 +93,7 @@ </tr> <tr height='*'> <td class='side-body'> - <applet mayscript="" name="webeditor" archive="webeditor.jar,RTEValidators.jar,FFManifest.jar,dom4j.jar,rte.jar" code=edu.lnu.FireFly.WebEditor.WebEditor.class width="100%" height="100%"> + <applet mayscript="" name="webeditor" id="webeditor" archive="webeditor.jar,RTEValidators.jar,FFManifest.jar,dom4j.jar,rte.jar" code=edu.lnu.FireFly.WebEditor.WebEditor.class width="100%" height="100%"> <PARAM NAME="courseLocation" VALUE="http://127.0.0.1/sem/course/"> <PARAM NAME="serviceLocation" VALUE="http://127.0.0.1/sem/WebEditor/service/"> <PARAM NAME="templateLocation" VALUE="http://127.0.0.1/sem/WebEditor/template/"> @@ -120,7 +128,8 @@ </tr> </tbody> </table> - </table> + <tr><td><input type=text id='getval'><input type='button' onclick="getVal();"><td><input id='getvalres'></td></tr> + </table> </body> </html> \ No newline at end of file Modified: WebEditor/src/deploy.jardesc =================================================================== --- WebEditor/src/deploy.jardesc 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/deploy.jardesc 2008-05-23 14:27:49 UTC (rev 161) @@ -11,6 +11,9 @@ </sealing> </manifest> <selectedElements exportClassFiles="true" exportJavaFiles="true" exportOutputFolder="false"> - <javaElement handleIdentifier="=webEditor"/> + <file path="/webEditor/.classpath"/> + <javaElement handleIdentifier="=webEditor/src"/> + <file path="/webEditor/webEditor.eap"/> + <file path="/webEditor/.project"/> </selectedElements> </jardesc> Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java 2008-05-23 14:27:49 UTC (rev 161) @@ -2,10 +2,13 @@ import javax.swing.JApplet; -import edu.lnu.FireFly.Rte.Activity; +import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.Rte.Cmi; import edu.lnu.FireFly.Rte.CmiManager; +import edu.lnu.FireFly.Rte.ElementName; import edu.lnu.FireFly.Rte.GlobalStateInformation; +import edu.lnu.FireFly.WebEditor.Data.AnswersStatusManager; +import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; /** * It is an Applet, but it contain API handlers. @@ -19,51 +22,73 @@ private static final long serialVersionUID = 5396705469025038804L; public static boolean initialized = false; public static boolean terminated = false; - + + private static String nextItemIdentifier = null; + + public static void setNextItemIdentifier(String itemIdentifier) { + nextItemIdentifier = itemIdentifier; + } + public String Initialize(String parameter) { System.out.print("Initialize(" + parameter + ");\n"); - + + GlobalStateInformation.setCurrentActivity(SummaryPageManager.getInstance().getManifest().findItemByIdentifier(nextItemIdentifier)); + return "true"; } public String Terminate(String parameter) { System.out.print("Terminate(" + parameter + ");\n"); + GlobalStateInformation.setCurrentActivity(null); + return "true"; } public String GetValue(String parameter) { - System.out.print("GetValue(" + parameter + ");\n"); + System.out.print("GetValue(" + parameter + ")"); - Cmi cmi = getCmiModel(); - - if (parameter.toLowerCase().startsWith("cmi.")){ - return cmi.getValue(parameter.substring(4)); - } else { - return ""; + Cmi cmi = getCmiModel(); + + String result = ""; + if (parameter.toLowerCase().startsWith("cmi.")) { + result = cmi.getValue(new ElementName(parameter.substring(4))); } + + System.out.println(" returned " + result); + return result; } private Cmi getCmiModel() { - - Activity activity = GlobalStateInformation.getCurrentActivity(); - + + TreeItem activity = GlobalStateInformation.getCurrentActivity(); + Cmi cmi = CmiManager.getInstance().getModelForActivity(activity); return cmi; } public boolean SetValue(String parameter, String value) { System.out.print("SetValue(" + parameter + ", " + value + ");\n"); - - Cmi cmi = getCmiModel(); - if (parameter.toLowerCase().startsWith("cmi.")){ - cmi.setValue(parameter.substring(4), value); - return true; + Cmi cmi = getCmiModel(); + + if (parameter.toLowerCase().startsWith("cmi.")) { + cmi.setValue(new ElementName(parameter.substring(4)), value); + + if (parameter.startsWith("cmi.answers.")) { + String itemIdentifier = GlobalStateInformation + .getCurrentActivity().getIdentifier(); + + TreeItem item = SummaryPageManager.getInstance().getManifest() + .findItemByIdentifier(itemIdentifier); + + AnswersStatusManager.getInstance().cmiAnswersChanged(item); + } + + return true; } else { return false; } - } public String Commit(String parameter) { Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java 2008-05-23 14:27:49 UTC (rev 161) @@ -9,8 +9,6 @@ import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.FFManifest.resource.Resource; -import edu.lnu.FireFly.Rte.Activity; -import edu.lnu.FireFly.Rte.GlobalStateInformation; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; public class CourseTree extends JTree implements TreeSelectionListener { @@ -40,7 +38,8 @@ public void valueChanged(TreeSelectionEvent e) { if (e.getNewLeadSelectionPath() == null) { try { - GlobalStateInformation.setCurrentActivity(null); + AppletWithApiHandle.setNextItemIdentifier(""); + getAppletContext().showDocument( new URL(Settings.getInstance().getResourceLocation() + "/empty.htm"), "ContentFrame"); @@ -57,7 +56,7 @@ Item item = (Item) e.getNewLeadSelectionPath() .getLastPathComponent(); - GlobalStateInformation.setCurrentActivity(Activity.findActivityByIdentifier(item.identifier)); + AppletWithApiHandle.setNextItemIdentifier(item.identifier); try { Resource resource = WebEditor.instance.getManifest().resources Added: WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AnswersStatusManager.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AnswersStatusManager.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AnswersStatusManager.java 2008-05-23 14:27:49 UTC (rev 161) @@ -0,0 +1,78 @@ +package edu.lnu.FireFly.WebEditor.Data; + +import java.util.HashMap; + +import edu.lnu.FireFly.FFManifest.Manifest; +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.FFManifest.parser.TestDocException; +import edu.lnu.FireFly.Rte.Cmi; +import edu.lnu.FireFly.Rte.CmiManager; +import edu.lnu.FireFly.WebEditor.ItemModels.ItemModel; +import edu.lnu.FireFly.WebEditor.ItemModels.ItemModels; +import edu.lnu.FireFly.WebEditor.ItemModels.UserAnswerStatus; + +public class AnswersStatusManager { + private HashMap<TreeItem, UserAnswerStatus> answerStatus = new HashMap<TreeItem, UserAnswerStatus>(); + private static AnswersStatusManager obj = null; + + private AnswersStatusManager() { + + } + + public void resetAllAnswers(){ + answerStatus.clear(); + + Manifest manifest = SummaryPageManager.getInstance().getManifest(); + + TreeItem root = null; + try { + root = manifest.getRoot(); + } catch (TestDocException e) { + e.printStackTrace(); + + return ; + } + + updateAllCmiModels(root); + } + + public void updateAllCmiModels(TreeItem root) { + ItemModel itemModel = ItemModels.getModelFromItem(root); + + Cmi cmi = CmiManager.getInstance().getModelForActivity(root); + + cmi.clearAnswers(); + + itemModel.handleUserAnswer(root); + + for (int i=0; i < root.getChildCount(); i++){ + updateAllCmiModels(root.getChild(i)); + } + } + + public UserAnswerStatus getAnswerStatus(TreeItem anItem) { + UserAnswerStatus userAnswerStatus = answerStatus.get(anItem); + + if (userAnswerStatus == null) { + ItemModel itemModel = ItemModels.getModelFromItem(anItem); + + answerStatus.put(anItem, itemModel.createUserAnswerInstance(anItem)); + userAnswerStatus = answerStatus.get(anItem); + } + + return userAnswerStatus; + } + + public static AnswersStatusManager getInstance() { + if (obj == null) { + obj = new AnswersStatusManager(); + } + + return obj; + } + + public void cmiAnswersChanged(TreeItem anItem) { + ItemModel itemModel = ItemModels.getModelFromItem(anItem); + itemModel.handleUserAnswer(anItem); + } +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-23 14:27:49 UTC (rev 161) @@ -15,7 +15,7 @@ public class ChapterModel extends ResourcedItemModel { @Override - protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + public UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { return null; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-23 14:27:49 UTC (rev 161) @@ -16,7 +16,7 @@ public class CompileQModel extends ResourcedItemModel { @Override - protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + public UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { return new ScoredUserAnswerStatus(anItem); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-23 14:27:49 UTC (rev 161) @@ -14,12 +14,11 @@ 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.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.AnswersStatusManager; import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; -import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.PropertyDlg; import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; @@ -90,9 +89,6 @@ // .getItemPath(item)); TreeDataModel.getInstance().treeNodesChanged(item); - - Activity.synchronizeActivitiesStructure(SummaryPageManager - .getInstance().getManifest()); } public final void registerConfigDlg(PropertyDlg dlg) { @@ -274,19 +270,22 @@ 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()"); + public void handleUserAnswer(TreeItem anItem) { + Cmi cmi = CmiManager.getInstance().getModelForActivity(anItem); + 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); + + UserAnswerStatus userAnswer = AnswersStatusManager.getInstance().getAnswerStatus(anItem); + if (userAnswer != null) { + String[] rawAnswer = cmi.getAnswers(); + + userAnswer.setRawAnswer(rawAnswer); + + userAnswer.updateRteFields(cmi); + } } - protected abstract UserAnswerStatus createUserAnswerInstance(TreeItem anItem); + public 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-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-23 14:27:49 UTC (rev 161) @@ -13,7 +13,7 @@ public class LectureModel extends ResourcedItemModel { @Override - protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + public UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { return new LectureUserAnswerStatus(anItem); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/LectureUserAnswerStatus.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/LectureUserAnswerStatus.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/LectureUserAnswerStatus.java 2008-05-23 14:27:49 UTC (rev 161) @@ -2,6 +2,9 @@ import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.Rte.Cmi; +import edu.lnu.FireFly.Rte.ElementName; +import edu.lnu.FireFly.Rte.GlobalStateInformation; +import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; public class LectureUserAnswerStatus extends UserAnswerStatus { @@ -11,14 +14,37 @@ @Override public void updateRteFields(Cmi cmi) { - // TODO Auto-generated method stub + + TreeItem currentActivity = GlobalStateInformation.getCurrentActivity(); + + GlobalStateInformation.setCurrentActivity(SummaryPageManager.getInstance().getManifest().findItemByIdentifier(item.getIdentifier())); + + String[] answers = getRawAnswer(); + String status = "incomplete"; + + cmi.setValue(new ElementName("score.min"), "0"); + cmi.setValue(new ElementName("score.max"), "0"); + cmi.setValue(new ElementName("score.raw"), "0"); + cmi.setValue(new ElementName("score.scaled"), "0"); + + cmi.setValue(new ElementName("objectives.0.score.min"), "0"); + cmi.setValue(new ElementName("objectives.0.score.max"), "0"); + cmi.setValue(new ElementName("objectives.0.score.raw"), "0"); + cmi.setValue(new ElementName("objectives.0.score.scaled"), "0"); + + if (answers != null && answers.length == 1 && answers[0].equals("read")) { + status = "completed"; + } + + cmi.setValue(new ElementName("completion_status"), status); + cmi.setValue(new ElementName("objectives.0.completion_status"), status); + cmi.setValue(new ElementName("objectives.0.score.scaled"), "1"); + + GlobalStateInformation.setCurrentActivity(currentActivity); } @Override protected void updateValues() { - // TODO Auto-generated method stub - } - } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-23 14:27:49 UTC (rev 161) @@ -15,7 +15,7 @@ public class SimpleQuestionModel extends ResourcedItemModel { @Override - protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + public UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { return new ScoredUserAnswerStatus(anItem); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-23 14:27:49 UTC (rev 161) @@ -17,7 +17,7 @@ public class SummaryPageModel extends ResourcedItemModel { @Override - protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + public UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { return null; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java 2008-05-23 14:27:49 UTC (rev 161) @@ -7,7 +7,7 @@ public class UnknownItemModel extends ItemModel { @Override - protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + public UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { return new UnknownModelAnswerStatus(anItem); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java 2008-05-23 14:27:49 UTC (rev 161) @@ -2,6 +2,7 @@ import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.Rte.Cmi; +import edu.lnu.FireFly.Rte.ElementName; public class UnknownModelAnswerStatus extends UserAnswerStatus { @@ -13,7 +14,8 @@ public void updateRteFields(Cmi cmi){ int interaction = 0; String cmiElement = "interactions." + interaction + ".learner_response"; - cmi.setValue(cmiElement, getRawAnswer()); + + cmi.setValue(new ElementName(cmiElement), "{" + Utils.getInstance().marge(getRawAnswer(), ",") + "}"); } @Override Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java 2008-05-23 14:27:49 UTC (rev 161) @@ -4,18 +4,18 @@ import edu.lnu.FireFly.Rte.Cmi; public abstract class UserAnswerStatus { - private String rawAnswer = ""; + private String[] rawAnswer = null; protected TreeItem item = null; public UserAnswerStatus(TreeItem anItem){ item = anItem; } - public String getRawAnswer() { + public String[] getRawAnswer() { return rawAnswer; } - public void setRawAnswer(String rawAnswer) { + public void setRawAnswer(String[] rawAnswer) { this.rawAnswer = rawAnswer; updateValues(); Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Utils.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Utils.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Utils.java 2008-05-23 14:27:49 UTC (rev 161) @@ -0,0 +1,31 @@ +package edu.lnu.FireFly.WebEditor.ItemModels; + +public class Utils { + public static Utils obj = null; + + private Utils(){ + + } + + public static Utils getInstance(){ + if (obj == null){ + obj = new Utils(); + } + + return obj; + } + + public String marge(String[] parts, String delimiter) { + String result = ""; + + for (int i = 0; i < parts.length; i++){ + result += parts[i]; + + if (i == parts.length - 1){ + result += delimiter; + } + } + + return result; + } +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-23 14:27:49 UTC (rev 161) @@ -12,7 +12,7 @@ import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.parser.Parser; import edu.lnu.FireFly.FFManifest.parser.TestDocException; -import edu.lnu.FireFly.Rte.Activity; +import edu.lnu.FireFly.WebEditor.Data.AnswersStatusManager; import edu.lnu.FireFly.WebEditor.Data.AutoSaveThread; import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; @@ -23,168 +23,182 @@ import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; public class WebEditor extends AppletWithWYSIWYGEditor implements - ActionListener { + ActionListener { - /** - * - */ - private static final long serialVersionUID = 1144429894709918030L; + /** + * + */ + private static final long serialVersionUID = 1144429894709918030L; - protected static CourseTree courseTree; + protected static CourseTree courseTree; - public static WebEditor instance = null; + public static WebEditor instance = null; - protected Manifest manifest = null; + protected Manifest manifest = null; - protected JMenuItem openMenuItem = null; + protected JMenuItem openMenuItem = null; - protected JMenuItem saveMenuItem = null; + protected JMenuItem resetMenuItem = null; - private Thread threadForAautoSave; + protected JMenuItem saveMenuItem = null; - private AutoSaveThread autoSaveThread; + private Thread threadForAautoSave; - private JMenuItem publishMenuItem; + private AutoSaveThread autoSaveThread; - @Override - public void actionPerformed(ActionEvent arg0) { - try { - if (arg0.getSource() == openMenuItem) { - openManifest(); - } + private JMenuItem publishMenuItem; - if (arg0.getSource() == publishMenuItem) { - WebEditorServiceClient.getInstance().publish(); - } + @Override + public void actionPerformed(ActionEvent arg0) { + try { + if (arg0.getSource() == openMenuItem) { + openManifest(); + } - if (arg0.getSource() == saveMenuItem) { - saveManifest(); - } - } catch (Exception e) { - e.printStackTrace(); - } + if (arg0.getSource() == resetMenuItem) { + AnswersStatusManager.getInstance().resetAllAnswers(); + } + + if (arg0.getSource() == publishMenuItem) { + WebEditorServiceClient.getInstance().publish(); + } + + if (arg0.getSource() == saveMenuItem) { + saveManifest(); + } + } catch (Exception e) { + e.printStackTrace(); } + } - public void saveManifest() throws TestDocException { - Parser parser = new Parser(); - - autoSaveThread.reset(); + public void saveManifest() throws TestDocException { + Parser parser = new Parser(); - WebEditorServiceClient.getInstance().setFileContent("imsmanifest.xml", - parser.toXML(manifest)); - } + autoSaveThread.reset(); - public void openManifest() throws TestDocException { - Parser parser = new Parser(); - - autoSaveThread.reset(); - - manifest = parser.fromXML(WebEditorServiceClient.getInstance() - .getFileContent("imsmanifest.xml", "course")); - TreeDataModel.initInstance(manifest); + WebEditorServiceClient.getInstance().setFileContent("imsmanifest.xml", + parser.toXML(manifest)); + } - ItemModels.synchronizeAllItemDatas(manifest.getRoot()); - SummaryPageManager.getInstance().setManifest(manifest); - - Activity.fullsynchronizeActivitiesStructure(manifest); - } + public void openManifest() throws TestDocException { + Parser parser = new Parser(); - public Manifest getManifest() { - return manifest; - } + autoSaveThread.reset(); - @Override - public void init() { - parseParameter(); + manifest = parser.fromXML(WebEditorServiceClient.getInstance() + .getFileContent("imsmanifest.xml", "course")); + TreeDataModel.initInstance(manifest); - instance = this; + ItemModels.synchronizeAllItemDatas(manifest.getRoot()); + SummaryPageManager.getInstance().setManifest(manifest); - autoSaveThread = new AutoSaveThread(); - threadForAautoSave = new Thread(autoSaveThread); - threadForAautoSave.start(); + AnswersStatusManager.getInstance().resetAllAnswers(); + } - initMenu(); + public Manifest getManifest() { + return manifest; + } - try { - openManifest(); - } catch (TestDocException e) { - System.out.println("Can't load course. Creating new..."); - CreateNewCourse(); - } + @Override + public void init() { + parseParameter(); - courseTree = new CourseTree(TreeDataModel.getInstance(), getAppletContext()); - this.add(new JScrollPane(courseTree)); + instance = this; - courseTree.addMouseListener(new CourseTreePopupMenu()); + autoSaveThread = new AutoSaveThread(); + threadForAautoSave = new Thread(autoSaveThread); + threadForAautoSave.start(); + + initMenu(); + + try { + openManifest(); + } catch (TestDocException e) { + System.out.println("Can't load course. Creating new..."); + CreateNewCourse(); } - private void parseParameter() { - String paramCourseLocation = getParameter("courseLocation"); - String paramServiceLocation = getParameter("serviceLocation"); - String paramTemplateLocation = getParameter("templateLocation"); - String paramResourceLocation = getParameter("resourceLocation"); + courseTree = new CourseTree(TreeDataModel.getInstance(), + getAppletContext()); + this.add(new JScrollPane(courseTree)); - if (paramCourseLocation != null){ - Settings.getInstance().setCourseLocation(paramCourseLocation); - } - if (paramServiceLocation != null){ - Settings.getInstance().setServiceLocation(paramServiceLocation); - } - if (paramTemplateLocation != null){ - Settings.getInstance().setTemplateLocation(paramTemplateLocation); - } - if (paramResourceLocation != null){ - Settings.getInstance().setResourceLocation(paramResourceLocation); - } + courseTree.addMouseListener(new CourseTreePopupMenu()); + } + + private void parseParameter() { + String paramCourseLocation = getParameter("courseLocation"); + String paramServiceLocation = getParameter("serviceLocation"); + String paramTemplateLocation = getParameter("templateLocation"); + String paramResourceLocation = getParameter("resourceLocation"); + + if (paramCourseLocation != null) { + Settings.getInstance().setCourseLocation(paramCourseLocation); } + if (paramServiceLocation != null) { + Settings.getInstance().setServiceLocation(paramServiceLocation); + } + if (paramTemplateLocation != null) { + Settings.getInstance().setTemplateLocation(paramTemplateLocation); + } + if (paramResourceLocation != null) { + Settings.getInstance().setResourceLocation(paramResourceLocation); + } + } - private void CreateNewCourse() { - try { - manifest = ManifestFactory.createManifest(); - SummaryPageManager.getInstance().setManifest(manifest); - ItemModels.synchronizeAllItemDatas(manifest.getRoot()); - TreeDataModel.initInstance(manifest); + private void CreateNewCourse() { + try { + manifest = ManifestFactory.createManifest(); + SummaryPageManager.getInstance().setManifest(manifest); + ItemModels.synchronizeAllItemDatas(manifest.getRoot()); + TreeDataModel.initInstance(manifest); - TreeItem root = manifest.getRoot(); - OrganizationModel model = (OrganizationModel) ItemModels - .getModelFromItem(root); + TreeItem root = manifest.getRoot(); + OrganizationModel model = (OrganizationModel) ItemModels + .getModelFromItem(root); - model.synchronizeItemWithResource(root, "template"); - SummaryPageManager.getInstance().updateSummaryPages(); - - Activity.fullsynchronizeActivitiesStructure(manifest); - } catch (Exception e) { - e.printStackTrace(); - } + model.synchronizeItemWithResource(root, "template"); + SummaryPageManager.getInstance().updateSummaryPages(); + + AnswersStatusManager.getInstance().resetAllAnswers(); + } catch (Exception e) { + e.printStackTrace(); } + } - public void initMenu() { - // Create the menu bar - JMenuBar menuBar = new JMenuBar(); + public void initMenu() { + // Create the menu bar + JMenuBar menuBar = new JMenuBar(); - // Create a menu - JMenu menu = new JMenu("File"); - menuBar.add(menu); + // Create a menu + JMenu fileMenu = new JMenu("File"); + menuBar.add(fileMenu); - openMenuItem = new JMenuItem("Open"); - openMenuItem.addActionListener(this); - menu.add(openMenuItem); + JMenu editMenu = new JMenu("Edit"); + menuBar.add(editMenu); - // Create a menu item - saveMenuItem = new JMenuItem("Save"); - saveMenuItem.addActionListener(this); - menu.add(saveMenuItem); + resetMenuItem = new JMenuItem("Reset user activity"); + resetMenuItem.addActionListener(this); + fileMenu.add(resetMenuItem); - // Create a menu item - publishMenuItem = new JMenuItem("Publish"); - publishMenuItem.addActionListener(this); - menu.add(publishMenuItem); + openMenuItem = new JMenuItem("Open"); + openMenuItem.addActionListener(this); + fileMenu.add(openMenuItem); - // Install the menu bar in the frame - this.setJMenuBar(menuBar); - } + // Create a menu item + saveMenuItem = new JMenuItem("Save"); + saveMenuItem.addActionListener(this); + fileMenu.add(saveMenuItem); - public static CourseTree getCourseTree() { - return courseTree; - } + // Create a menu item + publishMenuItem = new JMenuItem("Publish"); + publishMenuItem.addActionListener(this); + fileMenu.add(publishMenuItem); + + // Install the menu bar in the frame + this.setJMenuBar(menuBar); + } + + public static CourseTree getCourseTree() { + return courseTree; + } } Modified: WebEditor/template/LectureModel.html =================================================================== --- WebEditor/template/LectureModel.html 2008-05-23 14:26:18 UTC (rev 160) +++ WebEditor/template/LectureModel.html 2008-05-23 14:27:49 UTC (rev 161) @@ -5,7 +5,7 @@ <script type="text/javascript" src="global/APIWrapper.js"></script> <script type="text/javascript"> function finish(){ - SetValue("cmi.completion_status", "completed"); + SetValue("cmi.answers.0.value", "read"); Terminate(); } </script> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |