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. |