Beispiel #1
0
  private void writeReport() {

    long deonCount = 0;
    long utilCount = 0;
    double deonTime = 0;
    double utilTime = 0;
    double totalTime = 0;

    SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy");
    String date = sdf.format(new Date());
    String[] questionsFile = this.file.getName().split("\\.");
    boolean newDate = false;
    File resultsFile = new File("Odpowiedzi_" + questionsFile[0] + "_" + date + ".csv");
    if (resultsFile.exists() == false) {
      newDate = true;
    }

    displayCenteredText("KONIEC BADANIA.\r\nDZIĘKUJEMY ZA UDZIAŁ.");

    for (Dilemma selected : selectedDilemmas) {
      System.out.println(selected);
      if ("TAK".equals(selected.getAnswer())) {
        utilCount++;
        utilTime += selected.getSeconds();
      }
      if ("NIE".equals(selected.getAnswer())) {
        deonCount++;
        deonTime += selected.getSeconds();
      }
      Long time = selected.getSeconds();
      totalTime += time;
    }

    if (utilCount > 0) {
      utilTime = ((double) utilTime / (double) utilCount);
      // utilTimeStr = String.format(new Locale("US"),"%.2f",utilTime);
      // this.textArea.append("\nŚredni czas decyzji utylitarnej (ms): " + utilTimeStr);
    }
    if (deonCount > 0) {
      deonTime = ((double) deonTime / (double) deonCount);
      // deonTimeStr = String.format(new Locale("US"),"%.2f",deonTime);
      // this.textArea.append("\nŚredni czas decyzji deontologicznej (ms): " + deonTimeStr);
    }

    try {

      BufferedWriter bufferedWriter =
          new BufferedWriter(new OutputStreamWriter(new FileOutputStream(resultsFile, true)));
      StringBuffer sb = new StringBuffer();
      if (newDate) {
        String[] fields =
            new String[] {
              "Kod osoby",
              "Data badania",
              "Imię",
              "Nazwisko",
              "Wiek",
              "Płeć",
              "Miejsce zamieszkania",
              "Praworęczność",
              "Lata edukacji",
              "Urazy głowy",
              "Leczenie neur.",
              "Leczenie psych.",
              "Zażywa leki psych.",
              "Kłopoty z pam.",
              "Uzależnienia",
              "Decyzja utylitarna",
              "Decyzja deontologiczna",
              "Średni czas decyzji utylitarnej (ms)",
              "Średni czas decyzji deontologicznej (ms)"
            };
        String fieldStr = StringUtils.join(fields, ";");
        sb.append(fieldStr).append("\r\n");
      }
      String[] userData =
          new String[] {
            ud.getCode(),
            date,
            ud.getName(),
            ud.getSurname(),
            new Integer(ud.getAge()).toString(),
            new Integer(ud.getGender()).toString(),
            new Integer(ud.getPlace()).toString(),
            new Integer(ud.getHandedness()).toString(),
            new Integer(ud.getEducationYears()).toString(),
            // Interview
            new Integer(ud.getHeadInjuries()).toString(),
            new Integer(ud.getNeurotreatment()).toString(),
            new Integer(ud.getPsychotreatment()).toString(),
            new Integer(ud.getOnDrugs()).toString(),
            new Integer(ud.getMemoryPb()).toString(),
            new Integer(ud.getAddictions()).toString(),
            new Long(utilCount).toString(),
            new Long(deonCount).toString(),
            new Double(utilTime).toString(),
            new Double(deonTime).toString()
          };

      String userDataStr = StringUtils.join(userData, ";");
      sb.append(userDataStr);
      sb.append("\r\n");
      bufferedWriter.append(sb);
      bufferedWriter.flush();
      bufferedWriter.close();
      sb.delete(0, sb.length());
    } catch (IOException ex) {
      Logger.getLogger(DylematorUI.class.getName()).log(Level.SEVERE, null, ex);
    }
    String totalTimeStr = String.format(new Locale("US"), "%.2f", totalTime / 1000);
    // this.textArea.append("\nCałkowity czas: " + totalTimeStr + " sek.\n");
  }