Mercurial > hg > mep
view InstructionsPanel.java @ 32:01926bcd6016
Add debug command line option
author | Jeremy Gow <jeremy.gow@gmail.com> |
---|---|
date | Tue, 13 Nov 2012 18:00:31 +0000 |
parents | 4031cbb02f08 |
children | 0e030f32a6e2 |
line wrap: on
line source
/*============================================================================= * 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); } }