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); 
+    }
+}