Package com.it.loratek.sski.controller

Source Code of com.it.loratek.sski.controller.DataSetCreator

package com.it.loratek.sski.controller;

import java.util.ArrayList;

import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

import com.it.loratek.sski.parser.Skier;
import com.it.loratek.sski.parser.TimeToken;

public class DataSetCreator {
  public DataSetCreator() {
  }

  private static final String t1 = "0 - 5'";
  private static final String t2 = "5' - 10'";
  private static final String t3 = "10' - 15'";
  private static final String t4 = "15' - 20'";
  private static final String t5 = "20' - 25'";
  private static final String t6 = "25' - 30'";
  private static final String t7 = "30' - 45'";
  private static final String t8 = "35' - 40'";
  private static final String t9 = "40' - 45'";
  private static final String t10 = "45' - 50'";
  private static final String t11 = "50' - 55'";
  private static final String t12 = "55' - 60'";
  private static final String t13 = "60' - 65'";
  private static final String t14 = "65' - 70'";
  private static final String t15 = "75' - 80'";

  private static final String at1 = "0 - 10'";
  private static final String at2 = "10' - 20'";
  private static final String at3 = "20' - 30'";
  private static final String at4 = "30' - 40'";
  private static final String at5 = "40' - 50'";
  private static final String at6 = "50' - 60'";
  private static final String at7 = "60' - 70'";
  private static final String at8 = "80' - 90'";

  private final static String time1 = "0 - 10";
  private final static String time2 = "10 - 20";
  private final static String time3 = "20 - 30";
  private final static String time4 = "30 - 40";
  private final static String time5 = "40 - 50";
  private final static String time6 = "50 - 60";
  private final static String time7 = "60 - 70";
  private final static String time8 = "70 - 80";

  private static final String[] t_5 = { t1, t2, t3, t4, t5, t6, t7, t8, t9,
      t10, t11, t12, t13, t14, t15 };

  private static final String[] t_10 = { at1, at2, at3, at4, at5, at6, at7,
      at7, at8 };

  private static final String[] perc_time = { time1, time2, time3, time4,
      time5, time6, time7, time8 };

  private int[][] values;
  private int[] stopped;

  public DefaultCategoryDataset createDirectionDataset(boolean is10,
      int[] stopped, int[][] arr, String[] label, String direzione) {
   
    values = arr;
    this.stopped = stopped;
   
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    String[] t = null;
    if (is10)
      t = t_10;
    else
      t = t_5;
    for (int i = 0; i < values.length; i++) {
      for (int j = 0; j < values[i].length; j++) {
        dataset.addValue(values[i][j], direzione + label[i], t[j]);
      }
    }
    for (int j = 0; j < stopped.length; j++) {
      dataset.addValue(stopped[j], "sosta in pista", t[j]);
    }
    return dataset;
  }

  public XYDataset createDensityDataset(ArrayList<TimeToken> list) {
    XYSeries series = new XYSeries("Data");
    int x = 5;
    for (TimeToken q : list) {
      series.add(x, q.getList().size());
      x += 5;
    }
    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(series);

    return dataset;

  }
 
  public DefaultCategoryDataset createSpeedPercentDataset(boolean is10,
      ArrayList<Skier> list) {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    double [] speeds = new double[6];
    int count = 6;
    for(int z=5;z>=0;z--){
      speeds[z] = computePercent(list, 10*count);
      dataset.addValue(speeds[z], "Intervalli", perc_time[z]);
      count--;
    }
    double[][] d = new double[1][];
    d[0] = new double[speeds.length];
    for (int i = 0; i < speeds.length; i++) {
      d[0][i] = speeds[i];
    }
    return dataset;
  }
  public DefaultCategoryDataset createMaxSpeedPercentDataset(boolean is10,
      ArrayList<Skier> list) {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    double [] speeds = new double[6];
    int count = 6;
    for(int z=5;z>=0;z--){
      speeds[z] = computeMaxPercent(list, count);
      dataset.addValue(speeds[z], "Intervalli", perc_time[z]);
      count--;
    }
    double[][] d = new double[1][];
    d[0] = new double[speeds.length];
    for (int i = 0; i < speeds.length; i++) {
      d[0][i] = speeds[i];
    }
    return dataset;
  }
  private double computePercent(ArrayList<Skier> list, int perc) {
    int count = 0;
    for(int i=0;i<list.size();i++){
      if(list.get(i).getMedSpeed() < perc && list.get(i).getMedSpeed() > (perc -10))
        count++;
    }
    return ((double)((double)count/(double)list.size()))*100;
  }
  private double computeMaxPercent(ArrayList<Skier> list, int speed) {
    int count = 0;
    for(int i=0;i<list.size();i++){
      int max = 0;
      for(int j=0;j< list.get(i).getSpeed().size();j++){
        double temp = Double.parseDouble(list.get(i).getSpeed().get(j));
        if(temp > max){
          max = (int)temp;
        }
      }
      if(max < speed*10 && max > (speed*10)-10)
        count++;
    }
    return ((double)((double)count/(double)list.size()))*100;
  }

 
 
  private DefaultCategoryDataset createDirectionCategoryDataset(boolean is10) {

    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    String[] t = null;
    if (is10)
      t = t_10;
    else
      t = t_5;
    for (int i = 0; i < values.length; i++) {
      for (int j = 0; j < values[i].length; j++) {
        dataset.addValue(values[i][j], "verso " + i, t[j]);
      }
    }
    for (int j = 0; j < values[0].length; j++) {
      dataset.addValue(stopped[j], "sosta in pista", t[j]);
    }
    return dataset;
  }

}
TOP

Related Classes of com.it.loratek.sski.controller.DataSetCreator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.