You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(128) |
Jun
(97) |
Jul
(13) |
Aug
(40) |
Sep
(50) |
Oct
(27) |
Nov
(7) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(18) |
Feb
(47) |
Mar
(7) |
Apr
|
May
|
Jun
|
Jul
(32) |
Aug
|
Sep
(14) |
Oct
(22) |
Nov
|
Dec
|
From: <se...@us...> - 2008-05-12 20:24:00
|
Revision: 131 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=131&view=rev Author: sem62 Date: 2008-05-12 13:23:44 -0700 (Mon, 12 May 2008) Log Message: ----------- Finished with logic of summary page Modified Paths: -------------- WebEditor/template/global/SummaryPage.js Modified: WebEditor/template/global/SummaryPage.js =================================================================== --- WebEditor/template/global/SummaryPage.js 2008-05-12 20:05:40 UTC (rev 130) +++ WebEditor/template/global/SummaryPage.js 2008-05-12 20:23:44 UTC (rev 131) @@ -102,24 +102,28 @@ rowNum++; var percents = "0"; - if ((min != null) && (max != null) && (raw != null)){ - percents = 100 * (raw - min) / (max - min) + " %"; + if ((parseInt(min) || min == 0) && (parseInt(max) || max == 0) && (parseInt(raw) || raw == 0)){ + if (max == min){ + percents = "? %"; + } else { + percents = 100 * (raw - min) / (max - min) + " %"; + } } if (modelName == "LectureModel"){ raw = (completionStatus == "completed") ? "read" : "unread"; - percents = "--"; + percents = ""; } - if (min == null){ + if (!parseInt(min) && min != 0){ min = "--"; } - if (max == null){ + if (!parseInt(max) && max != 0){ max = "--"; } - if (raw == null){ + if (!parseInt(raw) && raw != 0){ raw = "--"; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-12 20:06:32
|
Revision: 130 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=130&view=rev Author: sem62 Date: 2008-05-12 13:05:40 -0700 (Mon, 12 May 2008) Log Message: ----------- Some modifications in templates. Summary page now can calculate informations for chapters. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java WebEditor/template/LectureModel.html WebEditor/template/SimpleQuestionModel.html WebEditor/template/global/SummaryPage.js WebEditor/template/global/simpleQ.js Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java 2008-05-12 18:23:49 UTC (rev 129) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java 2008-05-12 20:05:40 UTC (rev 130) @@ -32,7 +32,7 @@ return "incomplete"; } - return ""; + return "6"; } static public boolean SetValue(String parameter, String value){ Modified: WebEditor/template/LectureModel.html =================================================================== --- WebEditor/template/LectureModel.html 2008-05-12 18:23:49 UTC (rev 129) +++ WebEditor/template/LectureModel.html 2008-05-12 20:05:40 UTC (rev 130) @@ -11,7 +11,7 @@ </script> </head> -<body onload="Initialize();" onunload="finish();"> +<body onLoad="Initialize()" onunload="finish()"> <div id="lecture_caption"> <!--caption start-->New caption<!--caption end--> </div> Modified: WebEditor/template/SimpleQuestionModel.html =================================================================== --- WebEditor/template/SimpleQuestionModel.html 2008-05-12 18:23:49 UTC (rev 129) +++ WebEditor/template/SimpleQuestionModel.html 2008-05-12 20:05:40 UTC (rev 130) @@ -6,7 +6,7 @@ <script type="text/javascript" src="global/simpleQ.js"></script> </head> -<body onload="Initialize();" onunload="Terminate();"> +<body onLoad="Initialize()" onunload="Terminate();"> <div id="simpleQ_caption"> <!--caption start-->New caption<!--caption end--> </div> Modified: WebEditor/template/global/SummaryPage.js =================================================================== --- WebEditor/template/global/SummaryPage.js 2008-05-12 18:23:49 UTC (rev 129) +++ WebEditor/template/global/SummaryPage.js 2008-05-12 20:05:40 UTC (rev 130) @@ -23,16 +23,76 @@ } function recalcChaptersScores(){ + var record = new Array(7); + record[2] = 0; + record[3] = 0; + record[4] = 0; + record[6] = 1; + + records[curr_record] = record; + curr_record++; + + var stack = new Array(curr_record); + stack[0] = 0; + var stackPos = 0; + + record = records[0]; + record[2] = 0; + record[3] = 0; + record[4] = 0; + var i; - for (i = 0; i < curr_record; i++){ - var record = records[i]; - write(record[0], record[1], record[2], record[3], record[4], record[5]); + for (i = 1; i < curr_record; i++){ + record = records[i]; + var prevRec = records[i-1]; + + var parentRec = records[stack[stackPos]]; + + while (record[6] < prevRec[6]){ + stackPos--; + var parent_parent = records[stackPos]; + + if (parseInt(parentRec[2])){ + parent_parent[2] += parseInt(parentRec[2]); + } + if (parseInt(parentRec[3])){ + parent_parent[3] += parseInt(parentRec[3]); + } + if (parseInt(parentRec[4])){ + parent_parent[4] += parseInt(parentRec[4]); + } + + prevRec = parentRec; + } + + if (record[5] == "ChapterModel"){ + stackPos++; + stack[stackPos] = i; + + record[2] = 0; + record[3] = 0; + record[4] = 0; + + continue; + } + + if (parseInt(record[2])){ + parentRec[2] += parseInt(record[2]); + } + if (parseInt(record[3])){ + parentRec[3] += parseInt(record[3]); + } + if (parseInt(record[4])){ + parentRec[4] += parseInt(record[4]); + } } } function writeAll(){ + recalcChaptersScores(); + var i; - for (i = 0; i < curr_record; i++){ + for (i = 0; i < curr_record - 1; i++){ var record = records[i]; write(record[0], record[1], record[2], record[3], record[4], record[5]); } Modified: WebEditor/template/global/simpleQ.js =================================================================== --- WebEditor/template/global/simpleQ.js 2008-05-12 18:23:49 UTC (rev 129) +++ WebEditor/template/global/simpleQ.js 2008-05-12 20:05:40 UTC (rev 130) @@ -106,7 +106,7 @@ SetValue("cmi.objectives.0.score.raw", raw); SetValue("cmi.objectives.0.score.scaled", scaled); - var pref = "cmi.interactions." + (GetValue("cmi.interactions._count") - 1); + var pref = "cmi.interactions." + (GetValue("cmi.interactions._count")); if (singleAnswer){ var i; for (i=0; i < answers.length; i++){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-12 18:25:17
|
Revision: 129 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=129&view=rev Author: sem62 Date: 2008-05-12 11:23:49 -0700 (Mon, 12 May 2008) Log Message: ----------- Realized forcing termination of SCO. Modified Paths: -------------- webPlayer/src/1.jardesc webPlayer/src/UI/SelectionListener.java webPlayer/src/behaviour/Navigation.java webPlayer/src/player/AppletWithApiHandle.java webPlayer/src/player/AppletWithNavigationControlsHandler.java Modified: webPlayer/src/1.jardesc =================================================================== --- webPlayer/src/1.jardesc 2008-05-10 21:02:31 UTC (rev 128) +++ webPlayer/src/1.jardesc 2008-05-12 18:23:49 UTC (rev 129) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="WINDOWS-1251" standalone="no"?> <jardesc> - <jar path="E:/ACMContester/out/web/WebPlayer/player.jar"/> + <jar path="s:/WebPlayer/player.jar"/> <options buildIfNeeded="true" compress="true" descriptionLocation="/webPlayer/src/1.jardesc" exportErrors="true" exportWarnings="false" includeDirectoryEntries="false" overwrite="true" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/> <storedRefactorings deprecationInfo="true" structuralOnly="false"/> <selectedProjects/> Modified: webPlayer/src/UI/SelectionListener.java =================================================================== --- webPlayer/src/UI/SelectionListener.java 2008-05-10 21:02:31 UTC (rev 128) +++ webPlayer/src/UI/SelectionListener.java 2008-05-12 18:23:49 UTC (rev 129) @@ -45,6 +45,6 @@ DefaultMutableTreeNode item = (DefaultMutableTreeNode)e.getNewLeadSelectionPath().getLastPathComponent(); Activity activity = (Activity)item.getUserObject(); - Navigation.choose(activity); + Navigation.choose(activity, true); } } Modified: webPlayer/src/behaviour/Navigation.java =================================================================== --- webPlayer/src/behaviour/Navigation.java 2008-05-10 21:02:31 UTC (rev 128) +++ webPlayer/src/behaviour/Navigation.java 2008-05-12 18:23:49 UTC (rev 129) @@ -6,7 +6,6 @@ import UI.SelectionListener; import javax.swing.*; -import javax.swing.Timer; import java.awt.event.ActionEvent; import data.DataModel; @@ -25,6 +24,8 @@ public static CmiElement request = new CmiElement(""); + private static final long TERMINATING_WAIT_INTERVAL = 10000; + public static String getValue(String element) { return request.value; } @@ -56,7 +57,7 @@ } public static void Start() { - choose(Activity.getRoot()); + choose(Activity.getRoot(), false); } public static Activity getChoice(Activity choice, @@ -73,7 +74,7 @@ if (recursive_selected_child) { if (choice.parent.sequencing.controlMode.forwardOnly) { return choice.parent.items.get(0); // if you can't choose - // anything and + // anything and } } @@ -147,21 +148,21 @@ return previousActivivty; } - public static void Next() { + public static void Next(boolean needWaitingForTrminating) { System.out.print("Next requested\n"); Activity current = GlobalStateInformation.getCurrentActivity(); Activity next = Navigation.getNext(current); - ShowItem(next); + ShowItem(next, needWaitingForTrminating); } - public static void Previous() { + public static void Previous(boolean needWaitingForTrminating) { System.out.print("Previous requested\n"); Activity current = GlobalStateInformation.getCurrentActivity(); Activity previous = Navigation.getPrevious(current); - ShowItem(previous); + ShowItem(previous, needWaitingForTrminating); } public static void Exit(boolean need_close_window) { @@ -177,19 +178,21 @@ return getPrevious(GlobalStateInformation.getCurrentActivity()) != null; } - public static void choose(Activity activity) { + public static void choose(Activity activity, + boolean needWaitingForTrminating) { Activity choice = Navigation.getChoice(activity, false); if (choice != null) { - Navigation.ShowItem(choice); + Navigation.ShowItem(choice, needWaitingForTrminating); } else { SelectionListener.SetTreeSelection(Player.itemToTreeNode .get(choice)); } } - public static void ShowItem(Activity activity) { - stopCurrentActivity(); + public static void ShowItem(Activity activity, + boolean needWaitingForTrminating) { + stopCurrentActivity(needWaitingForTrminating); if (activity == null) { Browser.Locate("chooseMsg.html"); @@ -264,15 +267,15 @@ activity.identifier).activityProgressInformation.EndAttemp(); } - public static void activityTerminated() { + public static void activityTerminated(boolean needWaitingForTrminating) { timeLimitTimer.stop(); Activity current = GlobalStateInformation.getCurrentActivity(); Activity target = Navigation.getTarget(current); - Navigation.ShowItem(target); + Navigation.ShowItem(target, needWaitingForTrminating); } - public static void stopCurrentActivity() { + public static void stopCurrentActivity(boolean needWaitingForTrminating) { timeLimitTimer.stop(); Browser.setTimeToLeftText(""); @@ -285,7 +288,31 @@ } } - Player.Terminate("internal"); + if (needWaitingForTrminating) { + if (AppletWithApiHandle.initialized) { + Thread thread = new Thread(new Runnable() { + public void run() { + Browser.Locate("chooseMsg.html"); + } + }); + + thread.start(); + + try { + System.out.println("Waiting for terminating SCO"); + synchronized (AppletWithApiHandle.terminateWaitingObject) { + AppletWithApiHandle.terminateWaitingObject + .wait(TERMINATING_WAIT_INTERVAL); + } + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + } else { + // TODO need something + } + } public static void checkTimeLimit() { Modified: webPlayer/src/player/AppletWithApiHandle.java =================================================================== --- webPlayer/src/player/AppletWithApiHandle.java 2008-05-10 21:02:31 UTC (rev 128) +++ webPlayer/src/player/AppletWithApiHandle.java 2008-05-12 18:23:49 UTC (rev 129) @@ -18,6 +18,8 @@ private static final long serialVersionUID = 1L; public static boolean initialized = false; public static boolean terminated = false; + + public static Object terminateWaitingObject = new Object(); static public String Initialize(String parameter){ if (GlobalStateInformation.getCurrentActivity() == null){ @@ -87,12 +89,15 @@ if (!terminated){ DataModel.getInstance().getTrackingModelManager().getModelForActivity(current.identifier).activityProgressInformation.EndAttemp(); - if (!parameter.equals("internal")){ - Navigation.activityTerminated(); - } + Navigation.activityTerminated(false); initialized = false; terminated = true; + + synchronized (terminateWaitingObject) { + terminateWaitingObject.notifyAll(); + } + Communicator.getInstance().sendApiLogMessage(current.identifier, Communicator.API_TERMINATE, "", parameter, "true"); return "true"; } Modified: webPlayer/src/player/AppletWithNavigationControlsHandler.java =================================================================== --- webPlayer/src/player/AppletWithNavigationControlsHandler.java 2008-05-10 21:02:31 UTC (rev 128) +++ webPlayer/src/player/AppletWithNavigationControlsHandler.java 2008-05-12 18:23:49 UTC (rev 129) @@ -12,11 +12,11 @@ private static final long serialVersionUID = 1L; public static void Previous(){ - Navigation.Previous(); + Navigation.Previous(true); } public static void Next(){ - Navigation.Next(); + Navigation.Next(true); } public static void suspend(){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 21:02:27
|
Revision: 128 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=128&view=rev Author: sem62 Date: 2008-05-10 14:02:31 -0700 (Sat, 10 May 2008) Log Message: ----------- Title of Simple question property form was empty. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-10 21:00:12 UTC (rev 127) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-10 21:02:31 UTC (rev 128) @@ -109,6 +109,8 @@ } private void initComponents() { + setTitle("Propertiests..."); + generalPanel = new javax.swing.JPanel(); titleLabel = new javax.swing.JLabel(); titleTextField = new javax.swing.JTextField(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 21:00:24
|
Revision: 127 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=127&view=rev Author: sem62 Date: 2008-05-10 14:00:12 -0700 (Sat, 10 May 2008) Log Message: ----------- fixed bug with "same as title" at SimpleQuestion property dialog. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java WebEditor/template/SimpleQuestionModel.conf Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-10 20:48:29 UTC (rev 126) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-10 21:00:12 UTC (rev 127) @@ -9,6 +9,7 @@ import javax.swing.table.DefaultTableColumnModel; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionAnswersDataModel; +import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionData; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; /** @@ -445,12 +446,17 @@ manifestItem.setTitle(titleTextField.getText()); - itemModel.getData(manifestItem).setCaption(captionTextField.getText()); + SimpleQuestionData data = itemModel.getData(manifestItem); - itemModel.getData(manifestItem) - .setQuestion(questionTextField.getText()); + if (sameAsTitleCheckBox.isSelected()){ + data.setCaption(titleTextField.getText()); + } else { + data.setCaption(captionTextField.getText()); + } - itemModel.getData(manifestItem).setAnswers( + data.setQuestion(questionTextField.getText()); + + data.setAnswers( simpleQuestionAnswersDataModel); itemModel.updateItemResource(manifestItem, true); Modified: WebEditor/template/SimpleQuestionModel.conf =================================================================== --- WebEditor/template/SimpleQuestionModel.conf 2008-05-10 20:48:29 UTC (rev 126) +++ WebEditor/template/SimpleQuestionModel.conf 2008-05-10 21:00:12 UTC (rev 127) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <SimpleQuestion> -<caption>New caption</caption> +<caption>New simple question</caption> <question>Answer "Yes" to question, please.</question> <ShowOnSummaryPage>true</ShowOnSummaryPage> <answers singleVariant="false"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 20:48:33
|
Revision: 126 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=126&view=rev Author: sem62 Date: 2008-05-10 13:48:29 -0700 (Sat, 10 May 2008) Log Message: ----------- * configured spaw2 to using resource directory in course. * fixed templates * added code for updating summary pages after removing items Modified Paths: -------------- WebEditor/resources/HTMLedit.php WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java WebEditor/template/LectureModel.conf WebEditor/template/SimpleQuestionModel.conf Added Paths: ----------- WebEditor/template/resources/ Modified: WebEditor/resources/HTMLedit.php =================================================================== --- WebEditor/resources/HTMLedit.php 2008-05-10 17:33:34 UTC (rev 125) +++ WebEditor/resources/HTMLedit.php 2008-05-10 20:48:29 UTC (rev 126) @@ -10,7 +10,7 @@ close(); return false; } - + function closing(){ if (!saved){ if (confirm('Course not saved. Do you want to save it now?') == true){ @@ -27,10 +27,11 @@ <body onUnload="closing();"> <form name='editFrm' onSubmit='javascript:save();'> <? -include("spaw2/spaw.inc.php"); +include("spaw2/spaw.inc.php"); -$spaw = new SpawEditor('spaw_edit_field', "123"); -$spaw->show(); +$spaw = new SpawEditor('spaw_edit_field', ""); + +$spaw->show(); ?> <input type='submit' value='save' onClick='javascript:save();'> Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-10 17:33:34 UTC (rev 125) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-10 20:48:29 UTC (rev 126) @@ -2,6 +2,7 @@ import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.ChapterPropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; @@ -124,6 +125,7 @@ aChapter.getParent().removeChild(aChapter); WebEditorServiceClient.getInstance().deleteFile(getConfFileName(aChapter)); + SummaryPageManager.getInstance().updateSummaryPages(); } /** Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-10 17:33:34 UTC (rev 125) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-10 20:48:29 UTC (rev 126) @@ -97,6 +97,8 @@ WebEditorServiceClient.getInstance().deleteFile(getConfFileName(anItem)); manifest.resources.deleteResource(identifier); + + SummaryPageManager.getInstance().updateSummaryPages(); } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-10 17:33:34 UTC (rev 125) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-10 20:48:29 UTC (rev 126) @@ -78,12 +78,6 @@ } @Override - public void remove(TreeItem item) { - TreeDataModel.getInstance().treeNodesDeleted(item); - item.getParent().removeChild(item); - } - - @Override public void rename(TreeItem item, String newTitle) { ((Item) item).title = newTitle; TreeDataModel.getInstance().treeNodesChanged(item); Modified: WebEditor/template/LectureModel.conf =================================================================== --- WebEditor/template/LectureModel.conf 2008-05-10 17:33:34 UTC (rev 125) +++ WebEditor/template/LectureModel.conf 2008-05-10 20:48:29 UTC (rev 126) @@ -1,5 +1,2 @@ -<?xml version = "1.0" ?> -<LectureModel> - <caption>New lecture</caption> - <content>New content.</content> -</LectureModel> +<?xml version="1.0" encoding="UTF-8"?> +<LectureData><caption>New lecture</caption><content>New content.</content><ShowOnSummaryPage>false</ShowOnSummaryPage></LectureData> \ No newline at end of file Modified: WebEditor/template/SimpleQuestionModel.conf =================================================================== --- WebEditor/template/SimpleQuestionModel.conf 2008-05-10 17:33:34 UTC (rev 125) +++ WebEditor/template/SimpleQuestionModel.conf 2008-05-10 20:48:29 UTC (rev 126) @@ -1,9 +1,10 @@ -<?xml version = "1.0" ?> -<SimpleQuestionModel> - <caption>New caption</caption> - <question>Answer "Yes" to question, please.</question> - <answers singleVariant="false"> - <answer point="0">Yes</answer> - <answer point="1">No</answer> - </answers> -</SimpleQuestionModel> +<?xml version="1.0" encoding="UTF-8"?> +<SimpleQuestion> +<caption>New caption</caption> +<question>Answer "Yes" to question, please.</question> +<ShowOnSummaryPage>true</ShowOnSummaryPage> +<answers singleVariant="false"> +<answer point="0.0">Yes</answer> +<answer point="1.0">No</answer> +</answers> +</SimpleQuestion> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 17:33:47
|
Revision: 125 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=125&view=rev Author: sem62 Date: 2008-05-10 10:33:34 -0700 (Sat, 10 May 2008) Log Message: ----------- * Designed Simple question property dialog * Implement WYSIWYG editor to this dialog * add slashes to parameters of add method when generating html resource Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithWYSIWYGEditor.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionAnswersDataModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithWYSIWYGEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithWYSIWYGEditor.java 2008-05-10 14:31:01 UTC (rev 124) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithWYSIWYGEditor.java 2008-05-10 17:33:34 UTC (rev 125) @@ -15,16 +15,12 @@ Object[] params = new String[1]; params[0] = captionTextField2.getText(); -// dlg.setModal(false); - htmlEditing = true; textField = captionTextField2; editingDlg = dlg; lockPropertyDlg(); win.call("showEditor", params); - -// dlg.setModal(true); } public String getEditedHTML(){ @@ -50,6 +46,7 @@ return; } textField.setText(newHTML); + editingDlg.editedHtmlTextWasSet(); htmlEditing = false; unlockPropertyDlg(); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java 2008-05-10 14:31:01 UTC (rev 124) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java 2008-05-10 17:33:34 UTC (rev 125) @@ -14,7 +14,7 @@ * */ private static final long serialVersionUID = -6002603750731392120L; - + protected void editTextFieldInHtmlEditor(JTextComponent textComponent) { WebEditor.instance.htmlEdit(textComponent, this); } @@ -50,4 +50,7 @@ obj.setModal(true); obj.setVisible(true); } + + public void editedHtmlTextWasSet() { + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-10 14:31:01 UTC (rev 124) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-10 17:33:34 UTC (rev 125) @@ -6,6 +6,7 @@ import javax.swing.JButton; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import javax.swing.table.DefaultTableColumnModel; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionAnswersDataModel; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; @@ -33,8 +34,11 @@ private javax.swing.JTextField questionTextField; private javax.swing.JButton editCaptionInHtmlBtn; private javax.swing.JButton editQuestionInHtmlBtn; + private javax.swing.JButton editAnswerVariantInHtmlEditor; private SimpleQuestionAnswersDataModel simpleQuestionAnswersDataModel; + private javax.swing.JTextField currentAnswerVariant; + public SimpleQuestionPropertiestsDlg() { obj = this; @@ -52,6 +56,20 @@ if (arg0.getSource() == editCaptionInHtmlBtn) { editTextFieldInHtmlEditor(captionTextField); } + + if (arg0.getSource() == editAnswerVariantInHtmlEditor) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0){ + return; + } + + String text = answersTable.getModel().getValueAt(selectedRow, 1).toString(); + + currentAnswerVariant.setText(text); + + editTextFieldInHtmlEditor(currentAnswerVariant); + } } @Override @@ -72,9 +90,23 @@ .getAnswers(); dlg.answersTable.setModel(dlg.simpleQuestionAnswersDataModel); + DefaultTableColumnModel columnModel = (DefaultTableColumnModel)dlg.answersTable.getColumnModel(); + columnModel.getColumn(0).setPreferredWidth(1); + columnModel.getColumn(1).setPreferredWidth(300); + columnModel.getColumn(2).setPreferredWidth(1); + dlg.titleTextField.selectAll(); } + @Override + public void editedHtmlTextWasSet() { + super.editedHtmlTextWasSet(); + + String text = currentAnswerVariant.getText(); + int selectedRow = answersTable.getSelectedRow(); + answersTable.getModel().setValueAt(text, selectedRow, 1); + } + private void initComponents() { generalPanel = new javax.swing.JPanel(); titleLabel = new javax.swing.JLabel(); @@ -87,18 +119,24 @@ oneAnswerCheckBox = new javax.swing.JCheckBox(); answersPanel = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); - answersTable = new javax.swing.JTable(); cancelButton = new javax.swing.JButton("Cancel"); okButton = new javax.swing.JButton("Ok"); editCaptionInHtmlBtn = new JButton("..."); editQuestionInHtmlBtn = new JButton("..."); + editAnswerVariantInHtmlEditor = new JButton("HTML Editor"); + currentAnswerVariant = new javax.swing.JTextField(); + captionTextField.addActionListener(this); + cancelButton.addActionListener(this); okButton.addActionListener(this); sameAsTitleCheckBox.addChangeListener(this); oneAnswerCheckBox.addChangeListener(this); editCaptionInHtmlBtn.addActionListener(this); editQuestionInHtmlBtn.addActionListener(this); + editAnswerVariantInHtmlEditor.addActionListener(this); + + answersTable = new javax.swing.JTable(); setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); @@ -277,18 +315,31 @@ answersPanel); answersPanel.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addGroup( - jPanel4Layout.createSequentialGroup().addContainerGap() + javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup( + jPanel4Layout.createSequentialGroup() + .addComponent(editAnswerVariantInHtmlEditor) + .addContainerGap() + ) + .addGroup( + jPanel4Layout.createSequentialGroup() + .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 364, - Short.MAX_VALUE).addContainerGap())); + Short.MAX_VALUE) + .addContainerGap() + )); jPanel4Layout.setVerticalGroup(jPanel4Layout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING).addGroup( jPanel4Layout.createSequentialGroup().addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 111, - Short.MAX_VALUE).addContainerGap())); + Short.MAX_VALUE) + .addContainerGap(10, 10) + .addComponent(editAnswerVariantInHtmlEditor, 20, 20, 20) + .addContainerGap() + )); javax.swing.GroupLayout layout = new javax.swing.GroupLayout( getContentPane()); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionAnswersDataModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionAnswersDataModel.java 2008-05-10 14:31:01 UTC (rev 124) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionAnswersDataModel.java 2008-05-10 17:33:34 UTC (rev 125) @@ -2,6 +2,7 @@ import java.util.ArrayList; +import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.TableModel; @@ -10,11 +11,11 @@ private boolean singleVariant = false; public ArrayList<SimpleQuestionAnswer> answers = new ArrayList<SimpleQuestionAnswer>(); + private ArrayList<TableModelListener> listeners = new ArrayList<TableModelListener>(); @Override public void addTableModelListener(TableModelListener arg0) { - // TODO Auto-generated method stub - + listeners.add(arg0); } @Override @@ -45,18 +46,18 @@ } @Override - public Object getValueAt(int arg0, int arg1) { - if (arg0 == answers.size()) { + public Object getValueAt(int row, int col) { + if (row == answers.size()) { return ""; } - switch (arg1) { + switch (col) { case 0: - return arg0 + 1; + return row + 1; case 1: - return answers.get(arg0).getAnswerText(); + return answers.get(row).getAnswerText(); case 2: - return answers.get(arg0).getAnswerPoint(); + return answers.get(row).getAnswerPoint(); default: return ""; } @@ -73,6 +74,7 @@ @Override public void removeTableModelListener(TableModelListener arg0) { + listeners.remove(arg0); } public void setSingleVariant(boolean singleVariant) { @@ -105,5 +107,10 @@ } break; } + + for (int i=0; i < listeners.size(); i++){ + TableModelEvent event = new TableModelEvent(this, arg1, arg1, arg2); + listeners.get(i).tableChanged(event); + } } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-10 14:31:01 UTC (rev 124) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-10 17:33:34 UTC (rev 125) @@ -112,7 +112,7 @@ while (iter.hasNext()) { SimpleQuestionAnswer answer = iter.next(); - answers += "addAnswer(\"" + answer.getAnswerText() + "\", " + answers += "addAnswer(\"" + answer.getAnswerText().replace("\"", "\\\"") + "\", " + answer.getAnswerPoint() + ");" + "\r\n"; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 14:30:57
|
Revision: 124 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=124&view=rev Author: sem62 Date: 2008-05-10 07:31:01 -0700 (Sat, 10 May 2008) Log Message: ----------- Some design Simple questin model property dlg Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-10 14:03:25 UTC (rev 123) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-10 14:31:01 UTC (rev 124) @@ -111,10 +111,12 @@ generalPanel.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING).addGroup( - jPanel1Layout.createSequentialGroup().addComponent(titleLabel) - .addContainerGap(330, Short.MAX_VALUE)).addComponent( - titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 364, - Short.MAX_VALUE)); + jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(titleLabel)).addGroup( + jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(titleTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap())); jPanel1Layout .setVerticalGroup(jPanel1Layout .createParallelGroup( @@ -131,7 +133,8 @@ titleTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE))); + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); captionPanel.setBorder(javax.swing.BorderFactory .createTitledBorder("Caption")); @@ -140,21 +143,38 @@ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout( captionPanel); captionPanel.setLayout(jPanel2Layout); - jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addGroup( - jPanel2Layout.createSequentialGroup().addGroup( - jPanel2Layout.createParallelGroup( + jPanel2Layout + .setHorizontalGroup(jPanel2Layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(sameAsTitleCheckBox)) - .addContainerGap(283, Short.MAX_VALUE)).addGroup( - javax.swing.GroupLayout.Alignment.TRAILING, - jPanel2Layout.createSequentialGroup().addComponent( - captionTextField, javax.swing.GroupLayout.DEFAULT_SIZE, - 370, Short.MAX_VALUE).addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(editCaptionInHtmlBtn, - javax.swing.GroupLayout.PREFERRED_SIZE, 30, - javax.swing.GroupLayout.PREFERRED_SIZE))); + .addGroup( + jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + sameAsTitleCheckBox)) + .addContainerGap(283, Short.MAX_VALUE)) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + captionTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, + 370, Short.MAX_VALUE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + editCaptionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 30, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); jPanel2Layout .setVerticalGroup(jPanel2Layout .createParallelGroup( @@ -188,22 +208,38 @@ javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout( questionPanel); questionPanel.setLayout(jPanel3Layout); - jPanel3Layout.setHorizontalGroup(jPanel3Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addGroup( - jPanel3Layout.createSequentialGroup().addGroup( - jPanel3Layout.createParallelGroup( + jPanel3Layout + .setHorizontalGroup(jPanel3Layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(oneAnswerCheckBox)) - .addContainerGap(283, Short.MAX_VALUE)).addGroup( - javax.swing.GroupLayout.Alignment.TRAILING, - jPanel3Layout.createSequentialGroup().addComponent( - questionTextField, - javax.swing.GroupLayout.DEFAULT_SIZE, 370, - Short.MAX_VALUE).addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(editQuestionInHtmlBtn, - javax.swing.GroupLayout.PREFERRED_SIZE, 30, - javax.swing.GroupLayout.PREFERRED_SIZE))); + .addGroup( + jPanel3Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel3Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + oneAnswerCheckBox)) + .addContainerGap(283, Short.MAX_VALUE)) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel3Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + questionTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, + 370, Short.MAX_VALUE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + editQuestionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 30, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); jPanel3Layout .setVerticalGroup(jPanel3Layout .createParallelGroup( @@ -229,7 +265,8 @@ questionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE)))); + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap())); answersPanel.setBorder(javax.swing.BorderFactory .createTitledBorder("Variants of answer")); @@ -240,13 +277,18 @@ answersPanel); answersPanel.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addComponent( - jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 364, - Short.MAX_VALUE)); + javax.swing.GroupLayout.Alignment.LEADING).addGroup( + jPanel4Layout.createSequentialGroup().addContainerGap() + .addComponent(jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap())); + jPanel4Layout.setVerticalGroup(jPanel4Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addComponent( - jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 111, - Short.MAX_VALUE)); + javax.swing.GroupLayout.Alignment.LEADING).addGroup( + jPanel4Layout.createSequentialGroup().addContainerGap() + .addComponent(jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, 111, + Short.MAX_VALUE).addContainerGap())); javax.swing.GroupLayout layout = new javax.swing.GroupLayout( getContentPane()); @@ -342,7 +384,7 @@ Short.MAX_VALUE))); this.getRootPane().setDefaultButton(okButton); - + pack(); } @@ -353,10 +395,10 @@ manifestItem.setTitle(titleTextField.getText()); itemModel.getData(manifestItem).setCaption(captionTextField.getText()); - + itemModel.getData(manifestItem) .setQuestion(questionTextField.getText()); - + itemModel.getData(manifestItem).setAnswers( simpleQuestionAnswersDataModel); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 14:03:30
|
Revision: 123 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=123&view=rev Author: sem62 Date: 2008-05-10 07:03:25 -0700 (Sat, 10 May 2008) Log Message: ----------- Some design Chapter and Lecture models Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java 2008-05-10 13:18:47 UTC (rev 122) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java 2008-05-10 14:03:25 UTC (rev 123) @@ -113,7 +113,9 @@ titleLabel) .addContainerGap( 568, - Short.MAX_VALUE))))); + Short.MAX_VALUE) + )) + .addContainerGap())); jPanel1Layout .setVerticalGroup(jPanel1Layout .createParallelGroup( @@ -293,8 +295,8 @@ .addComponent(forwarOnlyCheckBox) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jLabel5).addContainerGap( - 20, Short.MAX_VALUE))); + .addComponent(jLabel5) + )); configurationComboBox.setModel(new javax.swing.DefaultComboBoxModel( new String[] { "User defined", "Lecture materials", @@ -306,7 +308,8 @@ controlModesPanel.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING).addGroup( - jPanel2Layout.createSequentialGroup().addGroup( + jPanel2Layout.createSequentialGroup() + .addContainerGap().addGroup( jPanel2Layout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel6, @@ -370,7 +373,9 @@ jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE))); + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(10, Short.MAX_VALUE) + )); javax.swing.GroupLayout layout = new javax.swing.GroupLayout( getContentPane()); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java 2008-05-10 13:18:47 UTC (rev 122) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java 2008-05-10 14:03:25 UTC (rev 123) @@ -3,6 +3,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import javax.swing.JLabel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -46,6 +47,8 @@ private javax.swing.JTextField titleTextField; private javax.swing.JTextField captionTextField; + private JLabel titleLabel; + /** Creates new form NewJFrame */ public LecturePropertiestsDlg() { obj = this; @@ -69,6 +72,7 @@ private void initComponents() { setTitle("Propertiests..."); titlePanel = new javax.swing.JPanel(); + titleLabel = new JLabel("Title"); titleTextField = new javax.swing.JTextField(); captionPanel = new javax.swing.JPanel(); captionTextField = new javax.swing.JTextField(); @@ -93,24 +97,55 @@ setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); titlePanel.setBorder(javax.swing.BorderFactory - .createTitledBorder("Title")); + .createTitledBorder("General")); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout( titlePanel); titlePanel.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addComponent( - titleTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 412, - Short.MAX_VALUE)); - jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addGroup( - jPanel1Layout.createSequentialGroup().addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(titleTextField, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE))); + jPanel1Layout + .setHorizontalGroup(jPanel1Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel1Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel1Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + titleTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, + 588, + Short.MAX_VALUE) + .addGroup( + jPanel1Layout + .createSequentialGroup() + .addComponent( + titleLabel) + .addContainerGap( + 568, + Short.MAX_VALUE))) + .addContainerGap())); + jPanel1Layout + .setVerticalGroup(jPanel1Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel1Layout + .createSequentialGroup() + .addComponent(titleLabel) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + titleTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); + captionPanel.setBorder(javax.swing.BorderFactory .createTitledBorder("Caption")); @@ -121,17 +156,27 @@ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout( captionPanel); captionPanel.setLayout(jPanel2Layout); - jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addComponent( - sameAsTitleCheckbox, javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE).addGroup( - javax.swing.GroupLayout.Alignment.TRAILING, - jPanel2Layout.createSequentialGroup().addComponent( - captionTextField, javax.swing.GroupLayout.DEFAULT_SIZE, - 361, Short.MAX_VALUE).addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(editCaptionInHtmlBtn, 30, 30, 30))); + jPanel2Layout.setHorizontalGroup(jPanel2Layout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addComponent(sameAsTitleCheckbox, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + ) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addComponent(captionTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, + 361, + Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(editCaptionInHtmlBtn, 30, 30, 30) + .addContainerGap() + )); jPanel2Layout .setVerticalGroup(jPanel2Layout .createParallelGroup( @@ -147,16 +192,18 @@ .addGap(8, 8, 8) .addGroup( jPanel2Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent( - editCaptionInHtmlBtn, - 20, 20, 20) - .addComponent( - captionTextField, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE)))); + .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + editCaptionInHtmlBtn, + 20, 20, 20) + .addComponent( + captionTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + ) + .addContainerGap() + )); contentPanel.setBorder(javax.swing.BorderFactory .createTitledBorder("Content")); @@ -167,20 +214,36 @@ contentPanel); contentPanel.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup(jPanel3Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addGroup( - javax.swing.GroupLayout.Alignment.TRAILING, - jPanel3Layout.createSequentialGroup().addContainerGap() - .addComponent(editContentInHtmlBtn)).addComponent( - jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 486, - Short.MAX_VALUE)); + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel3Layout + .createSequentialGroup() + .addComponent(editContentInHtmlBtn) + .addContainerGap() + ) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel3Layout + .createSequentialGroup() + .addContainerGap() + .addComponent(jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, + 486,Short.MAX_VALUE) + .addContainerGap() + ) + ); jPanel3Layout.setVerticalGroup(jPanel3Layout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING).addGroup( javax.swing.GroupLayout.Alignment.TRAILING, - jPanel3Layout.createSequentialGroup().addComponent( + jPanel3Layout.createSequentialGroup() + .addComponent( jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE).addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(editContentInHtmlBtn, 20, 20, 20))); + .addComponent(editContentInHtmlBtn, 20, 20, 20) + .addContainerGap() + )); // jPanel3Layout.setHorizontalGroup(jPanel3Layout.createParallelGroup( // javax.swing.GroupLayout.Alignment.LEADING).addComponent( // jScrollPane1)); @@ -306,8 +369,9 @@ } LectureModel model = new LectureModel(); - LectureData lectureData = ((LectureData) model.getItemData(manifestItem)); - + LectureData lectureData = ((LectureData) model + .getItemData(manifestItem)); + lectureData.setCaption(caption); lectureData.setContent(content); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 13:18:45
|
Revision: 122 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=122&view=rev Author: sem62 Date: 2008-05-10 06:18:47 -0700 (Sat, 10 May 2008) Log Message: ----------- * Added publish method to service. * Set defaults buttons at property dialogs. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java Added Paths: ----------- WebEditor/service/publishCourse.php Added: WebEditor/service/publishCourse.php =================================================================== --- WebEditor/service/publishCourse.php (rev 0) +++ WebEditor/service/publishCourse.php 2008-05-10 13:18:47 UTC (rev 122) @@ -0,0 +1,8 @@ +<? + require_once("config.inc.php"); + + if (isset($_POST['publish']) && $_POST['publish'] == "1"){ + echo "start publishing..."; + } + +?> \ No newline at end of file Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java 2008-05-10 13:03:46 UTC (rev 121) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java 2008-05-10 13:18:47 UTC (rev 122) @@ -289,6 +289,7 @@ 20, 20, 20)) .addContainerGap())); + this.getRootPane().setDefaultButton(okButton); pack(); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-10 13:03:46 UTC (rev 121) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-10 13:18:47 UTC (rev 122) @@ -341,6 +341,8 @@ javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); + this.getRootPane().setDefaultButton(okButton); + pack(); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java 2008-05-10 13:03:46 UTC (rev 121) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java 2008-05-10 13:18:47 UTC (rev 122) @@ -110,13 +110,6 @@ return result; } - /** - * @param fName - * File name - * @param location - * Location name = template | course - * @return - */ public boolean deleteFile(String fName) { System.out.println("Deleting file (fName=" + fName + ")..."); @@ -139,6 +132,28 @@ return true; } + public boolean publish() { + System.out.println("Publishing course ..."); + + // Construct data + String data; + try { + data = URLEncoder.encode("publish", "UTF-8") + "=" + + URLEncoder.encode("1", "UTF-8"); + + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + return false; + } + + String result = getResponse(data, "publishCourse.php"); + + System.out.println("deleting result: " + result); + + lastCommunicationTime = System.currentTimeMillis(); + return true; + } + private String getResponse(String data, String action) { String result = ""; try { Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-10 13:03:46 UTC (rev 121) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-10 13:18:47 UTC (rev 122) @@ -53,6 +53,8 @@ private AutoSaveThread autoSaveThread; + private JMenuItem publishMenuItem; + @Override public void actionPerformed(ActionEvent arg0) { try { @@ -60,6 +62,10 @@ openManifest(); } + if (arg0.getSource() == publishMenuItem) { + WebEditorServiceClient.getInstance().publish(); + } + if (arg0.getSource() == saveMenuItem) { saveManifest(); } @@ -182,6 +188,11 @@ saveMenuItem.addActionListener(this); menu.add(saveMenuItem); + // Create a menu item + publishMenuItem = new JMenuItem("Publish"); + publishMenuItem.addActionListener(this); + menu.add(publishMenuItem); + // Install the menu bar in the frame this.setJMenuBar(menuBar); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 13:03:54
|
Revision: 121 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=121&view=rev Author: sem62 Date: 2008-05-10 06:03:46 -0700 (Sat, 10 May 2008) Log Message: ----------- Added remove resource method to class Resources. Modified Paths: -------------- FFManifest/src/edu/lnu/FireFly/FFManifest/resource/Resources.java Modified: FFManifest/src/edu/lnu/FireFly/FFManifest/resource/Resources.java =================================================================== --- FFManifest/src/edu/lnu/FireFly/FFManifest/resource/Resources.java 2008-05-10 13:02:31 UTC (rev 120) +++ FFManifest/src/edu/lnu/FireFly/FFManifest/resource/Resources.java 2008-05-10 13:03:46 UTC (rev 121) @@ -58,6 +58,24 @@ } return null; } + + /** + * It search the resource with a given identifier and remove it from collection. + * + * @param identifier that identificate a needed resource to deleting + * @return true if resource was founded and deleting, and false in other case. + */ + public boolean deleteResource(String identifier){ + for (int i = 0; i < resources.size(); i++) { + if ((resources.get(i)).identifier.equals(identifier)) { + resources.remove(i); + + return true; + } + } + + return false; + } @Override protected void parseAttribute(Attribute attr) throws TestDocException { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 13:02:27
|
Revision: 120 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=120&view=rev Author: sem62 Date: 2008-05-10 06:02:31 -0700 (Sat, 10 May 2008) Log Message: ----------- * Realized deleting resources files from server when deleting item from course tree. * Added method "canDeleteChapter" that determine if you can delete some chapter. * refactoring WSClient's code. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java Added Paths: ----------- WebEditor/service/deleteFile.php Added: WebEditor/service/deleteFile.php =================================================================== --- WebEditor/service/deleteFile.php (rev 0) +++ WebEditor/service/deleteFile.php 2008-05-10 13:02:31 UTC (rev 120) @@ -0,0 +1,7 @@ +<? + require_once("config.inc.php"); + + if (isset($_POST['fName'])){ + delete ($course_location . $_POST['fName']); + } +?> \ No newline at end of file Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-10 10:09:14 UTC (rev 119) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-10 13:02:31 UTC (rev 120) @@ -5,9 +5,14 @@ import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.ChapterPropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; +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.SummaryPageModel.SummaryPageModel; +import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; public class ChapterModel extends ResourcedItemModel { + public ChapterModel() { super(); modelName = "ChapterModel"; @@ -101,17 +106,50 @@ } @Override - public void remove(TreeItem item) { - if (item.getChildCount() > 0) { + public void remove(TreeItem aChapter) { + if (!canDeleteChapter(aChapter)) { System.out .print("This chapter contain 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); + } - TreeDataModel.getInstance().treeNodesDeleted(item); - item.getParent().removeChild(item); + TreeDataModel.getInstance().treeNodesDeleted(aChapter); + aChapter.getParent().removeChild(aChapter); + + WebEditorServiceClient.getInstance().deleteFile(getConfFileName(aChapter)); } + /** + * 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; + } + @Override public void rename(TreeItem item, String newTitle) { ((Item) item).title = newTitle; Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-10 10:09:14 UTC (rev 119) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-10 13:02:31 UTC (rev 120) @@ -3,6 +3,7 @@ import java.io.StringReader; import java.util.UUID; +import edu.lnu.FireFly.FFManifest.Manifest; import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.FFManifest.resource.Resource; @@ -44,11 +45,11 @@ ConfigureItem(item); } - protected final String loadResource(String location, String identifier) { + protected final String loadResource(String location, TreeItem anItem) { String res = ""; if (location.equalsIgnoreCase("course")) { - res = WebEditorServiceClient.getInstance().getFileContent(identifier + ".conf", + res = WebEditorServiceClient.getInstance().getFileContent(getConfFileName(anItem), location); } else { res = WebEditorServiceClient.getInstance().getFileContent(modelName + ".conf", @@ -78,11 +79,33 @@ } @Override - public void remove(TreeItem item) { - TreeDataModel.getInstance().treeNodesDeleted(item); - item.getParent().removeChild(item); + public void remove(TreeItem anItem) { + TreeDataModel.getInstance().treeNodesDeleted(anItem); + anItem.getParent().removeChild(anItem); + + deleteResource(anItem); } + private void deleteResource(TreeItem anItem) { + if (canDeleteResource(anItem)){ + Manifest manifest = SummaryPageManager.getInstance().getManifest(); + + String identifier = getIdentifierRef(anItem); + Resource resource = manifest.resources.findResourceByIdentifier(identifier); + + WebEditorServiceClient.getInstance().deleteFile(resource.getFullHref()); + WebEditorServiceClient.getInstance().deleteFile(getConfFileName(anItem)); + + manifest.resources.deleteResource(identifier); + } + } + + private boolean canDeleteResource(TreeItem anItem) { + // TODO need check links to resource from other items in course tree. + + return true; + } + @Override public void rename(TreeItem item, String newTitle) { ((Item) item).title = newTitle; @@ -91,7 +114,7 @@ public final boolean synchronizeItemWithResource(TreeItem anItem, String location) { - String res = loadResource(location, getConfFileName(anItem)); + String res = loadResource(location, anItem); if (res == null || res.trim().equals("")) { return false; @@ -113,13 +136,13 @@ Resource resource = WebEditor.instance.getManifest().resources .findResourceByIdentifier(getIdentifierRef(anItem)); - return resource.identifier; + return resource.identifier + ".conf"; } protected final void initializeDataForItem(Item anItem){ ItemData itemData = createItemDataInstance(); - String res = loadResource("template", getIdentifier(anItem)); + String res = loadResource("template", anItem); itemData.unmarshal(new StringReader(res), anItem); @@ -135,7 +158,7 @@ ItemData itemData = getItemData(anItem); WebEditorServiceClient.getInstance().setFileContent( - getConfFileName(anItem) + ".conf", itemData.marshal(anItem)); + getConfFileName(anItem), itemData.marshal(anItem)); if (updateSummaryPages) { SummaryPageManager.getInstance().updateSummaryPages(); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java 2008-05-10 10:09:14 UTC (rev 119) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java 2008-05-10 13:02:31 UTC (rev 120) @@ -3,6 +3,7 @@ import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; @@ -33,8 +34,9 @@ long lastCommunication = WebEditorServiceClient .getInstance().getLastCommunicationTime(); - - if (System.currentTimeMillis() - lastCommunication > Settings.getInstance().getNopInterval()){ + + if (System.currentTimeMillis() - lastCommunication > Settings + .getInstance().getNopInterval()) { WebEditorServiceClient.getInstance().nop(); } } @@ -59,35 +61,89 @@ * @return */ public String getFileContent(String fName, String location) { + return getFileContent(fName, location, true); + } + + public String getFileContent(String fName, String location, boolean useHash) { System.out.println("Getting file's content (fName=" + fName + "; location=" + location + ")..."); - if (location.equalsIgnoreCase("template")) { - String template = templates.get(fName); - if (template != null) { - System.out.println("Founded in templates hash."); - return template; + if (useHash) { + if (location.equalsIgnoreCase("template")) { + String template = templates.get(fName); + if (template != null) { + System.out.println("Founded in templates hash."); + return template; + } + } else { + String content = contents.get(fName); + if (content != null) { + System.out.println("Founded in contents hash."); + return content; + } } - } else { - String content = contents.get(fName); - if (content != null) { - System.out.println("Founded in contents hash."); - return content; - } } - String result = ""; + String data; try { // Construct data - String data = URLEncoder.encode("fName", "UTF-8") + "=" + data = URLEncoder.encode("fName", "UTF-8") + "=" + URLEncoder.encode(fName, "UTF-8"); data += "&" + URLEncoder.encode("location", "UTF-8") + "=" + URLEncoder.encode(location, "UTF-8"); - // Send data + } catch (Exception e) { + e.printStackTrace(); + return null; + } + + String result = getResponse(data, "getFileContent.php"); + + if (location.equalsIgnoreCase("template")) { + templates.put(fName, result); + } else { + contents.put(fName, result); + } + + lastCommunicationTime = System.currentTimeMillis(); + return result; + } + + /** + * @param fName + * File name + * @param location + * Location name = template | course + * @return + */ + public boolean deleteFile(String fName) { + System.out.println("Deleting file (fName=" + fName + ")..."); + + // Construct data + String data; + try { + data = URLEncoder.encode("fName", "UTF-8") + "=" + + URLEncoder.encode(fName, "UTF-8"); + + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + return false; + } + + String result = getResponse(data, "deleteFile.php"); + + System.out.println("deleting result: " + result); + + lastCommunicationTime = System.currentTimeMillis(); + return true; + } + + private String getResponse(String data, String action) { + String result = ""; + try { URL url = new URL(Settings.getInstance().getServiceLocation() - + "getFileContent.php"); + + action); URLConnection conn = url.openConnection(); conn.setDoOutput(true); @@ -109,15 +165,9 @@ rd.close(); } catch (Exception e) { e.printStackTrace(); + return null; } - if (location.equalsIgnoreCase("template")) { - templates.put(fName, result); - } else { - contents.put(fName, result); - } - - lastCommunicationTime = System.currentTimeMillis(); return result; } @@ -132,48 +182,27 @@ contents.put(fName, content); - String result = ""; + String data = ""; try { // Construct data - String data = URLEncoder.encode("fName", "UTF-8") + "=" + data = URLEncoder.encode("fName", "UTF-8") + "=" + URLEncoder.encode(fName, "UTF-8"); data += "&" + URLEncoder.encode("content", "UTF-8") + "=" + URLEncoder.encode(content, "UTF-8"); - - // Send data - URL url = new URL(Settings.getInstance().getServiceLocation() - + "setFileContent.php"); - - URLConnection conn = url.openConnection(); - conn.setDoOutput(true); - - OutputStreamWriter wr = new OutputStreamWriter(conn - .getOutputStream()); - - wr.write(data); - wr.flush(); - - // Get the response - BufferedReader rd = new BufferedReader(new InputStreamReader(conn - .getInputStream())); - String line; - while ((line = rd.readLine()) != null) { - result += line + "\n"; - } - wr.close(); - rd.close(); } catch (Exception e) { e.printStackTrace(); } + getResponse(data, "setFileContent.php"); + lastCommunicationTime = System.currentTimeMillis(); } protected void nop() { lastCommunicationTime = System.currentTimeMillis(); System.out.println("Nop"); - - getFileContent("LectureModel.conf", "template"); + + getFileContent("ChapterModel.conf", "template", false); } protected Thread nopThread; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 10:09:07
|
Revision: 119 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=119&view=rev Author: sem62 Date: 2008-05-10 03:09:14 -0700 (Sat, 10 May 2008) Log Message: ----------- * Autosave process modification: AvtoSave called after last saving or opening with some interval, but not every interval milliseconds. * Not calling process. Simply getting LectureModel.conf from template with some interval after last communicating. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AutoSaveThread.java WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AutoSaveThread.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AutoSaveThread.java 2008-05-10 09:32:21 UTC (rev 118) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AutoSaveThread.java 2008-05-10 10:09:14 UTC (rev 119) @@ -6,15 +6,18 @@ public class AutoSaveThread implements Runnable { + private long nextSaveAt = 0; + @Override public void run() { + reset(); + try { while (true) { - Thread.sleep(Settings.getInstance().getAutoSaveInterval()); - try { - WebEditor.instance.saveManifest(); - } catch (TestDocException e) { - System.out.println("WARNING: Can't save manifest."); + Thread.sleep(5000); + if (System.currentTimeMillis() > nextSaveAt){ + processSave(); + reset(); } } } catch (InterruptedException e) { @@ -23,4 +26,16 @@ } } + public void reset() { + nextSaveAt = System.currentTimeMillis() + Settings.getInstance().getAutoSaveInterval(); + } + + private void processSave() { + try { + WebEditor.instance.saveManifest(); + } catch (TestDocException e) { + System.out.println("WARNING: Can't save manifest."); + } + } + } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java 2008-05-10 09:32:21 UTC (rev 118) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java 2008-05-10 10:09:14 UTC (rev 119) @@ -7,6 +7,7 @@ private String resourceLocation = "http://127.0.0.1/sem/WebEditor/"; private long autoSaveInterval = 5 * 60 * 1000; + private long nopInterval = 60 * 1000; public static Settings obj = null; @@ -58,4 +59,12 @@ public void setAutoSaveInterval(long autoSaveInterval) { this.autoSaveInterval = autoSaveInterval; } + + public long getNopInterval() { + return nopInterval; + } + + public void setNopInterval(long nopInterval) { + this.nopInterval = nopInterval; + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java 2008-05-10 09:32:21 UTC (rev 118) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java 2008-05-10 10:09:14 UTC (rev 119) @@ -14,43 +14,68 @@ private HashMap<String, String> templates; private HashMap<String, String> contents; - + private long lastCommunicationTime = 0; + private static WebEditorServiceClient obj = null; - - private WebEditorServiceClient(){ - templates = new HashMap<String, String>(); - contents = new HashMap<String, String>(); + + private WebEditorServiceClient() { + templates = new HashMap<String, String>(); + contents = new HashMap<String, String>(); + + nopThread = new Thread(new Runnable() { + public void run() { + while (true) { + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + // do nothing. + } + + long lastCommunication = WebEditorServiceClient + .getInstance().getLastCommunicationTime(); + + if (System.currentTimeMillis() - lastCommunication > Settings.getInstance().getNopInterval()){ + WebEditorServiceClient.getInstance().nop(); + } + } + } + }); + nopThread.start(); } - - public static WebEditorServiceClient getInstance(){ - if (obj == null){ + + public static WebEditorServiceClient getInstance() { + if (obj == null) { obj = new WebEditorServiceClient(); } - + return obj; } + /** - * @param fName File name - * @param location Location name = template | course + * @param fName + * File name + * @param location + * Location name = template | course * @return */ public String getFileContent(String fName, String location) { - System.out.println("Getting file's content (fName=" + fName + "; location=" + location + ")..."); - - if (location.equalsIgnoreCase("template")){ + System.out.println("Getting file's content (fName=" + fName + + "; location=" + location + ")..."); + + if (location.equalsIgnoreCase("template")) { String template = templates.get(fName); - if (template != null){ + if (template != null) { System.out.println("Founded in templates hash."); return template; } } else { String content = contents.get(fName); - if (content != null){ + if (content != null) { System.out.println("Founded in contents hash."); return content; } } - + String result = ""; try { // Construct data @@ -58,18 +83,18 @@ + URLEncoder.encode(fName, "UTF-8"); data += "&" + URLEncoder.encode("location", "UTF-8") + "=" - + URLEncoder.encode(location, "UTF-8"); + + URLEncoder.encode(location, "UTF-8"); // Send data URL url = new URL(Settings.getInstance().getServiceLocation() + "getFileContent.php"); - + URLConnection conn = url.openConnection(); conn.setDoOutput(true); - + OutputStreamWriter wr = new OutputStreamWriter(conn .getOutputStream()); - + wr.write(data); wr.flush(); @@ -85,23 +110,24 @@ } catch (Exception e) { e.printStackTrace(); } - - if (location.equalsIgnoreCase("template")){ + + if (location.equalsIgnoreCase("template")) { templates.put(fName, result); } else { contents.put(fName, result); } - + + lastCommunicationTime = System.currentTimeMillis(); return result; } public void setFileContent(String fName, String content) { System.out.println("Setting file's content (fName=" + fName + ")..."); - + String hashedContent = contents.get(fName); - if (content.equals(hashedContent)){ + if (content.equals(hashedContent)) { System.out.println("Not modified."); - return ; + return; } contents.put(fName, content); @@ -112,18 +138,18 @@ String data = URLEncoder.encode("fName", "UTF-8") + "=" + URLEncoder.encode(fName, "UTF-8"); data += "&" + URLEncoder.encode("content", "UTF-8") + "=" - + URLEncoder.encode(content, "UTF-8"); + + URLEncoder.encode(content, "UTF-8"); // Send data URL url = new URL(Settings.getInstance().getServiceLocation() + "setFileContent.php"); - + URLConnection conn = url.openConnection(); conn.setDoOutput(true); - + OutputStreamWriter wr = new OutputStreamWriter(conn .getOutputStream()); - + wr.write(data); wr.flush(); @@ -139,5 +165,24 @@ } catch (Exception e) { e.printStackTrace(); } + + lastCommunicationTime = System.currentTimeMillis(); } + + protected void nop() { + lastCommunicationTime = System.currentTimeMillis(); + System.out.println("Nop"); + + getFileContent("LectureModel.conf", "template"); + } + + protected Thread nopThread; + + public long getLastCommunicationTime() { + return lastCommunicationTime; + } + + public void setLastCommunicationTime(long lastCommunicationTime) { + this.lastCommunicationTime = lastCommunicationTime; + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-10 09:32:21 UTC (rev 118) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-10 10:09:14 UTC (rev 119) @@ -49,6 +49,10 @@ protected JMenuItem saveMenuItem = null; + private Thread threadForAautoSave; + + private AutoSaveThread autoSaveThread; + @Override public void actionPerformed(ActionEvent arg0) { try { @@ -66,12 +70,18 @@ public void saveManifest() throws TestDocException { Parser parser = new Parser(); + + autoSaveThread.reset(); + WebEditorServiceClient.getInstance().setFileContent("imsmanifest.xml", parser.toXML(manifest)); } public void openManifest() throws TestDocException { Parser parser = new Parser(); + + autoSaveThread.reset(); + manifest = parser.fromXML(WebEditorServiceClient.getInstance() .getFileContent("imsmanifest.xml", "course")); TreeDataModel.initInstance(manifest); @@ -86,26 +96,14 @@ @Override public void init() { - String paramCourseLocation = getParameter("courseLocation"); - String paramServiceLocation = getParameter("serviceLocation"); - String paramTemplateLocation = getParameter("templateLocation"); - String paramResourceLocation = getParameter("resourceLocation"); + parseParameter(); - 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); - } - instance = this; + autoSaveThread = new AutoSaveThread(); + threadForAautoSave = new Thread(autoSaveThread); + threadForAautoSave.start(); + initMenu(); ItemModels.clear(); ItemModels.registerModel(new LectureModel()); @@ -121,10 +119,6 @@ CreateNewCourse(); } - Thread autoSaveThread = new Thread(new AutoSaveThread()); - - autoSaveThread.start(); - tree = new JTree(TreeDataModel.getInstance()); this.add(new JScrollPane(tree)); @@ -133,6 +127,26 @@ tree.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(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 09:32:21
|
Revision: 118 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=118&view=rev Author: sem62 Date: 2008-05-10 02:32:21 -0700 (Sat, 10 May 2008) Log Message: ----------- removed creating resource from chapter model Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-10 09:19:03 UTC (rev 117) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-10 09:32:21 UTC (rev 118) @@ -139,4 +139,9 @@ // 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/ItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-10 09:19:03 UTC (rev 117) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-10 09:32:21 UTC (rev 118) @@ -74,6 +74,8 @@ public abstract void ConfigureItem(TreeItem item); protected String createNewResource() { + if (modelHasResource()){ + Resource resource = new Resource(); resource.identifier = this.getClass().getSimpleName() + "_res_" + UUID.randomUUID().toString(); @@ -86,8 +88,15 @@ WebEditor.instance.getManifest().resources.resources.add(resource); return resource.identifier; + } + + return null; } + public boolean modelHasResource() { + return true; + } + public ItemData getItemData(TreeItem anItem) { if (questionsData.containsKey(anItem)) { return questionsData.get(anItem); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |
From: <se...@us...> - 2008-05-10 09:16:31
|
Revision: 116 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=116&view=rev Author: sem62 Date: 2008-05-10 02:16:37 -0700 (Sat, 10 May 2008) Log Message: ----------- Added throwing exception at generating xml when globalObjectives is null in Objectives instance. Modified Paths: -------------- FFManifest/src/FFManifest.jardesc FFManifest/src/edu/lnu/FireFly/FFManifest/item/sequencing/objectives/Objectives.java Modified: FFManifest/src/FFManifest.jardesc =================================================================== --- FFManifest/src/FFManifest.jardesc 2008-05-10 08:20:21 UTC (rev 115) +++ FFManifest/src/FFManifest.jardesc 2008-05-10 09:16:37 UTC (rev 116) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="WINDOWS-1251" standalone="no"?> <jardesc> - <jar path="E:/ACMContester/out/web/WebEditor/FFManifest.jar"/> + <jar path="s:/WebEditor/FFManifest.jar"/> <options buildIfNeeded="true" compress="true" descriptionLocation="/FFManifest/src/FFManifest.jardesc" exportErrors="false" exportWarnings="true" includeDirectoryEntries="false" overwrite="true" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/> <storedRefactorings deprecationInfo="true" structuralOnly="false"/> <selectedProjects/> Modified: FFManifest/src/edu/lnu/FireFly/FFManifest/item/sequencing/objectives/Objectives.java =================================================================== --- FFManifest/src/edu/lnu/FireFly/FFManifest/item/sequencing/objectives/Objectives.java 2008-05-10 08:20:21 UTC (rev 115) +++ FFManifest/src/edu/lnu/FireFly/FFManifest/item/sequencing/objectives/Objectives.java 2008-05-10 09:16:37 UTC (rev 116) @@ -39,10 +39,14 @@ public Element asXmlElement() throws TestDocException { Element result = DocumentHelper.createElement("imsss:objectives"); - Element primaryObjectiveElement = primaryObjective.asXmlElement(); - primaryObjectiveElement.setName("primaryObjective"); - result.add(primaryObjectiveElement); - + if (primaryObjective != null) { + Element primaryObjectiveElement = primaryObjective.asXmlElement(); + primaryObjectiveElement.setName("primaryObjective"); + result.add(primaryObjectiveElement); + } else { + throw new TestDocException("PrimaryObjective is mandatory element in objective, but it is absent."); + } + for (int i = 0; i < objective.size(); i++) { result.add(objective.get(i).asXmlElement()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-10 08:20:20
|
Revision: 115 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=115&view=rev Author: sem62 Date: 2008-05-10 01:20:21 -0700 (Sat, 10 May 2008) Log Message: ----------- * Added auto save every Settings.autoSaveInterval milliseconds. * now updateItemResource is one for all models Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterItemData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AutoSaveThread.java Added: WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AutoSaveThread.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AutoSaveThread.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/Data/AutoSaveThread.java 2008-05-10 08:20:21 UTC (rev 115) @@ -0,0 +1,26 @@ +package edu.lnu.FireFly.WebEditor.Data; + +import edu.lnu.FireFly.FFManifest.parser.TestDocException; +import edu.lnu.FireFly.WebEditor.Settings; +import edu.lnu.FireFly.WebEditor.WebEditor; + +public class AutoSaveThread implements Runnable { + + @Override + public void run() { + try { + while (true) { + Thread.sleep(Settings.getInstance().getAutoSaveInterval()); + try { + WebEditor.instance.saveManifest(); + } catch (TestDocException e) { + System.out.println("WARNING: Can't save manifest."); + } + } + } catch (InterruptedException e) { + // If interrupt sleepping. + // Do nothing + } + } + +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java 2008-05-10 08:20:21 UTC (rev 115) @@ -64,7 +64,7 @@ insertAllNeededObjectivesIntoSummaryPage(root); - ((SummaryPageModel) model).updateItemResource(summaryPage, true); + ((SummaryPageModel) model).updateItemResource(summaryPage, false); } else { deleteSummaryPageIfExists(root); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterItemData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterItemData.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterItemData.java 2008-05-10 08:20:21 UTC (rev 115) @@ -3,6 +3,7 @@ import java.io.Reader; import org.dom4j.Document; +import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.SAXReader; @@ -11,6 +12,22 @@ public class ChapterItemData extends ItemData { private boolean showSummaryPage = true; + @Override + public String marshal(TreeItem anItem) { + Document doc = DocumentHelper.createDocument(); + Element root = doc.addElement("ChapterItemData"); + root.addElement("ShowSummaryPage").setText( + String.valueOf(isShowSummaryPage())); + + root.addElement("ShowOnSummaryPage").setText( + String.valueOf(getShowOnSummaryPage())); + + root.addElement("Configuration").setText( + String.valueOf(getConfiguration())); + + return doc.asXML(); + } + private boolean flow; private boolean choice; Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-10 08:20:21 UTC (rev 115) @@ -1,40 +1,13 @@ package edu.lnu.FireFly.WebEditor.ItemModels.Chapter; -import org.dom4j.Document; -import org.dom4j.DocumentHelper; -import org.dom4j.Element; - -import edu.lnu.FireFly.FFManifest.Organization; import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.item.Item; -import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.ChapterPropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; -import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; public class ChapterModel extends ResourcedItemModel { - @Override - protected String getDefaultTitle() { - return "New chapter"; - } - - @Override - public boolean getLimitConditionsMenuVisible() { - return false; - } - - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return true; - } - - @Override - public boolean getShowSummaryPageMenuVisible() { - return true; - } - public ChapterModel() { super(); modelName = "ChapterModel"; @@ -60,6 +33,35 @@ TreeDataModel.getInstance().treeNodesChanged(item); } + @Override + protected ItemData createItemDataInstance() { + return new ChapterItemData(); + } + + @Override + protected String getConfFileName(TreeItem anItem) { + return getIdentifier(anItem); + } + + private ChapterItemData getData(TreeItem anItem) { + return (ChapterItemData) getItemData(anItem); + } + + @Override + protected String getDefaultTitle() { + return "New chapter"; + } + + @Override + public boolean getLimitConditionsMenuVisible() { + return false; + } + + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return true; + } + public boolean getShowSummaryPage(TreeItem anItem) { ChapterItemData itemData = getData(anItem); @@ -74,6 +76,11 @@ } @Override + public boolean getShowSummaryPageMenuVisible() { + return true; + } + + @Override public boolean isApplaingForItem(TreeItem treeItem) { if (treeItem.getClass() != Item.class) { return false; @@ -127,45 +134,9 @@ } } - private ChapterItemData getData(TreeItem anItem) { - return (ChapterItemData) getItemData(anItem); - } - @Override - public boolean updateItemResource(TreeItem anItem, - boolean updateSummaryPages) { - ChapterItemData itemData = getData(anItem); - - Document doc = DocumentHelper.createDocument(); - Element root = doc.addElement(modelName); - root.addElement("ShowSummaryPage").setText( - String.valueOf(itemData.isShowSummaryPage())); - - root.addElement("ShowOnSummaryPage").setText( - String.valueOf(itemData.getShowOnSummaryPage())); - - root.addElement("Configuration").setText( - String.valueOf(itemData.getConfiguration())); - - String identifier = "unknown"; - if (anItem.getClass() == Organization.class) { - identifier = ((Organization) anItem).identifier; - } else { - identifier = ((Item) anItem).identifier; - } - - WebEditorServiceClient.getInstance().setFileContent( - identifier + ".conf", doc.asXML()); - - if (updateSummaryPages) { - SummaryPageManager.getInstance().updateSummaryPages(); - } - - return true; + protected void updateResourceFile(TreeItem anItem) { + // do nothing. + // Chapter currently haven't resource file } - - @Override - protected ItemData createItemDataInstance() { - return new ChapterItemData(); - } } \ No newline at end of file Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemData.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemData.java 2008-05-10 08:20:21 UTC (rev 115) @@ -16,4 +16,5 @@ } public abstract boolean unmarshal(Reader res, TreeItem anItem); + public abstract String marshal(TreeItem anItem); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-10 08:20:21 UTC (rev 115) @@ -84,9 +84,9 @@ return resource.identifier; } - public ItemData getItemData(TreeItem item) { - if (questionsData.containsKey(item)) { - return questionsData.get(item); + public ItemData getItemData(TreeItem anItem) { + if (questionsData.containsKey(anItem)) { + return questionsData.get(anItem); } return null; @@ -141,6 +141,14 @@ public abstract boolean getShowSummaryPageMenuVisible(); + public final String getIdentifierRef(TreeItem anItem) { + if (anItem.getClass() == Item.class){ + return ((Item)anItem).identifierref; + } + + return null; + } + public final String getIdentifier(TreeItem anItem) { if (anItem.getClass() == Item.class){ return ((Item)anItem).identifier; Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureData.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureData.java 2008-05-10 08:20:21 UTC (rev 115) @@ -3,6 +3,7 @@ import java.io.Reader; import org.dom4j.Document; +import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.SAXReader; @@ -52,4 +53,17 @@ return true; } + + @Override + public String marshal(TreeItem anItem) { + Document doc = DocumentHelper.createDocument(); + Element root = doc.addElement("LectureData"); + root.addElement("caption").setText(getCaption()); + root.addElement("content").setText(getContent()); + + root.addElement("ShowOnSummaryPage").setText( + String.valueOf(getShowOnSummaryPage())); + + return doc.asXML(); + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-10 08:20:21 UTC (rev 115) @@ -1,20 +1,14 @@ package edu.lnu.FireFly.WebEditor.ItemModels.Lecture; -import org.dom4j.Document; -import org.dom4j.DocumentHelper; -import org.dom4j.Element; - import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.WebEditor; -import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.LecturePropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; import edu.lnu.FireFly.WebEditor.ItemModels.Template; -import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; public class LectureModel extends ResourcedItemModel { @Override @@ -69,8 +63,7 @@ } @Override - public boolean updateItemResource(TreeItem anItem, - boolean updateSummaryPages) { + protected void updateResourceFile(TreeItem anItem) { Resource resource = WebEditor.instance.getManifest().resources .findResourceByIdentifier(((Item) anItem).identifierref); @@ -82,21 +75,6 @@ template.setProperty("content", itemData.getContent()); template.updateResource(); - - Document doc = DocumentHelper.createDocument(); - Element root = doc.addElement(modelName); - root.addElement("caption").setText(itemData.getCaption()); - root.addElement("content").setText(itemData.getContent()); - - root.addElement("ShowOnSummaryPage").setText( - String.valueOf(itemData.getShowOnSummaryPage())); - - WebEditorServiceClient.getInstance().setFileContent( - resource.identifier + ".conf", doc.asXML()); - - SummaryPageManager.getInstance().updateSummaryPages(); - - return true; } @Override Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-10 08:20:21 UTC (rev 115) @@ -5,6 +5,9 @@ import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.FFManifest.resource.Resource; +import edu.lnu.FireFly.WebEditor.WebEditor; +import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; @@ -88,7 +91,7 @@ public final boolean synchronizeItemWithResource(TreeItem anItem, String location) { - String res = loadResource(location, getIdentifier(anItem)); + String res = loadResource(location, getConfFileName(anItem)); if (res == null || res.trim().equals("")) { return false; @@ -106,6 +109,13 @@ return true; } + protected String getConfFileName(TreeItem anItem) { + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(getIdentifierRef(anItem)); + + return resource.identifier; + } + protected final void initializeDataForItem(Item anItem){ ItemData itemData = createItemDataInstance(); @@ -115,4 +125,22 @@ setItemData(anItem, itemData); } + + protected abstract void updateResourceFile(TreeItem anItem); + + public boolean updateItemResource(TreeItem anItem, + boolean updateSummaryPages) { + + updateResourceFile(anItem); + ItemData itemData = getItemData(anItem); + + WebEditorServiceClient.getInstance().setFileContent( + getConfFileName(anItem) + ".conf", itemData.marshal(anItem)); + + if (updateSummaryPages) { + SummaryPageManager.getInstance().updateSummaryPages(); + } + + return true; + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java 2008-05-10 08:20:21 UTC (rev 115) @@ -4,6 +4,7 @@ import java.util.Iterator; import org.dom4j.Document; +import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.SAXReader; @@ -11,6 +12,36 @@ import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; public class SimpleQuestionData extends ItemData { + @Override + public String marshal(TreeItem anItem) { + Document doc = DocumentHelper.createDocument(); + Element root = doc.addElement("SimpleQuestion"); + root.addElement("caption").setText(getCaption()); + root.addElement("question").setText(getQuestion()); + + root.addElement("ShowOnSummaryPage").setText( + String.valueOf(getShowOnSummaryPage())); + + Element ans = root.addElement("answers"); + + ans.addAttribute("singleVariant", String.valueOf(getAnswers() + .getSingleVariant())); + + Iterator<SimpleQuestionAnswer> iter = getAnswers().answers.iterator(); + + while (iter.hasNext()) { + SimpleQuestionAnswer answer = iter.next(); + + Element ansEl = ans.addElement("answer"); + ansEl + .addAttribute("point", String.valueOf(answer + .getAnswerPoint())); + ansEl.setText(answer.getAnswerText()); + } + + return doc.asXML(); + } + private SimpleQuestionAnswersDataModel answers = new SimpleQuestionAnswersDataModel(); private String caption = ""; private String question = ""; Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-10 08:20:21 UTC (rev 115) @@ -2,21 +2,15 @@ import java.util.Iterator; -import org.dom4j.Document; -import org.dom4j.DocumentHelper; -import org.dom4j.Element; - import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.WebEditor; -import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; 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.Template; -import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; public class SimpleQuestionModel extends ResourcedItemModel { @Override @@ -100,8 +94,7 @@ } @Override - public boolean updateItemResource(TreeItem anItem, - boolean updateSummaryPages) { + protected void updateResourceFile(TreeItem anItem) { Resource resource = WebEditor.instance.getManifest().resources .findResourceByIdentifier(((Item) anItem).identifierref); @@ -125,38 +118,6 @@ template.setProperty("answers", answers); template.updateResource(); - - Document doc = DocumentHelper.createDocument(); - Element root = doc.addElement(modelName); - root.addElement("caption").setText(itemData.getCaption()); - root.addElement("question").setText(itemData.getQuestion()); - - root.addElement("ShowOnSummaryPage").setText( - String.valueOf(itemData.getShowOnSummaryPage())); - - Element ans = root.addElement("answers"); - - ans.addAttribute("singleVariant", String.valueOf(itemData.getAnswers() - .getSingleVariant())); - - iter = itemData.getAnswers().answers.iterator(); - - while (iter.hasNext()) { - SimpleQuestionAnswer answer = iter.next(); - - Element ansEl = ans.addElement("answer"); - ansEl - .addAttribute("point", String.valueOf(answer - .getAnswerPoint())); - ansEl.setText(answer.getAnswerText()); - } - - WebEditorServiceClient.getInstance().setFileContent(resource.identifier + ".conf", - doc.asXML()); - - SummaryPageManager.getInstance().updateSummaryPages(); - - return true; } @Override Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageData.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageData.java 2008-05-10 08:20:21 UTC (rev 115) @@ -2,12 +2,23 @@ import java.io.Reader; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; + import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; public class SummaryPageData extends ItemData { @Override + public String marshal(TreeItem anItem) { + Document doc = DocumentHelper.createDocument(); + doc.addElement(this.getClass().getSimpleName()); + + return doc.asXML(); + } + + @Override public boolean unmarshal(Reader res, TreeItem anItem) { // TODO Auto-generated method stub return true; Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-10 08:20:21 UTC (rev 115) @@ -1,8 +1,5 @@ package edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel; -import org.dom4j.Document; -import org.dom4j.DocumentHelper; - import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.FFManifest.resource.Resource; @@ -16,7 +13,6 @@ import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; import edu.lnu.FireFly.WebEditor.ItemModels.Lecture.LectureModel; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; -import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; public class SummaryPageModel extends ResourcedItemModel { @Override @@ -38,40 +34,13 @@ modelName = "SummaryPageModel"; } - @Override - public boolean updateItemResource(TreeItem anItem, - boolean updateSummaryPages) { - Resource resource = WebEditor.instance.getManifest().resources - .findResourceByIdentifier(((Item) anItem).identifierref); - - Template template = new Template(resource.getFullHref(), this); - - String content = "<script type=\"text/javascript\">" - + getSummaryPageContent(anItem.getParent()) + "</script>"; - - template.setProperty("content", content); - template.setProperty("title", anItem.getTitle()); - - template.updateResource(); - - Document doc = DocumentHelper.createDocument(); - - /* Element root = */doc.addElement(this.getClass().getSimpleName()); - // root.addElement("content").setText(getData(item).getContent()); - - WebEditorServiceClient.getInstance().setFileContent(resource.identifier + ".conf", - doc.asXML()); - - return true; - } - private String getSummaryPageContent(TreeItem parent) { int childsCount = parent.getChildCount(); ItemModel model = ItemModels.getModelFromItem(parent); String res = "openBlock(\"" + parent.getTitle() + "\", \"" - + model.getModelName() + "\", \"" - + model.getIdentifier(parent) + "\");\n"; + + model.getModelName() + "\", \"" + model.getIdentifier(parent) + + "\");\n"; for (int i = 0; i < childsCount; i++) { TreeItem item = parent.getChild(i); @@ -141,4 +110,20 @@ return new SummaryPageData(); } + @Override + protected void updateResourceFile(TreeItem anItem) { + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(((Item) anItem).identifierref); + + Template template = new Template(resource.getFullHref(), this); + + String content = "<script type=\"text/javascript\">" + + getSummaryPageContent(anItem.getParent()) + "</script>"; + + template.setProperty("content", content); + template.setProperty("title", anItem.getTitle()); + + template.updateResource(); + } + } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java 2008-05-10 08:20:21 UTC (rev 115) @@ -1,11 +1,13 @@ package edu.lnu.FireFly.WebEditor; public class Settings { - private String courseLocation = ""; - private String templateLocation = ""; - private String serviceLocation = ""; - private String resourceLocation = ""; + private String courseLocation = "http://127.0.0.1/sem/course/"; + private String templateLocation = "http://127.0.0.1/sem/WebEditor/template/"; + private String serviceLocation = "http://127.0.0.1/sem/WebEditor/service/"; + private String resourceLocation = "http://127.0.0.1/sem/WebEditor/"; + private long autoSaveInterval = 5 * 60 * 1000; + public static Settings obj = null; public static Settings getInstance(){ @@ -48,4 +50,12 @@ public void setResourceLocation(String resourceLocation) { this.resourceLocation = resourceLocation; } + + public long getAutoSaveInterval() { + return autoSaveInterval; + } + + public void setAutoSaveInterval(long autoSaveInterval) { + this.autoSaveInterval = autoSaveInterval; + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java 2008-05-10 08:20:21 UTC (rev 115) @@ -92,7 +92,6 @@ contents.put(fName, result); } - System.out.print("result: " + result); return result; } @@ -140,8 +139,5 @@ } catch (Exception e) { e.printStackTrace(); } - - System.out.println("setFileContent(). result is:"); - System.out.println(result); } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-09 19:42:16 UTC (rev 114) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-10 08:20:21 UTC (rev 115) @@ -18,6 +18,7 @@ import edu.lnu.FireFly.FFManifest.parser.Parser; import edu.lnu.FireFly.FFManifest.parser.TestDocException; import edu.lnu.FireFly.FFManifest.resource.Resource; +import edu.lnu.FireFly.WebEditor.Data.AutoSaveThread; import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; import edu.lnu.FireFly.WebEditor.GUI.CourseTreePopupMenu; @@ -30,8 +31,8 @@ import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; -public class WebEditor extends AppletWithWYSIWYGEditor implements ActionListener, - TreeSelectionListener { +public class WebEditor extends AppletWithWYSIWYGEditor implements + ActionListener, TreeSelectionListener { /** * @@ -63,13 +64,13 @@ } } - private void saveManifest() throws TestDocException { + public void saveManifest() throws TestDocException { Parser parser = new Parser(); WebEditorServiceClient.getInstance().setFileContent("imsmanifest.xml", parser.toXML(manifest)); } - private void openManifest() throws TestDocException { + public void openManifest() throws TestDocException { Parser parser = new Parser(); manifest = parser.fromXML(WebEditorServiceClient.getInstance() .getFileContent("imsmanifest.xml", "course")); @@ -85,15 +86,24 @@ @Override public void init() { - Settings.getInstance() - .setCourseLocation(getParameter("courseLocation")); - Settings.getInstance().setServiceLocation( - getParameter("serviceLocation")); - Settings.getInstance().setTemplateLocation( - getParameter("templateLocation")); - Settings.getInstance().setResourceLocation( - getParameter("resourceLocation")); + 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); + } + instance = this; initMenu(); @@ -104,15 +114,23 @@ ItemModels.registerModel(new OrganizationModel()); ItemModels.registerModel(new SummaryPageModel()); - CreateNewCourse(); + try { + openManifest(); + } catch (TestDocException e) { + System.out.println("Can't load course. Creating new..."); + CreateNewCourse(); + } + Thread autoSaveThread = new Thread(new AutoSaveThread()); + + autoSaveThread.start(); + tree = new JTree(TreeDataModel.getInstance()); this.add(new JScrollPane(tree)); tree.addTreeSelectionListener(this); tree.addMouseListener(new CourseTreePopupMenu()); - } private void CreateNewCourse() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-09 19:53:34
|
Revision: 114 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=114&view=rev Author: sem62 Date: 2008-05-09 12:42:16 -0700 (Fri, 09 May 2008) Log Message: ----------- Fized bug with "Same as title" checkbox Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java 2008-05-09 19:36:00 UTC (rev 113) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java 2008-05-09 19:42:16 UTC (rev 114) @@ -86,11 +86,11 @@ okButton.addActionListener(this); cancelButton.addActionListener(this); sameAsTitleCheckbox.addChangeListener(this); - + editContentInHtmlBtn.setText("HTML Editor"); setResizable(false); - + setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); titlePanel.setBorder(javax.swing.BorderFactory .createTitledBorder("Title")); @@ -166,27 +166,28 @@ javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout( contentPanel); contentPanel.setLayout(jPanel3Layout); - jPanel3Layout.setHorizontalGroup( - jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() - .addContainerGap() - .addComponent(editContentInHtmlBtn)) - .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 486, Short.MAX_VALUE) - ); - jPanel3Layout.setVerticalGroup( - jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() - .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(editContentInHtmlBtn, 20, 20, 20)) - ); -// jPanel3Layout.setHorizontalGroup(jPanel3Layout.createParallelGroup( -// javax.swing.GroupLayout.Alignment.LEADING).addComponent( -// jScrollPane1)); -// jPanel3Layout.setVerticalGroup(jPanel3Layout.createParallelGroup( -// javax.swing.GroupLayout.Alignment.LEADING).addComponent( -// jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 174, -// javax.swing.GroupLayout.PREFERRED_SIZE)); + jPanel3Layout.setHorizontalGroup(jPanel3Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING).addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel3Layout.createSequentialGroup().addContainerGap() + .addComponent(editContentInHtmlBtn)).addComponent( + jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 486, + Short.MAX_VALUE)); + jPanel3Layout.setVerticalGroup(jPanel3Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING).addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel3Layout.createSequentialGroup().addComponent( + jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, + 145, Short.MAX_VALUE).addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(editContentInHtmlBtn, 20, 20, 20))); + // jPanel3Layout.setHorizontalGroup(jPanel3Layout.createParallelGroup( + // javax.swing.GroupLayout.Alignment.LEADING).addComponent( + // jScrollPane1)); + // jPanel3Layout.setVerticalGroup(jPanel3Layout.createParallelGroup( + // javax.swing.GroupLayout.Alignment.LEADING).addComponent( + // jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 174, + // javax.swing.GroupLayout.PREFERRED_SIZE)); okButton.setText("Ok"); @@ -233,11 +234,18 @@ javax.swing.GroupLayout.Alignment.TRAILING, layout .createSequentialGroup() - .addComponent(cancelButton, 80, 80, 80) + .addComponent( + cancelButton, + 80, + 80, + 80) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent( - okButton, 80, 80, 80) + okButton, + 80, + 80, + 80) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED))) .addContainerGap())))); @@ -274,8 +282,11 @@ layout .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cancelButton, 20, 20, 20) - .addComponent(okButton, 20, 20, 20)) + .addComponent( + cancelButton, + 20, 20, 20) + .addComponent(okButton, + 20, 20, 20)) .addContainerGap())); pack(); @@ -285,11 +296,19 @@ protected void saveChanges() { manifestItem.setTitle(titleTextField.getText()); + String caption = captionTextField.getText(); + String content = contentEditorPane.getText(); + String title = manifestItem.getTitle(); + + if (sameAsTitleCheckbox.isSelected()) { + caption = title; + } + LectureModel model = new LectureModel(); - ((LectureData) model.getItemData(manifestItem)) - .setCaption(captionTextField.getText()); - ((LectureData) model.getItemData(manifestItem)) - .setContent(contentEditorPane.getText()); + LectureData lectureData = ((LectureData) model.getItemData(manifestItem)); + + lectureData.setCaption(caption); + lectureData.setContent(content); model.updateItemResource(manifestItem, true); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-09 19:36:03
|
Revision: 113 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=113&view=rev Author: sem62 Date: 2008-05-09 12:36:00 -0700 (Fri, 09 May 2008) Log Message: ----------- fixed bug with confirm dialog in WYSIWYG editor Modified Paths: -------------- WebEditor/resources/HTMLedit.php WebEditor/template/LectureModel.conf Modified: WebEditor/resources/HTMLedit.php =================================================================== --- WebEditor/resources/HTMLedit.php 2008-05-09 18:43:59 UTC (rev 112) +++ WebEditor/resources/HTMLedit.php 2008-05-09 19:36:00 UTC (rev 113) @@ -2,18 +2,22 @@ <head> <script type="text/javascript"> + var saved = false; function save(){ var s=document.getElementById("spaw_edit_field").value; opener.document.webeditor.setEditedHTML(s); + saved=true; close(); return false; } function closing(){ - if (confirm('Course not saved. Do you want to save it now?') == true){ - save(); - } else { - opener.document.webeditor.cancelHtmlEditing(); + if (!saved){ + if (confirm('Course not saved. Do you want to save it now?') == true){ + save(); + } else { + opener.document.webeditor.cancelHtmlEditing(); + } } } Modified: WebEditor/template/LectureModel.conf =================================================================== --- WebEditor/template/LectureModel.conf 2008-05-09 18:43:59 UTC (rev 112) +++ WebEditor/template/LectureModel.conf 2008-05-09 19:36:00 UTC (rev 113) @@ -1,5 +1,5 @@ <?xml version = "1.0" ?> <LectureModel> - <caption>New caption</caption> + <caption>New lecture</caption> <content>New content.</content> </LectureModel> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-09 18:45:00
|
Revision: 112 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=112&view=rev Author: sem62 Date: 2008-05-09 11:43:59 -0700 (Fri, 09 May 2008) Log Message: ----------- Transfer data optimization. * If you download the same file againe - use content in hashMap. * If you set content the same as previous one - it's ignore. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java 2008-05-09 16:45:53 UTC (rev 111) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WSClients/WebEditorServiceClient.java 2008-05-09 18:43:59 UTC (rev 112) @@ -13,11 +13,13 @@ public class WebEditorServiceClient { private HashMap<String, String> templates; + private HashMap<String, String> contents; private static WebEditorServiceClient obj = null; private WebEditorServiceClient(){ templates = new HashMap<String, String>(); + contents = new HashMap<String, String>(); } public static WebEditorServiceClient getInstance(){ @@ -38,11 +40,15 @@ if (location.equalsIgnoreCase("template")){ String template = templates.get(fName); if (template != null){ - - System.out.println("Founded in hash."); - + System.out.println("Founded in templates hash."); return template; } + } else { + String content = contents.get(fName); + if (content != null){ + System.out.println("Founded in contents hash."); + return content; + } } String result = ""; @@ -82,7 +88,9 @@ if (location.equalsIgnoreCase("template")){ templates.put(fName, result); - } + } else { + contents.put(fName, result); + } System.out.print("result: " + result); return result; @@ -91,6 +99,14 @@ public void setFileContent(String fName, String content) { System.out.println("Setting file's content (fName=" + fName + ")..."); + String hashedContent = contents.get(fName); + if (content.equals(hashedContent)){ + System.out.println("Not modified."); + return ; + } + + contents.put(fName, content); + String result = ""; try { // Construct data @@ -128,46 +144,4 @@ System.out.println("setFileContent(). result is:"); System.out.println(result); } - -// public static boolean copyFromTemplate(String fNameInTemplate, -// String fNameInCourse) { -// String result = ""; -// try { -// // Construct data -// String data = URLEncoder.encode("fNameInTemplate", "UTF-8") + "=" -// + URLEncoder.encode(fNameInTemplate, "UTF-8"); -// data += "&" + URLEncoder.encode("fNameInCourse", "UTF-8") + "=" -// + URLEncoder.encode(fNameInCourse, "UTF-8"); -// -// // Send data -// URL url = new URL(Settings.getInstance().getServiceLocation() -// + "copyFromTemplate.php"); -// -// URLConnection conn = url.openConnection(); -// conn.setDoOutput(true); -// -// OutputStreamWriter wr = new OutputStreamWriter(conn -// .getOutputStream()); -// -// wr.write(data); -// wr.flush(); -// -// // Get the response -// BufferedReader rd = new BufferedReader(new InputStreamReader(conn -// .getInputStream())); -// String line; -// while ((line = rd.readLine()) != null) { -// result += line + "\n"; -// } -// wr.close(); -// rd.close(); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// -// System.out.println("copyFromTemplate(). result is:"); -// System.out.println(result); -// -// return true; -// } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-09 16:45:59
|
Revision: 111 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=111&view=rev Author: sem62 Date: 2008-05-09 09:45:53 -0700 (Fri, 09 May 2008) Log Message: ----------- * Added call Initialize() if not initialized but calling set or getValue() method. * Added title to ChapterPropertyDlg. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java WebEditor/template/SummaryPageModel.html WebEditor/template/global/APIWrapper.js WebEditor/template/global/SummaryPage.js Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java 2008-05-09 13:36:27 UTC (rev 110) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java 2008-05-09 16:45:53 UTC (rev 111) @@ -49,6 +49,7 @@ private void initComponents() { setDefaultCloseOperation(HIDE_ON_CLOSE); + setTitle("Propertiests..."); generalPanel = new javax.swing.JPanel(); titleLabel = new javax.swing.JLabel(); Modified: WebEditor/template/SummaryPageModel.html =================================================================== --- WebEditor/template/SummaryPageModel.html 2008-05-09 13:36:27 UTC (rev 110) +++ WebEditor/template/SummaryPageModel.html 2008-05-09 16:45:53 UTC (rev 111) @@ -33,7 +33,7 @@ </style> </head> -<body onload="Initialize();" onunload="Terminate();"> +<body onLoad="Initialize()" onunload="Terminate()"> <div id="page_content"> <Center><h1><!--title start--> <!--title end--></Center></h1> @@ -50,6 +50,13 @@ <!--content start--> <!--content end--> + + <script type="text/javascript" > + + writeAll(); + + </script> + </table> </div> </body> Modified: WebEditor/template/global/APIWrapper.js =================================================================== --- WebEditor/template/global/APIWrapper.js 2008-05-09 13:36:27 UTC (rev 110) +++ WebEditor/template/global/APIWrapper.js 2008-05-09 16:45:53 UTC (rev 111) @@ -45,6 +45,7 @@ // local variable used to keep from calling Terminate() more than once var terminated = "false"; +var initialized = "false"; // local variable used by the content developer to debug // This should be set to true during development to find errors. However, @@ -441,18 +442,25 @@ function Terminate() { - terminateCommunication(); + if (terminated == "false"){ + terminateCommunication(); + } } function Initialize() { - initializeCommunication(); + if (initialized == "false"){ + initializeCommunication(); + initialized = "true"; + } } function SetValue(p1, p2){ + Initialize(); storeDataValue(p1, p2); } function GetValue(p1){ + Initialize(); return retrieveDataValue(p1); } Modified: WebEditor/template/global/SummaryPage.js =================================================================== --- WebEditor/template/global/SummaryPage.js 2008-05-09 13:36:27 UTC (rev 110) +++ WebEditor/template/global/SummaryPage.js 2008-05-09 16:45:53 UTC (rev 111) @@ -5,14 +5,68 @@ document.write(s); } -function ins(title, min, max, raw, completionStatus){ - var percents = 100*(raw-min)/(max-min) + " %"; +var records = new Array(1000); +var curr_record = 0; + +function ins(title, min, max, raw, completionStatus, model){ + var record = new Array(7); + record[0] = completionStatus; + record[1] = title; + record[2] = min; + record[3] = max; + record[4] = raw; + record[5] = model; + record[6] = deep; + + records[curr_record] = record; + curr_record++; +} + +function recalcChaptersScores(){ + var i; + for (i = 0; i < curr_record; i++){ + var record = records[i]; + write(record[0], record[1], record[2], record[3], record[4], record[5]); + } +} + +function writeAll(){ + var i; + for (i = 0; i < curr_record; i++){ + var record = records[i]; + write(record[0], record[1], record[2], record[3], record[4], record[5]); + } +} + +function write(completionStatus, title, min, max, raw, modelName){ rowNum++; + var percents = "0"; + if ((min != null) && (max != null) && (raw != null)){ + percents = 100 * (raw - min) / (max - min) + " %"; + } + + if (modelName == "LectureModel"){ + raw = (completionStatus == "completed") ? "read" : "unread"; + percents = "--"; + } + + if (min == null){ + min = "--"; + } + + if (max == null){ + max = "--"; + } + + if (raw == null){ + raw = "--"; + } + var td = "<td class='tbl"; td += 1 - (rowNum % 2) + 1; - td += "'>"; - + td += "'>"; + document.write("<TR>" + td + rowNum + "<img src='global/images/" + completionStatus + ".gif'>"); document.write(td + title); document.write(td + min); @@ -37,7 +91,7 @@ title = " " + title; } - ins(title, getScore(id, "min"), getScore(id, "max"), getScore(id, "raw"), getCompletionStatus(id)); + ins(title, getScore(id, "min"), getScore(id, "max"), getScore(id, "raw"), getCompletionStatus(id), modelName); } function getObjectiveIndex(id){ @@ -52,14 +106,20 @@ } function getCompletionStatus(objectiveID){ - var index = getObjectiveIndex(objectiveID); - var res = GetValue("cmi.objectives." + index + ".completionStatus"); + var index = getObjectiveIndex(objectiveID); + if (index == -1) return "incomplete"; + + var res = GetValue("cmi.objectives." + index + ".completion_status"); + return res != null ? res : "undefined"; } function getScore(objectiveID, field){ - var index = getObjectiveIndex(objectiveID); + var index = getObjectiveIndex(objectiveID); + + if (index == -1) return null; + var res = GetValue("cmi.objectives." + index + ".score." + field); return res != null ? res : 0; } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-09 13:36:41
|
Revision: 110 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=110&view=rev Author: sem62 Date: 2008-05-09 06:36:27 -0700 (Fri, 09 May 2008) Log Message: ----------- Moved chapter model codes to it's own package Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/OrganizationModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterItemData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java Removed Paths: ------------- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterItemData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java 2008-05-09 13:20:21 UTC (rev 109) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java 2008-05-09 13:36:27 UTC (rev 110) @@ -13,8 +13,8 @@ import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.Objective; import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.Objectives; import edu.lnu.FireFly.FFManifest.resource.Resources; -import edu.lnu.FireFly.WebEditor.ItemModels.ChapterItemData; import edu.lnu.FireFly.WebEditor.ItemModels.OrganizationModel; +import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterItemData; public class ManifestFactory { static public Manifest createManifest(){ Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java 2008-05-09 13:20:21 UTC (rev 109) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/Data/SummaryPageManager.java 2008-05-09 13:36:27 UTC (rev 110) @@ -12,10 +12,10 @@ import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.Objectives; import edu.lnu.FireFly.FFManifest.parser.TestDocException; import edu.lnu.FireFly.WebEditor.GUI.Reorganizer; -import edu.lnu.FireFly.WebEditor.ItemModels.ChapterModel; import edu.lnu.FireFly.WebEditor.ItemModels.ItemModel; import edu.lnu.FireFly.WebEditor.ItemModels.ItemModels; import edu.lnu.FireFly.WebEditor.ItemModels.OrganizationModel; +import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; public class SummaryPageManager { Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java 2008-05-09 13:20:21 UTC (rev 109) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java 2008-05-09 13:36:27 UTC (rev 110) @@ -25,10 +25,10 @@ import edu.lnu.FireFly.WebEditor.WebEditor; import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.RenameDlg; -import edu.lnu.FireFly.WebEditor.ItemModels.ChapterModel; import edu.lnu.FireFly.WebEditor.ItemModels.ItemModel; import edu.lnu.FireFly.WebEditor.ItemModels.ItemModels; import edu.lnu.FireFly.WebEditor.ItemModels.OrganizationModel; +import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; public class CourseTreePopupMenu extends MouseAdapter implements Copied: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterItemData.java (from rev 103, WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterItemData.java) =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterItemData.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterItemData.java 2008-05-09 13:36:27 UTC (rev 110) @@ -0,0 +1,109 @@ +package edu.lnu.FireFly.WebEditor.ItemModels.Chapter; + +import java.io.Reader; + +import org.dom4j.Document; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; + +public class ChapterItemData extends ItemData { + private boolean showSummaryPage = true; + private boolean flow; + + private boolean choice; + + private boolean forwarOnly; + private boolean choiceExit; + private int configuration = ChapterItemData.CONFIGURATION_USER_DEFINED; + + public int getConfiguration() { + return configuration; + } + + public boolean isChoice() { + return choice; + } + + public boolean isChoiceExit() { + return choiceExit; + } + + public boolean isFlow() { + return flow; + } + + public boolean isForwarOnly() { + return forwarOnly; + } + + public boolean isShowSummaryPage() { + return showSummaryPage; + } + + public void setChoice(boolean choice) { + this.choice = choice; + } + + public void setChoiceExit(boolean choiceExit) { + this.choiceExit = choiceExit; + } + + public void setConfiguration(int configuration) { + this.configuration = configuration; + } + + public void setFlow(boolean flow) { + this.flow = flow; + } + + public void setForwarOnly(boolean forwarOnly) { + this.forwarOnly = forwarOnly; + } + + public void setShowSummaryPage(boolean showSummaryPage) { + this.showSummaryPage = showSummaryPage; + } + + public boolean unmarshal (Reader aXmlInputStream, TreeItem anItem){ + SAXReader reader = new SAXReader(); + + Document doc = null; + Element root = null; + try { + doc = reader.read(aXmlInputStream); + + root = doc.getRootElement(); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + try { + boolean showSP = Boolean.valueOf(root + .elementTextTrim("ShowSummaryPage")); + setShowSummaryPage(showSP); + + boolean showOnSP = Boolean.valueOf(root + .elementTextTrim("ShowOnSummaryPage")); + setShowOnSummaryPage(showOnSP); + + int configuration = Integer.valueOf(root + .elementTextTrim("Configuration")); + setConfiguration(configuration); + + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + + return true; + } + + public static final int CONFIGURATION_USER_DEFINED = 0; + public static final int CONFIGURATION_LECTURE = 1; + public static final int CONFIGURATION_EXAMINATION = 2; +} Copied: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java (from rev 106, WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.java) =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-09 13:36:27 UTC (rev 110) @@ -0,0 +1,171 @@ +package edu.lnu.FireFly.WebEditor.ItemModels.Chapter; + +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; + +import edu.lnu.FireFly.FFManifest.Organization; +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; +import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; +import edu.lnu.FireFly.WebEditor.GUI.Dialogs.ChapterPropertiestsDlg; +import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; +import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; +import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; + +public class ChapterModel extends ResourcedItemModel { + @Override + protected String getDefaultTitle() { + return "New chapter"; + } + + @Override + public boolean getLimitConditionsMenuVisible() { + return false; + } + + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return true; + } + + @Override + public boolean getShowSummaryPageMenuVisible() { + return true; + } + + public ChapterModel() { + super(); + modelName = "ChapterModel"; + isContainerItem = true; + } + + @Override + public boolean canAddToItem(TreeItem parent) { + // TODO Auto-generated method stub + return true; + } + + @Override + public boolean canConvertItem(TreeItem parent) { + // TODO Auto-generated method stub + return false; + } + + @Override + public void ConfigureItem(TreeItem item) { + new ChapterPropertiestsDlg().showDialog(item); + + TreeDataModel.getInstance().treeNodesChanged(item); + } + + public boolean getShowSummaryPage(TreeItem anItem) { + ChapterItemData itemData = getData(anItem); + + if (itemData == null) { + System.out + .println("Warning: ItemData is null at ItemModel.getShowOnSummaryPage()"); + + return false; + } + + return itemData.isShowSummaryPage(); + } + + @Override + public boolean isApplaingForItem(TreeItem treeItem) { + if (treeItem.getClass() != Item.class) { + return false; + } + + Item item = (Item) treeItem; + if (item.parameters != null + && item.parameters.contains("pageType=Chapter")) { + return true; + } + + return false; + } + + @Override + public boolean isRemovable() { + return true; + } + + @Override + public void remove(TreeItem item) { + if (item.getChildCount() > 0) { + System.out + .print("This chapter contain items. Please, remove all childs and try again.\n"); + return; + } + + TreeDataModel.getInstance().treeNodesDeleted(item); + item.getParent().removeChild(item); + } + + @Override + public void rename(TreeItem item, String newTitle) { + ((Item) item).title = newTitle; + + TreeDataModel.getInstance().treeNodesChanged(item); + } + + public void setShowSummaryPage(TreeItem anItem, boolean state) { + ChapterItemData itemData = getData(anItem); + + if (itemData == null) { + ItemData data = new ChapterItemData(); + setItemData(anItem, data); + itemData = (ChapterItemData) getItemData(anItem); + } + + if (itemData.isShowSummaryPage() != state) { + itemData.setShowSummaryPage(state); + updateItemResource(anItem, true); + } + } + + private ChapterItemData getData(TreeItem anItem) { + return (ChapterItemData) getItemData(anItem); + } + + @Override + public boolean updateItemResource(TreeItem anItem, + boolean updateSummaryPages) { + ChapterItemData itemData = getData(anItem); + + Document doc = DocumentHelper.createDocument(); + Element root = doc.addElement(modelName); + root.addElement("ShowSummaryPage").setText( + String.valueOf(itemData.isShowSummaryPage())); + + root.addElement("ShowOnSummaryPage").setText( + String.valueOf(itemData.getShowOnSummaryPage())); + + root.addElement("Configuration").setText( + String.valueOf(itemData.getConfiguration())); + + String identifier = "unknown"; + if (anItem.getClass() == Organization.class) { + identifier = ((Organization) anItem).identifier; + } else { + identifier = ((Item) anItem).identifier; + } + + WebEditorServiceClient.getInstance().setFileContent( + identifier + ".conf", doc.asXML()); + + if (updateSummaryPages) { + SummaryPageManager.getInstance().updateSummaryPages(); + } + + return true; + } + + @Override + protected ItemData createItemDataInstance() { + return new ChapterItemData(); + } +} \ No newline at end of file Deleted: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterItemData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterItemData.java 2008-05-09 13:20:21 UTC (rev 109) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterItemData.java 2008-05-09 13:36:27 UTC (rev 110) @@ -1,108 +0,0 @@ -package edu.lnu.FireFly.WebEditor.ItemModels; - -import java.io.Reader; - -import org.dom4j.Document; -import org.dom4j.Element; -import org.dom4j.io.SAXReader; - -import edu.lnu.FireFly.FFManifest.TreeItem; - -public class ChapterItemData extends ItemData { - private boolean showSummaryPage = true; - private boolean flow; - - private boolean choice; - - private boolean forwarOnly; - private boolean choiceExit; - private int configuration = ChapterItemData.CONFIGURATION_USER_DEFINED; - - public int getConfiguration() { - return configuration; - } - - public boolean isChoice() { - return choice; - } - - public boolean isChoiceExit() { - return choiceExit; - } - - public boolean isFlow() { - return flow; - } - - public boolean isForwarOnly() { - return forwarOnly; - } - - public boolean isShowSummaryPage() { - return showSummaryPage; - } - - public void setChoice(boolean choice) { - this.choice = choice; - } - - public void setChoiceExit(boolean choiceExit) { - this.choiceExit = choiceExit; - } - - public void setConfiguration(int configuration) { - this.configuration = configuration; - } - - public void setFlow(boolean flow) { - this.flow = flow; - } - - public void setForwarOnly(boolean forwarOnly) { - this.forwarOnly = forwarOnly; - } - - public void setShowSummaryPage(boolean showSummaryPage) { - this.showSummaryPage = showSummaryPage; - } - - public boolean unmarshal (Reader aXmlInputStream, TreeItem anItem){ - SAXReader reader = new SAXReader(); - - Document doc = null; - Element root = null; - try { - doc = reader.read(aXmlInputStream); - - root = doc.getRootElement(); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - - try { - boolean showSP = Boolean.valueOf(root - .elementTextTrim("ShowSummaryPage")); - setShowSummaryPage(showSP); - - boolean showOnSP = Boolean.valueOf(root - .elementTextTrim("ShowOnSummaryPage")); - setShowOnSummaryPage(showOnSP); - - int configuration = Integer.valueOf(root - .elementTextTrim("Configuration")); - setConfiguration(configuration); - - } catch (Exception e) { - e.printStackTrace(); - return false; - } - - - return true; - } - - public static final int CONFIGURATION_USER_DEFINED = 0; - public static final int CONFIGURATION_LECTURE = 1; - public static final int CONFIGURATION_EXAMINATION = 2; -} Deleted: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.java 2008-05-09 13:20:21 UTC (rev 109) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.java 2008-05-09 13:36:27 UTC (rev 110) @@ -1,169 +0,0 @@ -package edu.lnu.FireFly.WebEditor.ItemModels; - -import org.dom4j.Document; -import org.dom4j.DocumentHelper; -import org.dom4j.Element; - -import edu.lnu.FireFly.FFManifest.Organization; -import edu.lnu.FireFly.FFManifest.TreeItem; -import edu.lnu.FireFly.FFManifest.item.Item; -import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; -import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; -import edu.lnu.FireFly.WebEditor.GUI.Dialogs.ChapterPropertiestsDlg; -import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; - -public class ChapterModel extends ResourcedItemModel { - @Override - protected String getDefaultTitle() { - return "New chapter"; - } - - @Override - public boolean getLimitConditionsMenuVisible() { - return false; - } - - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return true; - } - - @Override - public boolean getShowSummaryPageMenuVisible() { - return true; - } - - public ChapterModel() { - super(); - modelName = "ChapterModel"; - isContainerItem = true; - } - - @Override - public boolean canAddToItem(TreeItem parent) { - // TODO Auto-generated method stub - return true; - } - - @Override - public boolean canConvertItem(TreeItem parent) { - // TODO Auto-generated method stub - return false; - } - - @Override - public void ConfigureItem(TreeItem item) { - new ChapterPropertiestsDlg().showDialog(item); - - TreeDataModel.getInstance().treeNodesChanged(item); - } - - public boolean getShowSummaryPage(TreeItem anItem) { - ChapterItemData itemData = getData(anItem); - - if (itemData == null) { - System.out - .println("Warning: ItemData is null at ItemModel.getShowOnSummaryPage()"); - - return false; - } - - return itemData.isShowSummaryPage(); - } - - @Override - public boolean isApplaingForItem(TreeItem treeItem) { - if (treeItem.getClass() != Item.class) { - return false; - } - - Item item = (Item) treeItem; - if (item.parameters != null - && item.parameters.contains("pageType=Chapter")) { - return true; - } - - return false; - } - - @Override - public boolean isRemovable() { - return true; - } - - @Override - public void remove(TreeItem item) { - if (item.getChildCount() > 0) { - System.out - .print("This chapter contain items. Please, remove all childs and try again.\n"); - return; - } - - TreeDataModel.getInstance().treeNodesDeleted(item); - item.getParent().removeChild(item); - } - - @Override - public void rename(TreeItem item, String newTitle) { - ((Item) item).title = newTitle; - - TreeDataModel.getInstance().treeNodesChanged(item); - } - - public void setShowSummaryPage(TreeItem anItem, boolean state) { - ChapterItemData itemData = getData(anItem); - - if (itemData == null) { - ItemData data = new ChapterItemData(); - setItemData(anItem, data); - itemData = (ChapterItemData) getItemData(anItem); - } - - if (itemData.isShowSummaryPage() != state) { - itemData.setShowSummaryPage(state); - updateItemResource(anItem, true); - } - } - - private ChapterItemData getData(TreeItem anItem) { - return (ChapterItemData) getItemData(anItem); - } - - @Override - public boolean updateItemResource(TreeItem anItem, - boolean updateSummaryPages) { - ChapterItemData itemData = getData(anItem); - - Document doc = DocumentHelper.createDocument(); - Element root = doc.addElement(modelName); - root.addElement("ShowSummaryPage").setText( - String.valueOf(itemData.isShowSummaryPage())); - - root.addElement("ShowOnSummaryPage").setText( - String.valueOf(itemData.getShowOnSummaryPage())); - - root.addElement("Configuration").setText( - String.valueOf(itemData.getConfiguration())); - - String identifier = "unknown"; - if (anItem.getClass() == Organization.class) { - identifier = ((Organization) anItem).identifier; - } else { - identifier = ((Item) anItem).identifier; - } - - WebEditorServiceClient.getInstance().setFileContent( - identifier + ".conf", doc.asXML()); - - if (updateSummaryPages) { - SummaryPageManager.getInstance().updateSummaryPages(); - } - - return true; - } - - @Override - protected ItemData createItemDataInstance() { - return new ChapterItemData(); - } -} \ No newline at end of file Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java 2008-05-09 13:20:21 UTC (rev 109) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java 2008-05-09 13:36:27 UTC (rev 110) @@ -4,6 +4,7 @@ import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; public class ItemModels { protected static ArrayList<ItemModel> registeredModels = new ArrayList<ItemModel>(); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/OrganizationModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/OrganizationModel.java 2008-05-09 13:20:21 UTC (rev 109) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/OrganizationModel.java 2008-05-09 13:36:27 UTC (rev 110) @@ -3,6 +3,7 @@ import edu.lnu.FireFly.FFManifest.Organization; import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; +import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; public class OrganizationModel extends ChapterModel{ Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-09 13:20:21 UTC (rev 109) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-09 13:36:27 UTC (rev 110) @@ -7,13 +7,13 @@ import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.WebEditor; -import edu.lnu.FireFly.WebEditor.ItemModels.ChapterModel; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ItemModel; import edu.lnu.FireFly.WebEditor.ItemModels.ItemModels; 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.Chapter.ChapterModel; import edu.lnu.FireFly.WebEditor.ItemModels.Lecture.LectureModel; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-09 13:20:21 UTC (rev 109) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-09 13:36:27 UTC (rev 110) @@ -22,9 +22,9 @@ import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; import edu.lnu.FireFly.WebEditor.GUI.CourseTreePopupMenu; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; -import edu.lnu.FireFly.WebEditor.ItemModels.ChapterModel; import edu.lnu.FireFly.WebEditor.ItemModels.ItemModels; import edu.lnu.FireFly.WebEditor.ItemModels.OrganizationModel; +import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; import edu.lnu.FireFly.WebEditor.ItemModels.Lecture.LectureModel; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-09 13:20:38
|
Revision: 109 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=109&view=rev Author: sem62 Date: 2008-05-09 06:20:21 -0700 (Fri, 09 May 2008) Log Message: ----------- added confirm dialog to body onUnload event. Modified Paths: -------------- WebEditor/resources/HTMLedit.php WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithWYSIWYGEditor.java Modified: WebEditor/resources/HTMLedit.php =================================================================== --- WebEditor/resources/HTMLedit.php 2008-05-08 21:09:50 UTC (rev 108) +++ WebEditor/resources/HTMLedit.php 2008-05-09 13:20:21 UTC (rev 109) @@ -8,10 +8,19 @@ close(); return false; } + + function closing(){ + if (confirm('Course not saved. Do you want to save it now?') == true){ + save(); + } else { + opener.document.webeditor.cancelHtmlEditing(); + } + } </script> </head> -<body> + +<body onUnload="closing();"> <form name='editFrm' onSubmit='javascript:save();'> <? include("spaw2/spaw.inc.php"); @@ -26,7 +35,6 @@ var s = opener.document.webeditor.getEditedHTML(); document.getElementById("spaw_edit_field").value = s; - alert(s, false); </script> </body> Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithWYSIWYGEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithWYSIWYGEditor.java 2008-05-08 21:09:50 UTC (rev 108) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithWYSIWYGEditor.java 2008-05-09 13:20:21 UTC (rev 109) @@ -15,20 +15,36 @@ Object[] params = new String[1]; params[0] = captionTextField2.getText(); - dlg.setModal(false); +// dlg.setModal(false); htmlEditing = true; textField = captionTextField2; editingDlg = dlg; - editingDlg.setEnabled(false); + lockPropertyDlg(); win.call("showEditor", params); + +// dlg.setModal(true); } public String getEditedHTML(){ return textField.getText(); } + public void cancelHtmlEditing(){ + unlockPropertyDlg(); + + textField = null; + editingDlg = null; + htmlEditing = false; + + System.out.println("Canceled html editing"); + } + + private void unlockPropertyDlg() { + editingDlg.setEnabled(true); + } + public void setEditedHTML(String newHTML){ if (!htmlEditing){ return; @@ -36,9 +52,13 @@ textField.setText(newHTML); htmlEditing = false; - editingDlg.setEnabled(true); + unlockPropertyDlg(); } + private void lockPropertyDlg() { + editingDlg.setEnabled(false); + } + /** * */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-08 21:31:36
|
Revision: 106 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=106&view=rev Author: sem62 Date: 2008-05-08 13:11:53 -0700 (Thu, 08 May 2008) Log Message: ----------- Fixed bugs at LecturePropertyDlg. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.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/ResourcedItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java 2008-05-08 19:14:26 UTC (rev 105) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java 2008-05-08 20:11:53 UTC (rev 106) @@ -24,6 +24,7 @@ captionTextField.setText(titleTextField.getText()); } captionTextField.setEnabled(!sameAsTitleCheckbox.isSelected()); + editContentInHtmlBtn.setEnabled(captionTextField.isEnabled()); } } @@ -48,7 +49,7 @@ /** Creates new form NewJFrame */ public LecturePropertiestsDlg() { obj = this; - + initComponents(); } @@ -62,6 +63,7 @@ } private void initComponents() { + setTitle("Propertiests..."); titlePanel = new javax.swing.JPanel(); titleLabel = new javax.swing.JLabel(); titleTextField = new javax.swing.JTextField(); @@ -130,7 +132,7 @@ captionTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 361, Short.MAX_VALUE).addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(editContentInHtmlBtn))); + .addComponent(editContentInHtmlBtn, 30, 30, 30))); jPanel2Layout .setVerticalGroup(jPanel2Layout .createParallelGroup( @@ -149,7 +151,8 @@ .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) .addComponent( - editContentInHtmlBtn) + editContentInHtmlBtn, + 20, 20, 20) .addComponent( captionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, @@ -285,11 +288,17 @@ LecturePropertiestsDlg dlg = (LecturePropertiestsDlg) obj; LectureModel model = new LectureModel(); - dlg.titleTextField.setText(manifestItem.getTitle()); + String title = manifestItem.getTitle(); + String caption = ((LectureData) model + .getItemData(manifestItem)).getCaption(); + + dlg.sameAsTitleCheckbox.setSelected(title.equals(caption)); + + dlg.titleTextField.setText(title); dlg.titleTextField.selectAll(); - dlg.captionTextField.setText(((LectureData) model - .getItemData(manifestItem)).getCaption()); + dlg.captionTextField.setText(caption); + dlg.contentEditorPane.setText(((LectureData) model .getItemData(manifestItem)).getContent()); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java 2008-05-08 19:14:26 UTC (rev 105) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java 2008-05-08 20:11:53 UTC (rev 106) @@ -7,7 +7,6 @@ import javax.swing.JTextField; import edu.lnu.FireFly.FFManifest.TreeItem; -import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.WebEditor.WebEditor; public abstract class PropertyDlg extends JDialog implements ActionListener{ @@ -44,7 +43,7 @@ protected javax.swing.JButton okButton; public void showDialog(TreeItem item) { - manifestItem = (Item) item; + manifestItem = item; obj.fillFields(); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.java 2008-05-08 19:14:26 UTC (rev 105) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.java 2008-05-08 20:11:53 UTC (rev 106) @@ -14,6 +14,11 @@ public class ChapterModel extends ResourcedItemModel { @Override + protected String getDefaultTitle() { + return "New chapter"; + } + + @Override public boolean getLimitConditionsMenuVisible() { return false; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-08 19:14:26 UTC (rev 105) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-08 20:11:53 UTC (rev 106) @@ -19,6 +19,8 @@ protected String modelName = "Abstract model"; + protected abstract String getDefaultTitle(); + public void setItemData(TreeItem anItem, ItemData data) { questionsData.put(anItem, data); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-08 19:14:26 UTC (rev 105) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-08 20:11:53 UTC (rev 106) @@ -18,6 +18,11 @@ public class LectureModel extends ResourcedItemModel { @Override + protected String getDefaultTitle() { + return "New lecture"; + } + + @Override public boolean getShowSummaryPageMenuVisible() { return false; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-08 19:14:26 UTC (rev 105) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-08 20:11:53 UTC (rev 106) @@ -23,7 +23,7 @@ item.identifier = this.getClass().getSimpleName() + "_Item_" + UUID.randomUUID().toString(); - item.title = "New " + modelName; + item.title = getDefaultTitle(); item.parameters = "pageType=" + modelName; item.identifierref = createNewResource(); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-08 19:14:26 UTC (rev 105) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-08 20:11:53 UTC (rev 106) @@ -20,6 +20,11 @@ public class SimpleQuestionModel extends ResourcedItemModel { @Override + protected String getDefaultTitle() { + return "New simple question"; + } + + @Override public boolean getLimitConditionsMenuVisible() { return true; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-08 19:14:26 UTC (rev 105) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-08 20:11:53 UTC (rev 106) @@ -20,6 +20,11 @@ public class SummaryPageModel extends ResourcedItemModel { @Override + protected String getDefaultTitle() { + return "New summary page"; + } + + @Override public boolean getLimitConditionsMenuVisible() { return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-08 21:10:15
|
Revision: 108 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=108&view=rev Author: sem62 Date: 2008-05-08 14:09:50 -0700 (Thu, 08 May 2008) Log Message: ----------- deleted unused files Removed Paths: ------------- WebEditor/resources/attemptCountLimit.html WebEditor/resources/chooseMsg.html WebEditor/resources/terminateSCO.html Deleted: WebEditor/resources/attemptCountLimit.html =================================================================== --- WebEditor/resources/attemptCountLimit.html 2008-05-08 20:56:59 UTC (rev 107) +++ WebEditor/resources/attemptCountLimit.html 2008-05-08 21:09:50 UTC (rev 108) @@ -1,9 +0,0 @@ -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - <link rel='stylesheet' href='main.css' type='text/css'> -</head> -<body> -Кількість спроб обмежена і Ви уже їх використали. -</body> -</html> Deleted: WebEditor/resources/chooseMsg.html =================================================================== --- WebEditor/resources/chooseMsg.html 2008-05-08 20:56:59 UTC (rev 107) +++ WebEditor/resources/chooseMsg.html 2008-05-08 21:09:50 UTC (rev 108) @@ -1,9 +0,0 @@ -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - <link rel='stylesheet' href='main.css' type='text/css'> -</head> -<body> -Виберіть один із підпунктів в дереві ліворуч. -</body> -</html> \ No newline at end of file Deleted: WebEditor/resources/terminateSCO.html =================================================================== --- WebEditor/resources/terminateSCO.html 2008-05-08 20:56:59 UTC (rev 107) +++ WebEditor/resources/terminateSCO.html 2008-05-08 21:09:50 UTC (rev 108) @@ -1,14 +0,0 @@ -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - <link rel='stylesheet' href='main.css' type='text/css'> -</head> -<body onload="javascript:run();"> -<script language="JScript"> - function run(){ - window.parent.document.player.showCurrentItem(); - } -</script> - -</body> -</html> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |