annotate InstructionsPanel.java @ 0:4031cbb02f08

Initial import. Ignore-this: 87317e384f22bde48db996355191fa5f
author Marcus Pearce <m.pearce@gold.ac.uk>
date Tue, 18 May 2010 11:37:10 +0100
parents
children 0e030f32a6e2
rev   line source
m@0 1 /*=============================================================================
m@0 2 * File: InstructionsPanel.java
m@0 3 * Author: Marcus Pearce <m.pearce@gold.ac.uk>
m@0 4 * Created: <2007-12-05 10:57:31 marcusp>
m@0 5 * Time-stamp: <2007-12-14 16:29:55 marcusp>
m@0 6 *=============================================================================
m@0 7 */
m@0 8
m@0 9 import java.awt.*;
m@0 10 import java.awt.event.*;
m@0 11 import javax.swing.*;
m@0 12 import javax.swing.text.*;
m@0 13 import java.io.*;
m@0 14
m@0 15 public class InstructionsPanel extends JPanel {
m@0 16
m@0 17 /* invalid subject id */
m@0 18 public static final int INVALID_SUBJECT_ID = -1000;
m@0 19
m@0 20 /* variables */
m@0 21 private ExperimentGui gui;
m@0 22 private JTextField subjectIDField;
m@0 23 private JButton nextButton = new JButton();
m@0 24
m@0 25 /* accessors */
m@0 26 public JButton getNextButton() { return nextButton; }
m@0 27
m@0 28 /* constructor */
m@0 29 public InstructionsPanel (ExperimentGui eg) {
m@0 30
m@0 31 gui = eg;
m@0 32 Experiment exp = gui.getExperiment();
m@0 33
m@0 34 String file = exp.getInstructionsFile();
m@0 35 JScrollPane instructionsPane = createInstructionsPane(file);
m@0 36
m@0 37 JLabel label = new JLabel("Participant ID: ");
m@0 38 subjectIDField = new JTextField(10);
m@0 39
m@0 40 nextButton = new JButton("Continue");
m@0 41
m@0 42 JPanel subjectIDPane = new JPanel();
m@0 43 subjectIDPane.add(label);
m@0 44 subjectIDPane.add(subjectIDField);
m@0 45 subjectIDPane.add(nextButton);
m@0 46
m@0 47 this.setLayout (new BorderLayout());
m@0 48 this.add(instructionsPane, BorderLayout.CENTER);
m@0 49 this.add(subjectIDPane, BorderLayout.SOUTH);
m@0 50 }
m@0 51
m@0 52 /* methods */
m@0 53
m@0 54 public int getSubjectID() {
m@0 55 int subjID;
m@0 56 try {
m@0 57 subjID = Integer.parseInt(subjectIDField.getText());
m@0 58 } catch (NumberFormatException e) {
m@0 59 subjID = INVALID_SUBJECT_ID;
m@0 60 }
m@0 61 return subjID;
m@0 62 }
m@0 63
m@0 64 private JScrollPane createInstructionsPane(String instructionsFile) {
m@0 65
m@0 66 JEditorPane editorPane = new JEditorPane();
m@0 67
m@0 68 try {
m@0 69 FileReader reader = new FileReader(new File(instructionsFile));
m@0 70 editorPane.setEditable(false);
m@0 71 editorPane.setContentType("text/html");
m@0 72 editorPane.read(reader, null);
m@0 73 } catch (Exception e) {
m@0 74 System.out.println(e.getMessage());
m@0 75 }
m@0 76
m@0 77 JScrollPane editorScrollPane = new JScrollPane(editorPane);
m@0 78 editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
m@0 79 editorScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
m@0 80
m@0 81 editorScrollPane.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("Instructions"), BorderFactory.createEmptyBorder(5,5,5,5)));
m@0 82 editorScrollPane.setPreferredSize(new Dimension(300, 250));
m@0 83 editorScrollPane.setMinimumSize(new Dimension(10, 10));
m@0 84 return editorScrollPane;
m@0 85 }
m@0 86
m@0 87 public void addNextButtonListener(ActionListener al) {
m@0 88 nextButton.addActionListener(al);
m@0 89 }
m@0 90 }