|
From: <se...@us...> - 2008-05-24 17:14:08
|
Revision: 165
http://acmcontester.svn.sourceforge.net/acmcontester/?rev=165&view=rev
Author: sem62
Date: 2008-05-24 10:14:09 -0700 (Sat, 24 May 2008)
Log Message:
-----------
* Change OnlyOneAnswer to QuestionType comboBox and added logic for it.
Modified Paths:
--------------
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/SimpleQuestionData.java
WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java
WebEditor/src/edu/lnu/FireFly/WebEditor/UserAnswerStatus/ScoredUserAnswerStatus.java
WebEditor/template/global/simpleQ.js
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-24 14:29:24 UTC (rev 164)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-24 17:14:09 UTC (rev 165)
@@ -3,8 +3,15 @@
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import javax.swing.BorderFactory;
+import javax.swing.GroupLayout;
import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
+import javax.swing.GroupLayout.Alignment;
+import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.table.DefaultTableColumnModel;
@@ -23,7 +30,7 @@
private static final long serialVersionUID = 1961383080461718171L;
private javax.swing.JCheckBox sameAsTitleCheckBox;
- private javax.swing.JCheckBox oneAnswerCheckBox;
+ private javax.swing.JComboBox answerTypeComboBox;
private javax.swing.JLabel titleLabel;
private javax.swing.JPanel generalPanel;
private javax.swing.JPanel captionPanel;
@@ -132,15 +139,16 @@
titleTextField.setText(manifestItem.getTitle());
SimpleQuestionModel itemModel = new SimpleQuestionModel();
+ SimpleQuestionData data = itemModel.getData(manifestItem);
- captionTextField.setText(itemModel.getData(manifestItem).getCaption());
+ captionTextField.setText(data.getCaption());
sameAsTitleCheckBox.setSelected(titleTextField.getText().equals(
captionTextField.getText()));
- questionTextField
- .setText(itemModel.getData(manifestItem).getQuestion());
+ questionTextField.setText(data.getQuestion());
- simpleQuestionAnswersDataModel = itemModel.getData(manifestItem)
- .getAnswers();
+ answerTypeComboBox.setSelectedIndex(data.getAnswers().getAnswerType());
+
+ simpleQuestionAnswersDataModel = data.getAnswers();
answersTable.setModel(simpleQuestionAnswersDataModel);
DefaultTableColumnModel columnModel = (DefaultTableColumnModel) answersTable
@@ -173,10 +181,18 @@
sameAsTitleCheckBox = new javax.swing.JCheckBox();
questionPanel = new javax.swing.JPanel();
questionTextField = new javax.swing.JTextField();
- oneAnswerCheckBox = new javax.swing.JCheckBox();
- answersPanel = new javax.swing.JPanel();
- jScrollPane1 = new javax.swing.JScrollPane();
- cancelButton = new javax.swing.JButton("Cancel");
+
+ String[] types = new String[3];
+ types[0] = "Select one variant";
+ types[1] = "Check corrent variants";
+ types[2] = "Type your answer";
+
+ answerTypeComboBox = new javax.swing.JComboBox(types);
+ answerTypeComboBox.setSelectedIndex(0);
+
+ answersPanel = new JPanel();
+ jScrollPane1 = new JScrollPane();
+ cancelButton = new JButton("Cancel");
okButton = new javax.swing.JButton("Ok");
editCaptionInHtmlBtn = new JButton("...");
editQuestionInHtmlBtn = new JButton("...");
@@ -184,6 +200,8 @@
insertAnswerVariantBtn = new JButton("Insert");
deleteAnswerVariantBtn = new JButton("Delete");
+ JLabel QTypeLabel = new JLabel("Question type :");
+
moveDownAnswerVariantBtn = new JButton("Down");
moveUpAnswerVariantBtn = new JButton("Up");
@@ -198,7 +216,6 @@
cancelButton.addActionListener(this);
okButton.addActionListener(this);
sameAsTitleCheckBox.addChangeListener(this);
- oneAnswerCheckBox.addChangeListener(this);
editCaptionInHtmlBtn.addActionListener(this);
editQuestionInHtmlBtn.addActionListener(this);
editAnswerVariantInHtmlEditor.addActionListener(this);
@@ -220,34 +237,22 @@
jPanel1Layout.createSequentialGroup().addContainerGap()
.addComponent(titleLabel)).addGroup(
jPanel1Layout.createSequentialGroup().addContainerGap()
+ .addComponent(titleTextField, GroupLayout.DEFAULT_SIZE,
+ 364, Short.MAX_VALUE).addContainerGap()));
+ jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(
+ Alignment.LEADING).addGroup(
+ jPanel1Layout.createSequentialGroup().addComponent(titleLabel)
+ .addPreferredGap(ComponentPlacement.RELATED,
+ GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(titleTextField,
- javax.swing.GroupLayout.DEFAULT_SIZE, 364,
- Short.MAX_VALUE).addContainerGap()));
- jPanel1Layout
- .setVerticalGroup(jPanel1Layout
- .createParallelGroup(
- javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(
- jPanel1Layout
- .createSequentialGroup()
- .addComponent(titleLabel)
- .addPreferredGap(
- javax.swing.LayoutStyle.ComponentPlacement.RELATED,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- Short.MAX_VALUE)
- .addComponent(
- titleTextField,
- javax.swing.GroupLayout.PREFERRED_SIZE,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap()));
+ GroupLayout.PREFERRED_SIZE,
+ GroupLayout.DEFAULT_SIZE,
+ GroupLayout.PREFERRED_SIZE).addContainerGap()));
- captionPanel.setBorder(javax.swing.BorderFactory
- .createTitledBorder("Caption"));
+ captionPanel.setBorder(BorderFactory.createTitledBorder("Caption"));
sameAsTitleCheckBox.setText("Some as the title");
- javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(
- captionPanel);
+ GroupLayout jPanel2Layout = new GroupLayout(captionPanel);
captionPanel.setLayout(jPanel2Layout);
jPanel2Layout
.setHorizontalGroup(jPanel2Layout
@@ -281,97 +286,70 @@
30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap()));
- jPanel2Layout
- .setVerticalGroup(jPanel2Layout
- .createParallelGroup(
- javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(
- jPanel2Layout
- .createSequentialGroup()
- .addComponent(sameAsTitleCheckBox)
- .addPreferredGap(
- javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(
- jPanel2Layout
- .createParallelGroup(
- javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(
- editCaptionInHtmlBtn,
- javax.swing.GroupLayout.PREFERRED_SIZE,
- 20,
- javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(
- captionTextField,
- javax.swing.GroupLayout.PREFERRED_SIZE,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap()));
+ jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(
+ Alignment.LEADING).addGroup(
+ jPanel2Layout.createSequentialGroup().addComponent(
+ sameAsTitleCheckBox).addPreferredGap(
+ ComponentPlacement.RELATED).addGroup(
+ jPanel2Layout.createParallelGroup(Alignment.BASELINE)
+ .addComponent(editCaptionInHtmlBtn,
+ javax.swing.GroupLayout.PREFERRED_SIZE,
+ 20, GroupLayout.PREFERRED_SIZE)
+ .addComponent(captionTextField,
+ GroupLayout.PREFERRED_SIZE,
+ GroupLayout.DEFAULT_SIZE,
+ GroupLayout.PREFERRED_SIZE))
+ .addContainerGap()));
questionPanel.setBorder(javax.swing.BorderFactory
.createTitledBorder("Question"));
- oneAnswerCheckBox.setText("Only one correct answer");
- javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(
- questionPanel);
+ javax.swing.GroupLayout jPanel3Layout = new GroupLayout(questionPanel);
questionPanel.setLayout(jPanel3Layout);
+ jPanel3Layout.setHorizontalGroup(jPanel3Layout.createParallelGroup(
+ Alignment.LEADING).addGroup(
+ jPanel3Layout
+ .createSequentialGroup()
+ .addContainerGap()
+ .addComponent(QTypeLabel)
+ .addContainerGap(10, 10)
+ .addComponent(answerTypeComboBox)
+ .addContainerGap(283, Short.MAX_VALUE)
+ ).addGroup(
+ Alignment.TRAILING,
+ jPanel3Layout.createSequentialGroup().addContainerGap()
+ .addComponent(questionTextField, GroupLayout.DEFAULT_SIZE, 370, Short.MAX_VALUE)
+ .addPreferredGap(ComponentPlacement.RELATED)
+ .addComponent(editQuestionInHtmlBtn, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE)
+ .addContainerGap()));
jPanel3Layout
- .setHorizontalGroup(jPanel3Layout
- .createParallelGroup(
- javax.swing.GroupLayout.Alignment.LEADING)
- .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(
- javax.swing.GroupLayout.Alignment.LEADING)
+ .createParallelGroup(Alignment.LEADING)
.addGroup(
jPanel3Layout
.createSequentialGroup()
.addPreferredGap(
- javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(oneAnswerCheckBox)
+ ComponentPlacement.RELATED)
+ .addGroup(
+ jPanel3Layout.createParallelGroup(Alignment.BASELINE)
+ .addComponent(answerTypeComboBox, 20, 20, 20)
+ .addComponent(QTypeLabel)
+ )
.addPreferredGap(
- javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ ComponentPlacement.RELATED)
.addGroup(
jPanel3Layout
- .createParallelGroup(
- javax.swing.GroupLayout.Alignment.BASELINE)
+ .createParallelGroup(Alignment.BASELINE)
.addComponent(
editQuestionInHtmlBtn,
- javax.swing.GroupLayout.PREFERRED_SIZE,
+ GroupLayout.PREFERRED_SIZE,
20,
- javax.swing.GroupLayout.PREFERRED_SIZE)
+ GroupLayout.PREFERRED_SIZE)
.addComponent(
questionTextField,
- javax.swing.GroupLayout.PREFERRED_SIZE,
- javax.swing.GroupLayout.DEFAULT_SIZE,
- javax.swing.GroupLayout.PREFERRED_SIZE))
+ GroupLayout.PREFERRED_SIZE,
+ GroupLayout.DEFAULT_SIZE,
+ GroupLayout.PREFERRED_SIZE))
.addContainerGap()));
answersPanel.setBorder(javax.swing.BorderFactory
@@ -535,6 +513,8 @@
@Override
protected void saveChanges() {
SimpleQuestionModel itemModel = new SimpleQuestionModel();
+ simpleQuestionAnswersDataModel.setAnswerType(answerTypeComboBox
+ .getSelectedIndex());
manifestItem.setTitle(titleTextField.getText());
@@ -562,11 +542,5 @@
}
captionTextField.setEnabled(!sameAsTitleCheckBox.isSelected());
}
-
- if (e.getSource() == oneAnswerCheckBox) {
- simpleQuestionAnswersDataModel.setSingleVariant(oneAnswerCheckBox
- .isSelected());
- }
}
-
}
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionAnswersDataModel.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionAnswersDataModel.java 2008-05-24 14:29:24 UTC (rev 164)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionAnswersDataModel.java 2008-05-24 17:14:09 UTC (rev 165)
@@ -11,8 +11,12 @@
*/
private static final long serialVersionUID = 1L;
- private boolean singleVariant = false;
+ private int answerType = ANSWER_TYPE_CHOOSE_FEW;
+ public static final int ANSWER_TYPE_SELECT_ONE = 0;
+ public static final int ANSWER_TYPE_CHOOSE_FEW = 1;
+ public static final int ANSWER_TYPE_TYPE = 2;
+
public List<SimpleQuestionAnswer> answers = new ArrayList<SimpleQuestionAnswer>();
@Override
@@ -72,18 +76,14 @@
return arg1 > 0;
}
- public boolean isSingleVariant() {
- return singleVariant;
+ public int getAnswerType() {
+ return answerType;
}
- public void setSingleVariant(boolean singleVariant) {
- this.singleVariant = singleVariant;
+ public void setAnswerType(int answerType) {
+ this.answerType = answerType;
}
- public boolean getSingleVariant() {
- return this.singleVariant;
- }
-
@Override
public void setValueAt(Object arg0, int arg1, int arg2) {
if (arg1 == answers.size()) {
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java 2008-05-24 14:29:24 UTC (rev 164)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionData.java 2008-05-24 17:14:09 UTC (rev 165)
@@ -24,8 +24,7 @@
Element ans = root.addElement("answers");
- ans.addAttribute("singleVariant", String.valueOf(getAnswers()
- .getSingleVariant()));
+ ans.addAttribute("answerType", String.valueOf(getAnswers().getAnswerType()));
Iterator<SimpleQuestionAnswer> iter = getAnswers().answers.iterator();
@@ -89,9 +88,7 @@
.elementTextTrim("ShowOnSummaryPage"));
setShowOnSummaryPage(showOnSP);
- getAnswers().setSingleVariant(
- answers.attributeValue("singleVariant").equalsIgnoreCase(
- "true"));
+ getAnswers().setAnswerType(Integer.valueOf(answers.attributeValue("answerType")));
getAnswers().answers.clear();
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-24 14:29:24 UTC (rev 164)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-24 17:14:09 UTC (rev 165)
@@ -1,6 +1,7 @@
package edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion;
import java.util.Iterator;
+import java.util.List;
import edu.lnu.FireFly.FFManifest.TreeItem;
import edu.lnu.FireFly.FFManifest.item.Item;
@@ -13,12 +14,11 @@
import edu.lnu.FireFly.WebEditor.UserAnswerStatus.ScoredUserAnswerStatus;
import edu.lnu.FireFly.WebEditor.UserAnswerStatus.UserAnswerStatus;
+/**
+ * @author Yura
+ *
+ */
public class SimpleQuestionModel extends ResourcedItemModel {
- @Override
- public void showAnswerStatus(UserAnswerStatus answerStatus) {
- ((ScoredUserAnswerStatus)answerStatus).showStatus();
- }
-
public SimpleQuestionModel() {
modelName = "SimpleQuestionModel";
registerConfigDlg(new SimpleQuestionPropertiestsDlg());
@@ -52,14 +52,15 @@
SimpleQuestionData data = getData(item);
- for (int i = 0; i < data.getAnswers().answers.size(); i++) {
- double answerPoint = data.getAnswers().answers.get(i)
- .getAnswerPoint();
- if (answerPoint > 0) {
- result += answerPoint;
+ List<SimpleQuestionAnswer> answers = data.getAnswers().answers;
+
+ if (data.getAnswers().getAnswerType() != SimpleQuestionAnswersDataModel.ANSWER_TYPE_SELECT_ONE) {
+ result = getSum(result, answers, +1);
+ } else {
+ if (answers.size() > 0) {
+ result = getMax(answers);
}
}
-
return result;
}
@@ -69,34 +70,48 @@
SimpleQuestionData data = getData(item);
- for (int i = 0; i < data.getAnswers().answers.size(); i++) {
- double answerPoint = data.getAnswers().answers.get(i)
- .getAnswerPoint();
- if (answerPoint < 0) {
- result += answerPoint;
+ List<SimpleQuestionAnswer> answers = data.getAnswers().answers;
+
+ if (data.getAnswers().getAnswerType() != SimpleQuestionAnswersDataModel.ANSWER_TYPE_SELECT_ONE) {
+ result = getSum(result, answers, -1);
+ } else {
+ if (answers.size() > 0) {
+ result = getMin(answers);
}
}
-
return result;
}
@Override
public double getAnswerRawScore(TreeItem anItem, String[] userAnswers) {
-
SimpleQuestionData data = getData(anItem);
- if (userAnswers.length != 1
- || userAnswers[0].length() != data.getAnswers().answers.size()) {
+ List<SimpleQuestionAnswer> answers = data.getAnswers().answers;
+ if (userAnswers.length != 1 || (userAnswers[0].length() != answers.size() && data.getAnswers().getAnswerType() != SimpleQuestionAnswersDataModel.ANSWER_TYPE_TYPE)) {
return getAnswerMinScore(anItem);
}
String answer = userAnswers[0];
double result = 0d;
- for (int i = 0; i < data.getAnswers().answers.size(); i++) {
- if (answer.charAt(i) == '1') {
- result += data.getAnswers().answers.get(i).getAnswerPoint();
+ if (data.getAnswers().getAnswerType() != SimpleQuestionAnswersDataModel.ANSWER_TYPE_TYPE) {
+ for (int i = 0; i < answers.size(); i++) {
+ if (answer.charAt(i) == '1') {
+ result += answers.get(i).getAnswerPoint();
+
+ if (data.getAnswers().getAnswerType() != SimpleQuestionAnswersDataModel.ANSWER_TYPE_CHOOSE_FEW) {
+ // Need to avoid some king of hacking
+ break;
+ }
+ }
}
+ } else {
+ for (int i = 0; i < answers.size(); i++) {
+ if (answers.get(i).getAnswerText().equalsIgnoreCase(answer)){
+ result = answers.get(i).getAnswerPoint();
+ break;
+ }
+ }
}
return result;
@@ -116,6 +131,34 @@
return true;
}
+ private double getMax(List<SimpleQuestionAnswer> answers) {
+ double result;
+ result = answers.get(0).getAnswerPoint();
+
+ for (int i = 0; i < answers.size(); i++) {
+ double currentAnswerPoint = answers.get(i).getAnswerPoint();
+
+ if (currentAnswerPoint > result) {
+ result = currentAnswerPoint;
+ }
+ }
+ return result;
+ }
+
+ private double getMin(List<SimpleQuestionAnswer> answers) {
+ double result;
+ result = answers.get(0).getAnswerPoint();
+
+ for (int i = 0; i < answers.size(); i++) {
+ double currentAnswerPoint = answers.get(i).getAnswerPoint();
+
+ if (currentAnswerPoint < result) {
+ result = currentAnswerPoint;
+ }
+ }
+ return result;
+ }
+
@Override
public boolean getShowOnSummaryPageMenuVisible() {
return true;
@@ -126,12 +169,39 @@
return false;
}
+ /**
+ * @param result
+ * @param answers
+ * @param order
+ * If sign is 0, result is a sum of all elements. Else,
+ * result is a sum only of elements with the same sign with
+ * this "sign".
+ * @return
+ */
+ private double getSum(double result, List<SimpleQuestionAnswer> answers,
+ int sign) {
+ for (int i = 0; i < answers.size(); i++) {
+ double answerPoint = answers.get(i).getAnswerPoint();
+
+ if (sign == 0 || sign * answerPoint > 0) {
+ result += answerPoint;
+ }
+ }
+
+ return result;
+ }
+
@Override
public boolean isRemovable() {
return true;
}
@Override
+ public void showAnswerStatus(UserAnswerStatus answerStatus) {
+ ((ScoredUserAnswerStatus) answerStatus).showStatus();
+ }
+
+ @Override
protected void updateResourceFile(TreeItem anItem) {
Resource resource = WebEditor.instance.getManifest().resources
.findResourceByIdentifier(((Item) anItem).identifierref);
@@ -145,8 +215,8 @@
Iterator<SimpleQuestionAnswer> iter = itemData.getAnswers().answers
.iterator();
- String answers = "\r\nsetSingleVariant("
- + itemData.getAnswers().getSingleVariant() + ");\r\n";
+ String answers = "\r\nsetAnswerType("
+ + itemData.getAnswers().getAnswerType() + ");\r\n";
while (iter.hasNext()) {
SimpleQuestionAnswer answer = iter.next();
Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/UserAnswerStatus/ScoredUserAnswerStatus.java
===================================================================
--- WebEditor/src/edu/lnu/FireFly/WebEditor/UserAnswerStatus/ScoredUserAnswerStatus.java 2008-05-24 14:29:24 UTC (rev 164)
+++ WebEditor/src/edu/lnu/FireFly/WebEditor/UserAnswerStatus/ScoredUserAnswerStatus.java 2008-05-24 17:14:09 UTC (rev 165)
@@ -11,7 +11,7 @@
public class ScoredUserAnswerStatus extends UserAnswerStatus {
private String completion_status = "unknown";
private String success_status = "unknown";
-
+
public ScoredUserAnswerStatus(TreeItem anItem) {
super(anItem);
}
Modified: WebEditor/template/global/simpleQ.js
===================================================================
--- WebEditor/template/global/simpleQ.js 2008-05-24 14:29:24 UTC (rev 164)
+++ WebEditor/template/global/simpleQ.js 2008-05-24 17:14:09 UTC (rev 165)
@@ -1,7 +1,7 @@
-var singleAnswer=false;
+var answerType;
var answers=new Array();
-function setSingleVariant(singleVariant){
- singleAnswer = singleVariant;
+function setAnswerType(type){
+ answerType = type;
}
function addAnswer(_text, _point){
var answer = {
@@ -15,14 +15,21 @@
function show(){
var i;
- for (i=0; i < answers.length; i++){
- if (singleAnswer){
- document.write("<input type='radio' name='answer' id='" + answers[i].id + "' value='" + answers[i].id + "'>");
- } else {
- document.write("<input type='checkbox' id='" + answers[i].id + "'>");
- }
- document.write(answers[i].text);
- document.write("<BR>");
+ if (answerType != 2){
+ for (i=0; i < answers.length; i++){
+ if (answerType == 0){
+ document.write("<input type='radio' name='answer' id='" + answers[i].id + "' value='" + answers[i].id + "'>");
+ } else {
+ if (answerType == 1){
+ document.write("<input type='checkbox' id='" + answers[i].id + "'>");
+ }
+ }
+
+ document.write(answers[i].text);
+ document.write("<BR>");
+ }
+ } else {
+ document.write("<input type='text' name='answer' id='answer' value=''><br>");
}
}
@@ -31,14 +38,19 @@
var i;
var answer = "";
- for (i=0; i < answers.length; i++){
- var ans = document.getElementById(answers[i].id);
- if (ans.checked){
- answer += "1";
- } else {
- answer += "0";
- }
- }
+
+ if (answerType != 2){
+ for (i=0; i < answers.length; i++){
+ var ans = document.getElementById(answers[i].id);
+ if (ans.checked){
+ answer += "1";
+ } else {
+ answer += "0";
+ }
+ }
+ } else {
+ answer = document.getElementById("answer").value;
+ }
SetValue("cmi.answers.0.value", answer);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|