JavaTest.java
01 package jspkurs.aufg.kap2;
02 
03 import java.beans.XMLDecoder;
04 import java.io.Serializable;
05 import java.util.Iterator;
06 import java.util.List;
07 
08 /**
09  *
10  @author Hans Joachim Herbertz
11  * @created 09.04.2003
12  */
13 public class JavaTest implements Serializable {
14 
15   private List testItems = null;
16   private int currentPage = 0;
17 
18   /**
19    * Constructor for JavaTest.
20    */
21   public JavaTest() {
22     super();
23     XMLDecoder decoder =
24       new XMLDecoder(
25         getClass().getResourceAsStream(
26           "/jspkurs/aufg/kap2/TestItems.xml"));
27     testItems = (Listdecoder.readObject();
28     decoder.close();
29   }
30 
31   public String getQuestion() {
32     return ((JavaTestItemtestItems.get(currentPage)).getQuestion();
33   }
34 
35   public String[] getAnswers() {
36     return ((JavaTestItemtestItems.get(currentPage)).getAnswers();
37   }
38 
39   public void setAnswer(Integer selected) {
40     ((JavaTestItemtestItems.get(currentPage)).setUserSelect(selected);
41     currentPage=Math.min(testItems.size()-1,++currentPage);
42 
43   }
44   public int getCurrentPageNo() {
45     return currentPage;
46   }
47   public boolean isResolved() {
48     return ((JavaTestItem)testItems.get(testItems.size()-1)).getUserSelect()!=null;
49   }
50   public String getResult() {
51     StringBuffer buffer = new StringBuffer();
52     buffer.append(
53       "<tr><th>Frage</th><th>Ihre Antwort</th><th>L&ouml;sung</th></tr>\n");
54     Iterator it = testItems.iterator();
55     int goodAnswers = 0;
56     while (it.hasNext()) {
57       JavaTestItem item = (JavaTestItemit.next();
58       buffer.append("<tr><td>" + item.getQuestion() "</td>\n");
59       buffer.append(
60         "<td>"
61           + item.getAnswers()[item.getUserSelect().intValue()]
62           "</td>\n");
63       buffer.append(
64         "<td>"
65           + item.getAnswers()[item.getSolution().intValue()]
66           "</td></tr>\n");
67       if (item.getSolution().equals(item.getUserSelect())) {
68         goodAnswers++;
69       }
70     }
71     buffer.append(
72       "<tr><td>Richtige Antworten:</td><td>"
73         + goodAnswers
74         "</td><td>"
75         + testItems.size()
76         "</td></tr>");
77     return buffer.toString();
78   }
79 
80   public String toString() {
81     return "CurrentPage=" + currentPage + " testItems=" + testItems;
82   }
83 }