view SubjectResults.java @ 47:be66ee2fe9fe

Added abstract class EndBlockPanel to deliver end of block messages (e.g. end of practice block). Added and implemented EndTestPanel which gives "thank you for participating" etc message at end of test.
author Carl Bussey <c.bussey@se10.qmul.ac.uk>
date Thu, 13 Jun 2013 18:33:34 +0100
parents 351b0c8b34ac
children
line wrap: on
line source
/*=============================================================================
 * File:       SubjectResults.java
 * Author:     Marcus Pearce <m.pearce@gold.ac.uk>
 * Created:    <2007-12-12 10:44:12 marcusp>
 * Time-stamp: <2011-11-10 19:13:32 marcusp>
 *=============================================================================
 */

import java.util.ArrayList; 
import java.util.Iterator;
import java.io.*; 

public class SubjectResults { 

    /* variables */ 
    private String subjectID; 
    private File outputFile, subjectDataFile; 
    private ArrayList results, subjectData; 
    private Experiment exp; 
    
    /* accessors */ 
    public String getSubjectID() { return subjectID; }
    public void setSubjectID(String id) { subjectID = id; } 
    public void setSubjectData (ArrayList sd) { subjectData = sd; }
    public void setSubjectDataFile(String id){
        subjectDataFile = new File(exp.RESULTS_DIRECTORY + File.separator + id + "_q" + exp.RESULTS_EXTENSION);
    }
    public void setOutputFile (String id) {
        outputFile = new File(exp.RESULTS_DIRECTORY + id + 
                              exp.RESULTS_EXTENSION); 
    }

    /* constructor */ 
    public SubjectResults(Experiment e) { 
        exp = e; 
        //subjectDataFile = new File(exp.SUBJECT_RESULTS_FILE);
        results = new ArrayList(); 
        subjectData = new ArrayList();
    }

    /* methods */ 
    public void addResult(MelodyResults mr) { 
        results.add(mr); 
    }

    public void writeResults() { 
        Iterator ri = results.iterator(); 
        boolean header = true;
        boolean append = false;
        while (ri.hasNext()) { 
            MelodyResults mResult = (MelodyResults)ri.next(); 
            mResult.writeResults(outputFile, header, append); 
            if (header) {
                header = false; 
                append = true;
            }
        }
    }

    public void writeSubjectData () {
        Writer writer = null;
        try {
            writer = new FileWriter (subjectDataFile, true);
        } catch (IOException e) {
            System.out.println("Could not write file: " + subjectDataFile.getPath());
            e.printStackTrace();
            return;
        }
        
        try {
            Iterator sji = subjectData.iterator(); 
            while(sji.hasNext()) { 
                String[] data = (String[])sji.next(); 
                writer.write(data[1] + ", ");
            }
            writer.write("\n"); 
            writer.close(); 
            
        } catch (IOException e) {
            System.out.println (e.getMessage());
            return;
        }
    }
}