From: <se...@us...> - 2008-05-07 08:48:31
|
Revision: 97 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=97&view=rev Author: sem62 Date: 2008-05-07 01:48:34 -0700 (Wed, 07 May 2008) Log Message: ----------- code refactor: * move synchronizeItemWithResource to parent class * added some files to template Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterItemData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/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/ItemModels.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/OrganizationModel.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/WebEditor.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/Data/ManifestFactory.java 2008-05-07 08:48:34 UTC (rev 97) @@ -35,7 +35,7 @@ return null; } - model.initializeDataForItem(root, new ChapterItemData()); + model.setItemData(root, new ChapterItemData()); model.updateItemResource(root, false); return manifest; Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-07 08:48:34 UTC (rev 97) @@ -8,9 +8,7 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionAnswersDataModel; -import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionException; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; /** @@ -37,7 +35,7 @@ private javax.swing.JButton editCaptionInHtmlBtn; private javax.swing.JButton editQuestionInHtmlBtn; private SimpleQuestionAnswersDataModel simpleQuestionAnswersDataModel; - + public SimpleQuestionPropertiestsDlg() { obj = this; @@ -47,7 +45,7 @@ @Override public void actionPerformed(ActionEvent arg0) { super.actionPerformed(arg0); - + if (arg0.getSource() == editQuestionInHtmlBtn) { editTextFieldInHtmlEditor(questionTextField); } @@ -64,29 +62,23 @@ @Override protected void fillFields() { - try { - SimpleQuestionPropertiestsDlg dlg = (SimpleQuestionPropertiestsDlg)obj; - dlg.titleTextField.setText(manifestItem.getTitle()); + SimpleQuestionPropertiestsDlg dlg = (SimpleQuestionPropertiestsDlg) obj; + dlg.titleTextField.setText(manifestItem.getTitle()); - SimpleQuestionModel itemModel = new SimpleQuestionModel(); + SimpleQuestionModel itemModel = new SimpleQuestionModel(); - itemModel.synchronizeItemWithResource((Item)manifestItem); + dlg.captionTextField.setText(itemModel.getData(manifestItem) + .getCaption()); + dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() + .equals(dlg.captionTextField.getText())); + dlg.questionTextField.setText(itemModel.getData(manifestItem) + .getQuestion()); - dlg.captionTextField - .setText(itemModel.getData(manifestItem).getCaption()); - dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() - .equals(dlg.captionTextField.getText())); - dlg.questionTextField.setText(itemModel - .getData(manifestItem).getQuestion()); + dlg.simpleQuestionAnswersDataModel = itemModel.getData(manifestItem) + .getAnswers(); + dlg.answersTable.setModel(dlg.simpleQuestionAnswersDataModel); - dlg.simpleQuestionAnswersDataModel = itemModel - .getData(manifestItem).getAnswers(); - dlg.answersTable.setModel(dlg.simpleQuestionAnswersDataModel); - - dlg.titleTextField.selectAll(); - } catch (SimpleQuestionException e) { - e.printStackTrace(); - } + dlg.titleTextField.selectAll(); } private void initComponents() { @@ -348,7 +340,8 @@ layout .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cancelButton) + .addComponent( + cancelButton) .addComponent(okButton)) .addContainerGap( javax.swing.GroupLayout.DEFAULT_SIZE, @@ -362,17 +355,15 @@ SimpleQuestionModel itemModel = new SimpleQuestionModel(); manifestItem.setTitle(titleTextField.getText()); - try{ itemModel.getData(manifestItem).setCaption(captionTextField.getText()); - itemModel.getData(manifestItem).setQuestion(questionTextField.getText()); - itemModel.getData(manifestItem).setAnswers(simpleQuestionAnswersDataModel); - } - catch (SimpleQuestionException e) { - e.printStackTrace(); - return; - } + itemModel.getData(manifestItem) + .setQuestion(questionTextField.getText()); + + itemModel.getData(manifestItem).setAnswers( + simpleQuestionAnswersDataModel); + itemModel.updateItemResource(manifestItem, true); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterItemData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterItemData.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterItemData.java 2008-05-07 08:48:34 UTC (rev 97) @@ -1,5 +1,13 @@ 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; @@ -57,7 +65,43 @@ 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; Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ChapterModel.java 2008-05-07 08:48:34 UTC (rev 97) @@ -1,11 +1,8 @@ package edu.lnu.FireFly.WebEditor.ItemModels; -import java.io.StringReader; - import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; -import org.dom4j.io.SAXReader; import edu.lnu.FireFly.FFManifest.Organization; import edu.lnu.FireFly.FFManifest.TreeItem; @@ -17,21 +14,11 @@ public class ChapterModel extends ResourcedItemModel { @Override - protected void initializeDataForItem(Item anItem) { - initializeDataForItem(anItem, new ChapterItemData()); - } - - @Override public boolean getLimitConditionsMenuVisible() { return false; } @Override - public void addItem(TreeItem parent) { - super.addItem(parent); - } - - @Override public boolean getShowOnSummaryPageMenuVisible() { return true; } @@ -43,7 +30,7 @@ public ChapterModel() { super(); - modelName = "Chapter"; + modelName = "ChapterModel"; isContainerItem = true; } @@ -67,7 +54,7 @@ } public boolean getShowSummaryPage(TreeItem anItem) { - ChapterItemData itemData = (ChapterItemData) getItemData(anItem); + ChapterItemData itemData = getData(anItem); if (itemData == null) { System.out @@ -119,11 +106,11 @@ } public void setShowSummaryPage(TreeItem anItem, boolean state) { - ChapterItemData itemData = (ChapterItemData) getItemData(anItem); + ChapterItemData itemData = getData(anItem); if (itemData == null) { ItemData data = new ChapterItemData(); - initializeDataForItem(anItem, data); + setItemData(anItem, data); itemData = (ChapterItemData) getItemData(anItem); } @@ -133,61 +120,14 @@ } } - @Override - public boolean synchronizeItemWithResource(TreeItem anItem) { - initializeDataForItem(anItem, new ChapterItemData()); - - String identifier = ""; - if (anItem.getClass() == Item.class) { - identifier = ((Item) anItem).identifier; - } - if (anItem.getClass() == Organization.class) { - identifier = ((Organization) anItem).identifier; - } - String res = WebEditorServiceClient - .getFileContent(identifier + ".conf", "course"); - - if (res == null || res.trim().equals("")){ - return false; - } - - SAXReader reader = new SAXReader(); - - Document doc = null; - Element root = null; - try { - doc = reader.read(new StringReader(res)); - - root = doc.getRootElement(); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - - try { - boolean showSP = Boolean.valueOf(root - .elementTextTrim("ShowSummaryPage")); - ((ChapterItemData) getItemData(anItem)).setShowSummaryPage(showSP); - - boolean showOnSP = Boolean.valueOf(root - .elementTextTrim("ShowOnSummaryPage")); - getItemData(anItem).setShowOnSummaryPage(showOnSP); - - int configuration = Integer.valueOf(root - .elementTextTrim("Configuration")); - ((ChapterItemData) getItemData(anItem)).setConfiguration(configuration); - - } catch (Exception e) { - e.printStackTrace(); - return false; - } - - return true; + private ChapterItemData getData(TreeItem anItem) { + return (ChapterItemData) getItemData(anItem); } @Override - public boolean updateItemResource(TreeItem anItem, boolean updateSummaryPages) { - ChapterItemData itemData = (ChapterItemData) getItemData(anItem); + public boolean updateItemResource(TreeItem anItem, + boolean updateSummaryPages) { + ChapterItemData itemData = getData(anItem); Document doc = DocumentHelper.createDocument(); Element root = doc.addElement(modelName); @@ -210,10 +150,15 @@ WebEditorServiceClient .setFileContent(identifier + ".conf", doc.asXML()); - if (updateSummaryPages){ + 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/ItemData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemData.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemData.java 2008-05-07 08:48:34 UTC (rev 97) @@ -1,5 +1,9 @@ package edu.lnu.FireFly.WebEditor.ItemModels; +import java.io.Reader; + +import edu.lnu.FireFly.FFManifest.TreeItem; + public abstract class ItemData { private Boolean showOnSummaryPage = false; @@ -10,4 +14,6 @@ public void setShowOnSummaryPage(Boolean showOnSummaryPage) { this.showOnSummaryPage = showOnSummaryPage; } + + public abstract boolean unmarshal(Reader res, TreeItem anItem); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-07 08:48:34 UTC (rev 97) @@ -19,7 +19,7 @@ protected String modelName = "Abstract model"; - public void initializeDataForItem(TreeItem anItem, ItemData data) { + public void setItemData(TreeItem anItem, ItemData data) { questionsData.put(anItem, data); } @@ -129,8 +129,8 @@ public abstract void rename(TreeItem item, String newTitle); - public abstract boolean synchronizeItemWithResource(TreeItem item); - + public abstract boolean synchronizeItemWithResource(TreeItem anItem, String location); + public abstract boolean updateItemResource(TreeItem item, boolean updateSummaryPages); public abstract boolean getLimitConditionsMenuVisible(); @@ -150,4 +150,6 @@ return null; } + + 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-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java 2008-05-07 08:48:34 UTC (rev 97) @@ -45,7 +45,7 @@ ItemModel model = ItemModels.getModelFromItem(item); if (item.getClass() == Item.class) { - model.synchronizeItemWithResource((Item)item); + model.synchronizeItemWithResource((Item)item, "course"); } if (model.getClass() == ChapterModel.class Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureData.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureData.java 2008-05-07 08:48:34 UTC (rev 97) @@ -1,20 +1,55 @@ package edu.lnu.FireFly.WebEditor.ItemModels.Lecture; +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 LectureData extends ItemData { - private String caption=""; - private String content=""; + private String caption = ""; + private String content = ""; + public String getCaption() { return caption; } + public void setCaption(String caption) { this.caption = caption; } + public String getContent() { return content; } + public void setContent(String content) { this.content = content; } + + 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(); + + setCaption(root.elementTextTrim("caption")); + setContent(root.elementTextTrim("content")); + + boolean showOnSP = Boolean.valueOf(root + .elementTextTrim("ShowOnSummaryPage")); + + setShowOnSummaryPage(showOnSP); + + return true; + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-07 08:48:34 UTC (rev 97) @@ -1,11 +1,8 @@ package edu.lnu.FireFly.WebEditor.ItemModels.Lecture; -import java.io.StringReader; - 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.FFManifest.item.Item; @@ -14,17 +11,13 @@ 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 - protected void initializeDataForItem(Item anItem) { - initializeDataForItem(anItem, new LectureData()); - } - - @Override public boolean getShowSummaryPageMenuVisible() { return false; } @@ -40,44 +33,10 @@ } public LectureModel() { - modelName = "Lecture"; + modelName = "LectureModel"; } @Override - public boolean synchronizeItemWithResource(TreeItem anItem) { - initializeDataForItem(anItem, new LectureData()); - - Resource resource = WebEditor.instance.getManifest().resources - .findResourceByIdentifier(((Item)anItem).identifierref); - - String res = WebEditorServiceClient.getFileContent(resource.identifier - + ".conf", "course"); - - SAXReader reader = new SAXReader(); - - Document doc = null; - try { - doc = reader.read(new StringReader(res)); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - - Element root = doc.getRootElement(); - - LectureData itemData = getData(anItem); - - itemData.setCaption(root.elementTextTrim("caption")); - itemData.setContent(root.elementTextTrim("content")); - - boolean showOnSP = Boolean.valueOf(root - .elementTextTrim("ShowOnSummaryPage")); - itemData.setShowOnSummaryPage(showOnSP); - - return true; - } - - @Override public boolean canAddToItem(TreeItem parent) { // TODO Auto-generated method stub return true; @@ -133,4 +92,9 @@ return true; } + + @Override + protected ItemData createItemDataInstance() { + return new LectureData(); + } } \ No newline at end of file Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/OrganizationModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/OrganizationModel.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/OrganizationModel.java 2008-05-07 08:48:34 UTC (rev 97) @@ -9,7 +9,7 @@ public OrganizationModel(){ super(); isContainerItem = true; - modelName = "Organization"; + modelName = "OrganizationModel"; } @Override @@ -35,11 +35,6 @@ } @Override - public void addItem(TreeItem parent) { - System.out.print("Can't add Organization into course."); - } - - @Override public boolean isApplaingForItem(TreeItem treeItem){ return treeItem.getClass() == Organization.class; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-07 08:48:34 UTC (rev 97) @@ -1,26 +1,35 @@ package edu.lnu.FireFly.WebEditor.ItemModels; +import java.io.StringReader; import java.util.UUID; import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; +import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; public abstract class ResourcedItemModel extends ItemModel { @Override - public void addItem(TreeItem parent) { + public final void addItem(TreeItem parent) { + + if (this.getClass() == OrganizationModel.class){ + System.out.println("Can't add Organization into course."); + return ; + } + Item item = new Item(); item.setParent(parent); - item.identifier = this.getClass().getSimpleName() + "_Item_" + UUID.randomUUID().toString(); + item.identifier = this.getClass().getSimpleName() + "_Item_" + + UUID.randomUUID().toString(); item.title = "New " + modelName; item.parameters = "pageType=" + modelName; item.identifierref = createNewResource(); initializeDataForItem(item); - + try { parent.addChild(item); TreeDataModel.getInstance().treeNodesInserted(item); @@ -32,6 +41,19 @@ ConfigureItem(item); } + protected final String loadResource(String location, String identifier) { + String res = ""; + + if (location.equalsIgnoreCase("course")) { + res = WebEditorServiceClient.getFileContent(identifier + ".conf", + location); + } else { + res = WebEditorServiceClient.getFileContent(modelName + ".conf", + location); + } + return res; + } + @Override public boolean isApplaingForItem(TreeItem treeItem) { if (treeItem.getClass() != Item.class) { @@ -63,4 +85,34 @@ ((Item) item).title = newTitle; TreeDataModel.getInstance().treeNodesChanged(item); } + + public final boolean synchronizeItemWithResource(TreeItem anItem, String location) + { + String res = loadResource(location, getIdentifier(anItem)); + + if (res == null || res.trim().equals("")) { + return false; + } + + ItemData itemData = getItemData(anItem); + + if (itemData == null) { + itemData = createItemDataInstance(); + setItemData(anItem, itemData); + } + + itemData.unmarshal(new StringReader(res), anItem); + + return true; + } + + protected final void initializeDataForItem(Item anItem){ + ItemData itemData = createItemDataInstance(); + + String res = loadResource("template", getIdentifier(anItem)); + + itemData.unmarshal(new StringReader(res), anItem); + + setItemData(anItem, itemData); + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java 2008-05-07 08:48:34 UTC (rev 97) @@ -1,5 +1,13 @@ package edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion; +import java.io.Reader; +import java.util.Iterator; + +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 SimpleQuestionData extends ItemData { @@ -25,4 +33,45 @@ public void setQuestion(String question) { this.question = question; } + + @SuppressWarnings("unchecked") + public boolean unmarshal(Reader res, TreeItem anItem) { + SAXReader reader = new SAXReader(); + + Document doc = null; + try { + doc = reader.read(res); + + Element root = doc.getRootElement(); + Element answers = root.element("answers"); + + setCaption(root.elementTextTrim("caption")); + setQuestion(root.elementTextTrim("question")); + + boolean showOnSP = Boolean.valueOf(root + .elementTextTrim("ShowOnSummaryPage")); + setShowOnSummaryPage(showOnSP); + + getAnswers().setSingleVariant( + answers.attributeValue("singleVariant").equalsIgnoreCase( + "true")); + + getAnswers().answers.clear(); + + Iterator<Element> iter = answers.elementIterator("answer"); + while (iter.hasNext()) { + Element answer = iter.next(); + SimpleQuestionAnswer ans = new SimpleQuestionAnswer(answer + .getText()); + ans.setAnswerPoint(Double.valueOf(answer + .attributeValue("point"))); + getAnswers().answers.add(ans); + } + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + return true; + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-07 08:48:34 UTC (rev 97) @@ -1,12 +1,10 @@ package edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion; -import java.io.StringReader; 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.FFManifest.item.Item; @@ -15,18 +13,13 @@ 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 - protected void initializeDataForItem(Item anItem) { - initializeDataForItem(anItem, new SimpleQuestionData()); - } - - @Override public boolean getLimitConditionsMenuVisible() { return true; } @@ -37,7 +30,7 @@ } public SimpleQuestionModel() { - modelName = "SimpleQuestion"; + modelName = "SimpleQuestionModel"; } @Override @@ -61,8 +54,7 @@ .getItemPath(item)); } - public SimpleQuestionData getData(TreeItem item) - throws SimpleQuestionException { + public SimpleQuestionData getData(TreeItem item) { return ((SimpleQuestionData) getItemData(item)); } @@ -98,115 +90,65 @@ TreeDataModel.getInstance().treeNodesChanged(item); } - @Override - @SuppressWarnings("unchecked") - public boolean synchronizeItemWithResource(TreeItem anItem) { - Resource resource = WebEditor.instance.getManifest().resources - .findResourceByIdentifier(((Item)anItem).identifierref); - - String res = WebEditorServiceClient.getFileContent(resource.identifier - + ".conf", "course"); - - SAXReader reader = new SAXReader(); - - initializeDataForItem(anItem, new SimpleQuestionData()); - - Document doc = null; - try { - doc = reader.read(new StringReader(res)); - - Element root = doc.getRootElement(); - Element answers = root.element("answers"); - - SimpleQuestionData itemData = getData(anItem); - itemData.setCaption(root.elementTextTrim("caption")); - itemData.setQuestion(root.elementTextTrim("question")); - - boolean showOnSP = Boolean.valueOf(root - .elementTextTrim("ShowOnSummaryPage")); - itemData.setShowOnSummaryPage(showOnSP); - - itemData.getAnswers().setSingleVariant( - answers.attributeValue("singleVariant").equalsIgnoreCase( - "true")); - - itemData.getAnswers().answers.clear(); - - Iterator<Element> iter = answers.elementIterator("answer"); - while (iter.hasNext()) { - Element answer = iter.next(); - SimpleQuestionAnswer ans = new SimpleQuestionAnswer(answer - .getText()); - ans.setAnswerPoint(Double.valueOf(answer - .attributeValue("point"))); - itemData.getAnswers().answers.add(ans); - } - } catch (Exception e) { - e.printStackTrace(); - return false; - } - - return true; + protected ItemData createItemDataInstance() { + return new SimpleQuestionData(); } @Override - public boolean updateItemResource(TreeItem anItem, boolean updateSummaryPages) { + public boolean updateItemResource(TreeItem anItem, + boolean updateSummaryPages) { Resource resource = WebEditor.instance.getManifest().resources .findResourceByIdentifier(((Item) anItem).identifierref); Template template = new Template(resource.getFullHref(), this); - try { - SimpleQuestionData itemData = getData(anItem); - - template.setProperty("Caption", itemData.getCaption()); - template.setProperty("Question", itemData.getQuestion()); + SimpleQuestionData itemData = getData(anItem); - Iterator<SimpleQuestionAnswer> iter = itemData.getAnswers().answers - .iterator(); - String answers = "\r\nsetSingleVariant(" - + itemData.getAnswers().getSingleVariant() + ");\r\n"; + template.setProperty("Caption", itemData.getCaption()); + template.setProperty("Question", itemData.getQuestion()); - while (iter.hasNext()) { - SimpleQuestionAnswer answer = iter.next(); - answers += "addAnswer(\"" + answer.getAnswerText() + "\", " - + answer.getAnswerPoint() + ");" + "\r\n"; - } + Iterator<SimpleQuestionAnswer> iter = itemData.getAnswers().answers + .iterator(); + String answers = "\r\nsetSingleVariant(" + + itemData.getAnswers().getSingleVariant() + ");\r\n"; - template.setProperty("answers", answers); - template.updateResource(); + while (iter.hasNext()) { + SimpleQuestionAnswer answer = iter.next(); + answers += "addAnswer(\"" + answer.getAnswerText() + "\", " + + answer.getAnswerPoint() + ");" + "\r\n"; + } - Document doc = DocumentHelper.createDocument(); - Element root = doc.addElement(modelName); - root.addElement("caption").setText(itemData.getCaption()); - root.addElement("question").setText(itemData.getQuestion()); + template.setProperty("answers", answers); + template.updateResource(); - root.addElement("ShowOnSummaryPage").setText( - String.valueOf(itemData.getShowOnSummaryPage())); + Document doc = DocumentHelper.createDocument(); + Element root = doc.addElement(modelName); + root.addElement("caption").setText(itemData.getCaption()); + root.addElement("question").setText(itemData.getQuestion()); - Element ans = root.addElement("answers"); + root.addElement("ShowOnSummaryPage").setText( + String.valueOf(itemData.getShowOnSummaryPage())); - ans.addAttribute("singleVariant", String.valueOf(itemData - .getAnswers().getSingleVariant())); + Element ans = root.addElement("answers"); - iter = itemData.getAnswers().answers.iterator(); + ans.addAttribute("singleVariant", String.valueOf(itemData.getAnswers() + .getSingleVariant())); - while (iter.hasNext()) { - SimpleQuestionAnswer answer = iter.next(); + iter = itemData.getAnswers().answers.iterator(); - Element ansEl = ans.addElement("answer"); - ansEl.addAttribute("point", String.valueOf(answer - .getAnswerPoint())); - ansEl.setText(answer.getAnswerText()); - } + while (iter.hasNext()) { + SimpleQuestionAnswer answer = iter.next(); - WebEditorServiceClient.setFileContent( - resource.identifier + ".conf", doc.asXML()); - } catch (SimpleQuestionException e) { - e.printStackTrace(); - return false; + Element ansEl = ans.addElement("answer"); + ansEl + .addAttribute("point", String.valueOf(answer + .getAnswerPoint())); + ansEl.setText(answer.getAnswerText()); } + WebEditorServiceClient.setFileContent(resource.identifier + ".conf", + doc.asXML()); + SummaryPageManager.getInstance().updateSummaryPages(); return true; Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageData.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageData.java 2008-05-07 08:48:34 UTC (rev 97) @@ -1,12 +1,20 @@ package edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel; +import java.io.Reader; + +import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; public class SummaryPageData extends ItemData { @Override + public boolean unmarshal(Reader res, TreeItem anItem) { + // TODO Auto-generated method stub + return true; + } + + @Override public Boolean getShowOnSummaryPage() { - // It can be show on summary page return false; } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-07 08:48:34 UTC (rev 97) @@ -8,6 +8,7 @@ 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; @@ -19,11 +20,6 @@ public class SummaryPageModel extends ResourcedItemModel { @Override - protected void initializeDataForItem(Item anItem) { - initializeDataForItem(anItem, new SummaryPageData()); - } - - @Override public boolean getLimitConditionsMenuVisible() { return false; } @@ -34,16 +30,10 @@ } public SummaryPageModel() { - modelName = "SummaryPage"; + modelName = "SummaryPageModel"; } @Override - public boolean synchronizeItemWithResource(TreeItem item) { - // currently it can't any item data - return false; - } - - @Override public boolean updateItemResource(TreeItem anItem, boolean updateSummaryPages) { Resource resource = WebEditor.instance.getManifest().resources @@ -141,4 +131,9 @@ return false; } + @Override + protected ItemData createItemDataInstance() { + return new SummaryPageData(); + } + } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-06 22:43:58 UTC (rev 96) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-07 08:48:34 UTC (rev 97) @@ -120,7 +120,7 @@ OrganizationModel model = (OrganizationModel) ItemModels .getModelFromItem(root); - model.synchronizeItemWithResource(root); + model.synchronizeItemWithResource(root, "template"); SummaryPageManager.getInstance().updateSummaryPages(); } catch (Exception e) { e.printStackTrace(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |