Mercurial > hg > mep
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/InstructionsPanel.java Tue May 18 11:37:10 2010 +0100 @@ -0,0 +1,90 @@ +/*============================================================================= + * File: InstructionsPanel.java + * Author: Marcus Pearce <m.pearce@gold.ac.uk> + * Created: <2007-12-05 10:57:31 marcusp> + * Time-stamp: <2007-12-14 16:29:55 marcusp> + *============================================================================= + */ + +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.text.*; +import java.io.*; + +public class InstructionsPanel extends JPanel { + + /* invalid subject id */ + public static final int INVALID_SUBJECT_ID = -1000; + + /* variables */ + private ExperimentGui gui; + private JTextField subjectIDField; + private JButton nextButton = new JButton(); + + /* accessors */ + public JButton getNextButton() { return nextButton; } + + /* constructor */ + public InstructionsPanel (ExperimentGui eg) { + + gui = eg; + Experiment exp = gui.getExperiment(); + + String file = exp.getInstructionsFile(); + JScrollPane instructionsPane = createInstructionsPane(file); + + JLabel label = new JLabel("Participant ID: "); + subjectIDField = new JTextField(10); + + nextButton = new JButton("Continue"); + + JPanel subjectIDPane = new JPanel(); + subjectIDPane.add(label); + subjectIDPane.add(subjectIDField); + subjectIDPane.add(nextButton); + + this.setLayout (new BorderLayout()); + this.add(instructionsPane, BorderLayout.CENTER); + this.add(subjectIDPane, BorderLayout.SOUTH); + } + + /* methods */ + + public int getSubjectID() { + int subjID; + try { + subjID = Integer.parseInt(subjectIDField.getText()); + } catch (NumberFormatException e) { + subjID = INVALID_SUBJECT_ID; + } + return subjID; + } + + private JScrollPane createInstructionsPane(String instructionsFile) { + + JEditorPane editorPane = new JEditorPane(); + + try { + FileReader reader = new FileReader(new File(instructionsFile)); + editorPane.setEditable(false); + editorPane.setContentType("text/html"); + editorPane.read(reader, null); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + + JScrollPane editorScrollPane = new JScrollPane(editorPane); + editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + editorScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + + editorScrollPane.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("Instructions"), BorderFactory.createEmptyBorder(5,5,5,5))); + editorScrollPane.setPreferredSize(new Dimension(300, 250)); + editorScrollPane.setMinimumSize(new Dimension(10, 10)); + return editorScrollPane; + } + + public void addNextButtonListener(ActionListener al) { + nextButton.addActionListener(al); + } +}