|
From: <se...@us...> - 2008-05-29 09:30:24
|
Revision: 178
http://acmcontester.svn.sourceforge.net/acmcontester/?rev=178&view=rev
Author: sem62
Date: 2008-05-29 02:30:08 -0700 (Thu, 29 May 2008)
Log Message:
-----------
* Added ItemConfigurationManager that must manage all item configurations.
* Saving all item configurations in one file at saving course. It's some optimization.
Modified Paths:
--------------
WebEditor/src/deploy.jardesc
WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.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/CompileQ/CompileQData.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/ItemModels.java
WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureData.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/SummaryPageModel/SummaryPageData.java
WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java
WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java
Added Paths:
-----------
WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemDataFactory.java
WebEditor/src/edu/lnu/FireFly/WebEditor/itemConfiguration/
WebEditor/src/edu/lnu/FireFly/WebEditor/itemConfiguration/ItemConfigurationManager.java
Property Changed:
----------------
WebEditor/
Property changes on: WebEditor
___________________________________________________________________
Name: svn:ignore
- *.classpath
*.project
.settings
+
Modified: WebEditor/src/deploy.jardesc
===================================================================
--- WebEditor/src/deploy.jardesc 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/deploy.jardesc 2008-05-29 09:30:08 UTC (rev 178)
@@ -11,9 +11,6 @@
</sealing>
</manifest>
<selectedElements exportClassFiles="true" exportJavaFiles="true" exportOutputFolder="false">
- <file path="/webEditor/.classpath"/>
<javaElement handleIdentifier="=webEditor/src"/>
- <file path="/webEditor/webEditor.eap"/>
- <file path="/webEditor/.project"/>
</selectedElements>
</jardesc>
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -15,6 +15,7 @@
import edu.lnu.FireFly.FFManifest.resource.Resources;
import edu.lnu.FireFly.WebEditor.ItemModels.OrganizationModel;
import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterItemData;
+import edu.lnu.FireFly.WebEditor.itemConfiguration.ItemConfigurationManager;
public class ManifestFactory {
static public Manifest createManifest() {
@@ -33,8 +34,9 @@
e.printStackTrace();
return null;
}
-
- model.setItemData(root, new ChapterItemData());
+
+ ItemConfigurationManager.getInstance().clear();
+ ItemConfigurationManager.getInstance().update(root, new ChapterItemData());
model.updateItemResource(root, false);
return manifest;
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterItemData.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterItemData.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterItemData.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -1,22 +1,17 @@
package edu.lnu.FireFly.WebEditor.ItemModels.Chapter;
-import java.io.Reader;
-
-import org.dom4j.Document;
import org.dom4j.DocumentHelper;
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;
@Override
- public String marshal(TreeItem anItem) {
- Document doc = DocumentHelper.createDocument();
- Element root = doc.addElement("ChapterItemData");
+ public Element marshal() {
+ Element root = DocumentHelper.createElement("ItemData");
+
root.addElement("ShowSummaryPage").setText(
String.valueOf(isShowSummaryPage()));
@@ -26,7 +21,7 @@
root.addElement("Configuration").setText(
String.valueOf(getConfiguration()));
- return doc.asXML();
+ return root;
}
private boolean flow;
@@ -86,23 +81,9 @@
}
@Override
- public boolean unmarshal(Reader aXmlInputStream, TreeItem anItem) {
- SAXReader reader = new SAXReader();
-
- Document doc = null;
- Element root = null;
+ public boolean unmarshal(Element root) {
try {
- doc = reader.read(aXmlInputStream);
-
- root = doc.getRootElement();
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
-
- try {
- boolean showSP = Boolean.valueOf(root
- .elementTextTrim("ShowSummaryPage"));
+ boolean showSP = Boolean.valueOf(root.elementTextTrim("ShowSummaryPage"));
setShowSummaryPage(showSP);
boolean showOnSP = Boolean.valueOf(root
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -164,12 +164,6 @@
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);
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -1,21 +1,16 @@
package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ;
-import java.io.Reader;
import java.util.Iterator;
-import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
-import org.dom4j.io.SAXReader;
-import edu.lnu.FireFly.FFManifest.TreeItem;
import edu.lnu.FireFly.WebEditor.ItemModels.ItemData;
public class CompileQData extends ItemData {
@Override
- public String marshal(TreeItem anItem) {
- Document doc = DocumentHelper.createDocument();
- Element root = doc.addElement("CompileQuestion");
+ public Element marshal() {
+ Element root = DocumentHelper.createElement("ItemData");
root.addElement("caption").setText(getCaption());
root.addElement("ShowOnSummaryPage").setText(
@@ -41,7 +36,7 @@
partElement.setText(part.getAnswerText());
}
- return doc.asXML();
+ return root;
}
private String caption = "";
@@ -59,14 +54,8 @@
@Override
@SuppressWarnings("unchecked")
- public boolean unmarshal(Reader res, TreeItem anItem) {
- SAXReader reader = new SAXReader();
-
- Document doc = null;
+ public boolean unmarshal(Element root) {
try {
- doc = reader.read(res);
-
- Element root = doc.getRootElement();
Element answers = root.element("parts");
setCaption(root.elementTextTrim("caption"));
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemData.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemData.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemData.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -1,9 +1,7 @@
package edu.lnu.FireFly.WebEditor.ItemModels;
-import java.io.Reader;
+import org.dom4j.Element;
-import edu.lnu.FireFly.FFManifest.TreeItem;
-
public abstract class ItemData {
private Boolean showOnSummaryPage = false;
@@ -15,7 +13,7 @@
this.showOnSummaryPage = showOnSummaryPage;
}
- public abstract boolean unmarshal(Reader res, TreeItem anItem);
+ public abstract boolean unmarshal(Element root);
- public abstract String marshal(TreeItem anItem);
+ public abstract Element marshal();
}
Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemDataFactory.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemDataFactory.java (rev 0)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemDataFactory.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -0,0 +1,45 @@
+package edu.lnu.FireFly.WebEditor.ItemModels;
+
+import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterItemData;
+import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.CompileQData;
+import edu.lnu.FireFly.WebEditor.ItemModels.Lecture.LectureData;
+import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionData;
+import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageData;
+
+public class ItemDataFactory {
+ private static ItemDataFactory obj = null;
+
+ private ItemDataFactory(){}
+
+ public static ItemDataFactory getInstance(){
+ if (obj == null){
+ obj = new ItemDataFactory();
+ }
+
+ return obj;
+ }
+
+ public ItemData createItemData(String type){
+ if (LectureData.class.getSimpleName().equalsIgnoreCase(type)){
+ return new LectureData();
+ }
+
+ if (ChapterItemData.class.getSimpleName().equalsIgnoreCase(type)){
+ return new ChapterItemData();
+ }
+
+ if (SimpleQuestionData.class.getSimpleName().equalsIgnoreCase(type)){
+ return new SimpleQuestionData();
+ }
+
+ if (SummaryPageData.class.getSimpleName().equalsIgnoreCase(type)){
+ return new SummaryPageData();
+ }
+
+ if (CompileQData.class.getSimpleName().equalsIgnoreCase(type)){
+ return new CompileQData();
+ }
+
+ return null;
+ }
+}
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -4,7 +4,6 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
-import java.util.HashMap;
import java.util.UUID;
import edu.lnu.FireFly.FFManifest.Organization;
@@ -23,18 +22,13 @@
import edu.lnu.FireFly.WebEditor.GUI.Dialogs.PropertyDlg;
import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel;
import edu.lnu.FireFly.WebEditor.UserAnswerStatus.UserAnswerStatus;
+import edu.lnu.FireFly.WebEditor.itemConfiguration.ItemConfigurationManager;
public abstract class ItemModel {
- protected static HashMap<TreeItem, ItemData> questionsData = new HashMap<TreeItem, ItemData>();
-
protected String modelName = "Abstract model";
protected abstract String getDefaultTitle();
- public void setItemData(TreeItem anItem, ItemData data) {
- questionsData.put(anItem, data);
- }
-
protected boolean isContainerItem = false;
private PropertyDlg propertyDlg = null;
@@ -119,11 +113,7 @@
}
public ItemData getItemData(TreeItem anItem) {
- if (questionsData.containsKey(anItem)) {
- return questionsData.get(anItem);
- }
-
- return null;
+ return ItemConfigurationManager.getInstance().get(anItem);
}
public final String getModelName() {
@@ -180,12 +170,8 @@
TreeDataModel.getInstance().treeNodesChanged(item);
}
- public abstract boolean synchronizeItemWithResource(TreeItem anItem,
- String location);
+ public abstract boolean updateItemResource(TreeItem item, boolean updateSummaryPages);
- public abstract boolean updateItemResource(TreeItem item,
- boolean updateSummaryPages);
-
public abstract boolean getLimitConditionsMenuVisible(TreeItem anItem);
public abstract boolean getShowOnSummaryPageMenuVisible();
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -2,7 +2,6 @@
import java.util.ArrayList;
-import edu.lnu.FireFly.FFManifest.Organization;
import edu.lnu.FireFly.FFManifest.TreeItem;
import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel;
import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.CompileQModel;
@@ -52,30 +51,6 @@
return getUnknownModel();
}
- 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++) {
- synchronizeItemDatas(root.getChild(i), true);
- }
- }
-
- private static void synchronizeItemDatas(TreeItem item, boolean recursivly) {
- ItemModel model = ItemModels.getModelFromItem(item);
-
- model.synchronizeItemWithResource(item, "course");
-
- if ((model.getClass() == ChapterModel.class || model.getClass() == OrganizationModel.class)
- && recursivly) {
- synchronizeAllItemDatas(item);
- }
- }
-
public static void clear() {
registeredModels.clear();
}
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureData.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureData.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureData.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -1,13 +1,8 @@
package edu.lnu.FireFly.WebEditor.ItemModels.Lecture;
-import java.io.Reader;
-
-import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
-import org.dom4j.io.SAXReader;
-import edu.lnu.FireFly.FFManifest.TreeItem;
import edu.lnu.FireFly.WebEditor.ItemModels.ItemData;
public class LectureData extends ItemData {
@@ -31,19 +26,7 @@
}
@Override
- public boolean unmarshal(Reader stringReader, TreeItem anItem) {
- SAXReader reader = new SAXReader();
-
- Document doc = null;
- try {
- doc = reader.read(stringReader);
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
-
- Element root = doc.getRootElement();
-
+ public boolean unmarshal(Element root) {
setCaption(root.elementTextTrim("caption"));
setContent(root.elementTextTrim("content"));
@@ -56,15 +39,14 @@
}
@Override
- public String marshal(TreeItem anItem) {
- Document doc = DocumentHelper.createDocument();
- Element root = doc.addElement("LectureData");
+ public Element marshal() {
+ Element root = DocumentHelper.createElement("ItemData");
root.addElement("caption").setText(getCaption());
root.addElement("content").setText(getContent());
root.addElement("ShowOnSummaryPage").setText(
String.valueOf(getShowOnSummaryPage()));
- return doc.asXML();
+ return root;
}
}
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -1,6 +1,5 @@
package edu.lnu.FireFly.WebEditor.ItemModels;
-import java.io.StringReader;
import java.util.UUID;
import edu.lnu.FireFly.FFManifest.Manifest;
@@ -12,6 +11,7 @@
import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager;
import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel;
import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient;
+import edu.lnu.FireFly.WebEditor.itemConfiguration.ItemConfigurationManager;
public abstract class ResourcedItemModel extends ItemModel {
@@ -46,7 +46,7 @@
ConfigureItem(item);
}
- protected final String loadResource(String location, TreeItem anItem) {
+ protected final String getConfFileContent(String location, TreeItem anItem) {
String res = "";
if (location.equalsIgnoreCase("course")) {
@@ -125,27 +125,6 @@
return !isSubTreeUsingResource(root, getIdentifier(anItem), anItem);
}
- @Override
- public final boolean synchronizeItemWithResource(TreeItem anItem,
- String location) {
- String res = loadResource(location, anItem);
-
- ItemData itemData = getItemData(anItem);
-
- if (itemData == null) {
- itemData = createItemDataInstance();
- setItemData(anItem, itemData);
- }
-
- if (res == null || res.trim().equals("")) {
- return false;
- }
-
- itemData.unmarshal(new StringReader(res), anItem);
-
- return true;
- }
-
protected String getConfFileName(TreeItem anItem) {
Resource resource = WebEditor.instance.getManifest().resources
.findResourceByIdentifier(getIdentifierRef(anItem));
@@ -157,11 +136,11 @@
protected final void initializeDataForItem(Item anItem) {
ItemData itemData = createItemDataInstance();
- String res = loadResource("template", anItem);
+ //String res = getConfFileContent("template", anItem);
- itemData.unmarshal(new StringReader(res), anItem);
+ //itemData.unmarshal(new StringReader(res), anItem);
- setItemData(anItem, itemData);
+ ItemConfigurationManager.getInstance().update(anItem, itemData);
}
protected abstract void updateResourceFile(TreeItem anItem);
@@ -171,11 +150,7 @@
boolean updateSummaryPages) {
updateResourceFile(anItem);
- ItemData itemData = getItemData(anItem);
- WebEditorServiceClient.getInstance().setFileContent(
- getConfFileName(anItem), itemData.marshal(anItem));
-
if (updateSummaryPages) {
SummaryPageManager.getInstance().updateSummaryPages();
}
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -1,21 +1,16 @@
package edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion;
-import java.io.Reader;
import java.util.Iterator;
-import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
-import org.dom4j.io.SAXReader;
-import edu.lnu.FireFly.FFManifest.TreeItem;
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");
+ public Element marshal() {
+ Element root = DocumentHelper.createElement("ItemData");
root.addElement("caption").setText(getCaption());
root.addElement("question").setText(getQuestion());
@@ -38,7 +33,7 @@
ansEl.setText(answer.getAnswerText());
}
- return doc.asXML();
+ return root;
}
private SimpleQuestionAnswersDataModel answers = new SimpleQuestionAnswersDataModel();
@@ -71,14 +66,8 @@
@Override
@SuppressWarnings("unchecked")
- public boolean unmarshal(Reader res, TreeItem anItem) {
- SAXReader reader = new SAXReader();
-
- Document doc = null;
+ public boolean unmarshal(Element root) {
try {
- doc = reader.read(res);
-
- Element root = doc.getRootElement();
Element answers = root.element("answers");
setCaption(root.elementTextTrim("caption"));
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageData.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageData.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageData.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -1,25 +1,21 @@
package edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel;
-import java.io.Reader;
-
-import org.dom4j.Document;
import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
-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());
+ public Element marshal() {
+ Element root = DocumentHelper.createElement("ItemData");
- return doc.asXML();
+ return root;
}
@Override
- public boolean unmarshal(Reader res, TreeItem anItem) {
+ public boolean unmarshal(Element root) {
// TODO Auto-generated method stub
return true;
}
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -81,10 +81,10 @@
TreeDataModel.getInstance().treeNodesDeleted(anItem);
}
- @Override
- public boolean synchronizeItemWithResource(TreeItem anItem, String location) {
- return false;
- }
+// @Override
+// public boolean synchronizeItemWithResource(TreeItem anItem, String location) {
+// return false;
+// }
@Override
public boolean updateItemResource(TreeItem item, boolean updateSummaryPages) {
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-28 10:29:19 UTC (rev 177)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -17,9 +17,8 @@
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.ItemModels;
-import edu.lnu.FireFly.WebEditor.ItemModels.OrganizationModel;
import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient;
+import edu.lnu.FireFly.WebEditor.itemConfiguration.ItemConfigurationManager;
public class WebEditor extends AppletWithWYSIWYGEditor implements
MainMenuListenet {
@@ -47,6 +46,8 @@
WebEditorServiceClient.getInstance().setFileContent("imsmanifest.xml",
parser.toXML(manifest));
+
+ ItemConfigurationManager.getInstance().save();
}
@Override
@@ -59,7 +60,7 @@
.getFileContent("imsmanifest.xml", "course"));
TreeDataModel.initInstance(manifest);
- ItemModels.synchronizeAllItemDatas(manifest.getRoot());
+ ItemConfigurationManager.getInstance().load();
SummaryPageManager.getInstance().setManifest(manifest);
AnswersStatusManager.getInstance().resetAllAnswers();
@@ -100,7 +101,7 @@
public void showEmptyDocument() throws MalformedURLException {
AppletWithApiHandle.setNextItemIdentifier("");
- getAppletContext().showDocument(new URL("/empty.html"), "ContentFrame");
+ getAppletContext().showDocument(new URL(Settings.getInstance().getResourceLocation() + "/empty.html"), "ContentFrame");
System.out.println("redirected to empty page");
}
@@ -135,14 +136,9 @@
try {
manifest = ManifestFactory.createManifest();
SummaryPageManager.getInstance().setManifest(manifest);
- ItemModels.synchronizeAllItemDatas(manifest.getRoot());
+
TreeDataModel.initInstance(manifest);
- TreeItem root = manifest.getRoot();
- OrganizationModel model = (OrganizationModel) ItemModels
- .getModelFromItem(root);
-
- model.synchronizeItemWithResource(root, "template");
SummaryPageManager.getInstance().updateSummaryPages();
AnswersStatusManager.getInstance().resetAllAnswers();
Added: WebEditor/src/edu/lnu/FireFly/WebEditor/itemConfiguration/ItemConfigurationManager.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/itemConfiguration/ItemConfigurationManager.java (rev 0)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/itemConfiguration/ItemConfigurationManager.java 2008-05-29 09:30:08 UTC (rev 178)
@@ -0,0 +1,99 @@
+package edu.lnu.FireFly.WebEditor.itemConfiguration;
+
+import java.io.StringReader;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+
+import edu.lnu.FireFly.FFManifest.TreeItem;
+import edu.lnu.FireFly.WebEditor.ItemModels.ItemData;
+import edu.lnu.FireFly.WebEditor.ItemModels.ItemDataFactory;
+import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient;
+
+public class ItemConfigurationManager {
+ protected HashMap<String, ItemData> itemDatas = new HashMap<String, ItemData>();
+
+ private ItemConfigurationManager() {
+ }
+
+ private static ItemConfigurationManager obj = null;
+
+ public static ItemConfigurationManager getInstance() {
+ if (obj == null) {
+ obj = new ItemConfigurationManager();
+ }
+
+ return obj;
+ }
+
+ public void update(TreeItem anItem, ItemData anItemData) {
+ itemDatas.put(anItem.getIdentifier(), anItemData);
+ }
+
+ public ItemData get(TreeItem anItem) {
+ return itemDatas.get(anItem.getIdentifier());
+ }
+
+ @SuppressWarnings("unchecked")
+ public void load() {
+ String xml = WebEditorServiceClient.getInstance().getFileContent(
+ "config.xml", "course");
+
+ Document document = null;
+ try {
+ SAXReader reader = new SAXReader();
+ document = reader.read(new StringReader(xml));
+ } catch (Exception e) {
+ e.printStackTrace();
+ return;
+ }
+
+ Element root = document.getRootElement();
+
+ itemDatas.clear();
+
+ Iterator<Element> iter = root.elementIterator("ItemData");
+ while (iter.hasNext()) {
+ Element itemDataElement = iter.next();
+ ItemData itemData = ItemDataFactory.getInstance().createItemData(itemDataElement.attributeValue("type"));
+ itemData.unmarshal(itemDataElement);
+
+ itemDatas.put(itemDataElement.attributeValue("id"), itemData);
+ }
+ }
+
+ public void save() {
+ String config = "";
+
+ Document doc = DocumentHelper.createDocument();
+
+ Element root = DocumentHelper.createElement("ItemConfigurations");
+ doc.add(root);
+
+ String[] keys = new String[itemDatas.size()];
+ itemDatas.keySet().toArray(keys);
+ for (String key : keys) {
+ ItemData itemData = itemDatas.get(key);
+ Element itemElement = itemData.marshal();
+
+ itemElement.add(DocumentHelper.createAttribute(root, "type",
+ itemData.getClass().getSimpleName()));
+ itemElement.add(DocumentHelper.createAttribute(root, "id", key));
+
+ root.add(itemElement);
+ }
+
+ config = doc.asXML();
+
+ WebEditorServiceClient.getInstance().setFileContent("config.xml",
+ config);
+ }
+
+ public void clear() {
+ itemDatas.clear();
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|