From: <se...@us...> - 2008-05-18 17:35:24
|
Revision: 145 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=145&view=rev Author: sem62 Date: 2008-05-18 10:35:26 -0700 (Sun, 18 May 2008) Log Message: ----------- Normally marshal and unmarshal compileQ propertiests. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java WebEditor/template/CompileQModel.conf Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 15:27:58 UTC (rev 144) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 17:35:26 UTC (rev 145) @@ -173,16 +173,19 @@ CompileQModel itemModel = new CompileQModel(); - // dlg.captionTextField.setText(itemModel.getData(manifestItem) - // .getCaption()); + dlg.captionTextField.setText(itemModel.getData(manifestItem) + .getCaption()); + dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() .equals(dlg.captionTextField.getText())); dlg.compileQTableDataModel = itemModel.getData(manifestItem).getParts(); - + dlg.programmingLanguage.addItem("Any"); dlg.programmingLanguage.addItem("C++"); dlg.programmingLanguage.addItem("Pascal"); + + dlg.programmingLanguage.setSelectedItem(itemModel.getData(manifestItem).getLanguge()); dlg.partsTable.setModel(dlg.compileQTableDataModel); @@ -219,7 +222,8 @@ generalPanel = new javax.swing.JPanel(); titleLabel = new javax.swing.JLabel(); - programminglanguageLabel = new javax.swing.JLabel("Programming language:"); + programminglanguageLabel = new javax.swing.JLabel( + "Programming language:"); titleTextField = new javax.swing.JTextField(); captionPanel = new javax.swing.JPanel(); captionTextField = new javax.swing.JTextField(); @@ -356,8 +360,7 @@ captionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE - )) + javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap())); oneAnswerCheckBox.setText("Only one correct answer"); @@ -366,47 +369,36 @@ .createTitledBorder("Variants of answer")); jScrollPane1.setViewportView(partsTable); - jScrollPane1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + jScrollPane1 + .setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( partsPanel); partsPanel.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup( - jPanel4Layout - .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(jPanel4Layout.createSequentialGroup() - .addComponent(moveUpAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(moveDownAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(insertAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(deleteAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(editAnswerVariantInHtmlEditor) - .addContainerGap() - ) - .addGroup( - jPanel4Layout.createSequentialGroup().addContainerGap() - .addComponent(jScrollPane1, - javax.swing.GroupLayout.DEFAULT_SIZE, 364, - Short.MAX_VALUE) - .addContainerGap() - ) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, - jPanel4Layout - .createSequentialGroup() - .addContainerGap() - .addComponent(programminglanguageLabel, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE - ) - .addContainerGap(10, 10) - .addComponent(programmingLanguage, 118, 118, 118) - .addContainerGap() - ) - ); + jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.TRAILING).addGroup( + jPanel4Layout.createSequentialGroup().addComponent( + moveUpAnswerVariantBtn).addContainerGap(10, 10) + .addComponent(moveDownAnswerVariantBtn) + .addContainerGap(10, 10).addComponent( + insertAnswerVariantBtn).addContainerGap(10, 10) + .addComponent(deleteAnswerVariantBtn).addContainerGap( + 10, 10).addComponent( + editAnswerVariantInHtmlEditor) + .addContainerGap()).addGroup( + jPanel4Layout.createSequentialGroup().addContainerGap() + .addComponent(jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap()).addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel4Layout.createSequentialGroup().addContainerGap() + .addComponent(programminglanguageLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(10, 10).addComponent( + programmingLanguage, 118, 118, 118) + .addContainerGap())); jPanel4Layout .setVerticalGroup(jPanel4Layout @@ -420,16 +412,20 @@ jPanel4Layout .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) - .addGroup( - jPanel4Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(programminglanguageLabel, - 20, 20, 20) - .addComponent(programmingLanguage, - 20, 20, 20) - ) - ) + .addGroup( + jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + programminglanguageLabel, + 20, + 20, + 20) + .addComponent( + programmingLanguage, + 20, + 20, + 20))) .addContainerGap(10, 10) .addComponent( jScrollPane1, @@ -558,6 +554,7 @@ } data.setParts(compileQTableDataModel); + data.setLanguge(programmingLanguage.getSelectedItem().toString()); itemModel.updateItemResource(manifestItem, true); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java 2008-05-18 15:27:58 UTC (rev 144) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java 2008-05-18 17:35:26 UTC (rev 145) @@ -1,44 +1,47 @@ 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) { - return ""; + Document doc = DocumentHelper.createDocument(); + Element root = doc.addElement("CompileQuestion"); + root.addElement("caption").setText(getCaption()); - // 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<CompileQPart> iter = getAnswers().answers.iterator(); -// -// while (iter.hasNext()) { -// CompileQPart answer = iter.next(); -// -// Element ansEl = ans.addElement("answer"); -// ansEl -// .addAttribute("point", String.valueOf(answer -// .getAnswerPoint())); -// ansEl.setText(answer.getAnswerText()); -// } -// -// return doc.asXML(); + root.addElement("ShowOnSummaryPage").setText(String.valueOf(getShowOnSummaryPage())); + + Element parts = root.addElement("parts"); + + parts.addAttribute("language", String.valueOf(getLanguge())); + + Iterator<CompileQPart> iter = getParts().questionParts.iterator(); + + while (iter.hasNext()) { + CompileQPart part = iter.next(); + + Element partElement = parts.addElement("part"); + partElement.addAttribute("isAnswer", String.valueOf(part.getPartAttributes().isAnswer())); + partElement.addAttribute("isReadOnly", String.valueOf(part.getPartAttributes().isReadOnly())); + partElement.addAttribute("isVivsble", String.valueOf(part.getPartAttributes().isVisible())); + + partElement.setText(part.getAnswerText()); + } + + return doc.asXML(); } private String caption = ""; + private String languge = "Any"; public String getCaption() { return caption; @@ -53,42 +56,40 @@ @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(); -// CompileQPart ans = new CompileQPart(answer -// .getText()); -// ans.setAnswerPoint(Double.valueOf(answer -// .attributeValue("point"))); -// getAnswers().answers.add(ans); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return false; -// } -// + SAXReader reader = new SAXReader(); + + Document doc = null; + try { + doc = reader.read(res); + + Element root = doc.getRootElement(); + Element answers = root.element("parts"); + + setCaption(root.elementTextTrim("caption")); + + boolean showOnSP = Boolean.valueOf(root.elementTextTrim("ShowOnSummaryPage")); + setShowOnSummaryPage(showOnSP); + + setLanguge(answers.attributeValue("language")); + + getParts().questionParts.clear(); + + Iterator<Element> iter = answers.elementIterator("part"); + while (iter.hasNext()) { + Element partElement = iter.next(); + CompileQPart part = new CompileQPart(partElement.getText()); + + part.getPartAttributes().setAnswer(partElement.attributeValue("isAnswer").equalsIgnoreCase("true")); + part.getPartAttributes().setReadOnly(partElement.attributeValue("isReadOnly").equalsIgnoreCase("true")); + part.getPartAttributes().setVisible(partElement.attributeValue("isVivsble").equalsIgnoreCase("true")); + + getParts().questionParts.add(part); + } + } catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; } @@ -99,4 +100,12 @@ public void setParts(CompileQPartsTableModel parts) { this.parts = parts; } + + public String getLanguge() { + return languge; + } + + public void setLanguge(String languge) { + this.languge = languge; + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java 2008-05-18 15:27:58 UTC (rev 144) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java 2008-05-18 17:35:26 UTC (rev 145) @@ -9,7 +9,6 @@ private static final long serialVersionUID = 1L; private String answerText = ""; - private double answerPoint = 0; private PartAttributes partAttributes = new PartAttributes(); @@ -25,18 +24,10 @@ this.answerText = answerText; } - public double getAnswerPoint() { - return answerPoint; - } - public String getAnswerText() { return answerText; } - public void setAnswerPoint(double answerPoint) { - this.answerPoint = answerPoint; - } - public void setAnswerText(String answerText) { this.answerText = answerText; } Modified: WebEditor/template/CompileQModel.conf =================================================================== --- WebEditor/template/CompileQModel.conf 2008-05-18 15:27:58 UTC (rev 144) +++ WebEditor/template/CompileQModel.conf 2008-05-18 17:35:26 UTC (rev 145) @@ -1,10 +1,2 @@ -<?xml version="1.0" encoding="UTF-8"?> -<SimpleQuestion> -<caption>New simple question</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 +<?xml version="1.0" encoding="UTF-8"?> +<CompileQuestion><caption>New compile question</caption><ShowOnSummaryPage>false</ShowOnSummaryPage><parts language="null"><part isAnswer="false" isReadOnly="true" isVivsble="true">Please write program.</part><part isAnswer="true" isReadOnly="false" isVivsble="true">...</part></parts></CompileQuestion> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |