Package com.it.loratek.sski.controller

Examples of com.it.loratek.sski.controller.DataSetCreator


            JOptionPane.showMessageDialog(AbstractFrame.this,
                "XML non parsato", SORRY,
                JOptionPane.ERROR_MESSAGE);
            return;
          }
          DataSetCreator datasetCreator = new DataSetCreator();
          if (DIREZIONI_CONFERMATE) {
            ArrayList<Skier> skiersList = editPanel.getSkiersList();

            // prepare direction graph data

            // per ogni MATCH prendo tutte le radioEntrate e calcolo
            // per
            // ognuna
            // quanti escono dalle radioUscite

            HashMap<Integer, ArrayList<Skier>> skierEntranceMap = new HashMap<Integer, ArrayList<Skier>>();
            HashMap<Integer, ArrayList<Skier>> skierExitMap = new HashMap<Integer, ArrayList<Skier>>();

            ArrayList<DirectionData> directions = new ArrayList<DirectionData>();

            for (Integer intein : enters) {
              DirectionData dd = new DirectionData(intein);

              ArrayList<Skier> temp = new ArrayList<Skier>();

              ArrayList<Skier> entrate = new ArrayList<Skier>();

              ClickPolygon pEnter = editPanel.getPolygonMap()
                  .get(intein);
              for (Skier s : skiersList) {
                Point2D pN = pN(s.getPixmapX().get(0), s
                    .getPixmapY().get(0));
                if (pEnter.contains(pN)) {
                  entrate.add(s);
                  temp.add(s);
                }
              }
              skierEntranceMap.put(intein, entrate);

              for (Integer inteout : exits) {
                ExitDirectionData edd = new ExitDirectionData(
                    inteout);

                ArrayList<Skier> uscite = new ArrayList<Skier>();

                ArrayList<Skier> fnl = new ArrayList<Skier>();
                ClickPolygon pExit = editPanel.getPolygonMap()
                    .get(inteout);
                // conto per questo poligono quanti skiers
                // escono
                for (Skier s : skiersList) {
                  Point2D pN = pN(
                      s.getPixmapX().get(
                          s.getPixmapX().size() - 1),
                      s.getPixmapY().get(
                          s.getPixmapX().size() - 1));
                  if (pExit.contains(pN)) {
                    uscite.add(s);
                  }
                }
                // aggiungo ID poligono e numero di skiers che
                // sono usciti nella mappa delle radioUscite
                skierExitMap.put(inteout, uscite);

                for (Skier s : temp) {
                  Point2D pN = pN(
                      s.getPixmapX().get(
                          s.getPixmapX().size() - 1),
                      s.getPixmapY().get(
                          s.getPixmapX().size() - 1));
                  if (pExit.contains(pN)) {
                    fnl.add(s);
                  }
                }
                edd.setListOfTraks(fnl);
                dd.getListOfTo().add(edd);
              }

              directions.add(dd);
            }

            double f = Double.parseDouble(skiersList
                .get(skiersList.size() - 1).getFrame().get(0));
            int tokens = ((int) f / 15000) + 1;

            /* PROVENIENZA SCIATORI */

            // calcolo la lista di matchdata radioEntrate
            ArrayList<MatchData> entersMatch = new ArrayList<MatchData>();
            for (Integer id : skierEntranceMap.keySet())
              entersMatch.add(computeMatchTokens(id, tokens,
                  skierEntranceMap.get(id), TOKEN_SIZE));
            // creo il dataset
            String[] labels = new String[enters.size()];
            for (int i = 0; i < enters.size(); i++) {
              labels[i] = enters.get(i).toString();
            }
            DefaultCategoryDataset enterDirectionDataset = datasetCreator
                .createDirectionDataset(false, new int[] {},
                    computeReg(entersMatch), labels,
                    "entrati da ");
            // creao il grafico
            ProvenienzaChartCreator enterDirectionFactory = new ProvenienzaChartCreator(
                enterDirectionDataset, "Provenienza sciatori");
            JFreeChart enterDirectionChart = enterDirectionFactory
                .createChart();
            enterDirectionPanel = new ChartPanel(
                enterDirectionChart);
            enterDirectionPanel.setBorder(BorderFactory
                .createLineBorder(Color.RED));
            CategoryPlot cp = enterDirectionChart.getCategoryPlot();

            BarRenderer renderer = (BarRenderer) cp.getRenderer();
            // for (int c = 0; c < matchList.size(); c++) {
            // renderer.setSeriesPaint(c, matchList.get(c)
            // .getColor());
            // }
            enterDirectionPanel.setPreferredSize(new Dimension(400,
                300));
            enterDirectionPanel.setRangeZoomable(false);

            /* DIREZIONI SCIATORI RIPARTITI DA PISTA */

            // calcolo la lista di matchdata radioUscite
            ArrayList<MatchData> exitsMatch = new ArrayList<MatchData>();
            for (Integer id : skierExitMap.keySet())
              exitsMatch.add(computeMatchTokens(id, tokens,
                  skierExitMap.get(id), TOKEN_SIZE));

            // creo il dataset
            labels = new String[exits.size()];
            for (int i = 0; i < exits.size(); i++) {
              labels[i] = exits.get(i).toString();
            }
            DefaultCategoryDataset exitDirectionDataset = datasetCreator
                .createDirectionDataset(false,
                    computeStopped(exitsMatch),
                    computeReg(exitsMatch), labels,
                    "verso ");
            // creao il grafico
            DirectionChartCreator exitDirectionFactory = new DirectionChartCreator(
                exitDirectionDataset,
                "Direzione sciatori ripartiti da pista");
            JFreeChart exitDirectionChart = exitDirectionFactory
                .createChart();

            exitDirectionPanel = new ChartPanel(exitDirectionChart);

            exitDirectionPanel.setPreferredSize(new Dimension(400,
                300));
            exitDirectionPanel.setRangeZoomable(false);

            exitDirectionPanel.setBorder(BorderFactory
                .createLineBorder(Color.RED));

            /* DIREZIONI SCIATORI PROVENDIENTI DA */

            // calcolo la lista di datamatch
            ArrayList<DirectionMatchData> directionmatchlist = new ArrayList<DirectionMatchData>();
            listOfMatch = new ArrayList<ChartPanel>();

            for (DirectionData data : directions) {

              DirectionMatchData direction = new DirectionMatchData();
              direction.setFrom(data.getFrom());
              for (ExitDirectionData extdata : data.getListOfTo()) {
                direction.add(computeMatchTokens(
                    extdata.getTo(), tokens,
                    extdata.getListOfTraks(), TOKEN_SIZE));
              }
              directionmatchlist.add(direction);
            }

            // creo il dataset
            for (DirectionMatchData dirmatch : directionmatchlist) {
              labels = new String[dirmatch.listOfTo.size()];
              for (int i = 0; i < dirmatch.getListOfTo().size(); i++) {
                labels[i] = String.valueOf(dirmatch
                    .getListOfTo().get(i).getId());
              }
              DefaultCategoryDataset directionDataset = datasetCreator
                  .createDirectionDataset(false,
                      computeStopped(dirmatch
                          .getListOfTo()),
                      computeReg(dirmatch.getListOfTo()),
                      labels, "verso ");

              // creao il grafico
              DirectionChartCreator directionFactory = new DirectionChartCreator(
                  directionDataset,
                  "Direzione sciatori proveniente da "
                      + dirmatch.getFrom());
              JFreeChart directionChart = directionFactory
                  .createChart();
              ChartPanel directionPanel = new ChartPanel(
                  directionChart);

              directionPanel.setBorder(BorderFactory
                  .createLineBorder(Color.RED));

              directionPanel.setPreferredSize(new Dimension(400,
                  300));
              directionPanel.setRangeZoomable(false);

              listOfMatch.add(directionPanel);

            }

          }

          CategoryDataset speedPercData = datasetCreator
              .createSpeedPercentDataset(false,
                  new ArrayList<Skier>(skiersMap.values()));

          CategoryDataset speedMaxData = datasetCreator
              .createMaxSpeedPercentDataset(false,
                  new ArrayList<Skier>(skiersMap.values()));
          new ArrayList<Skier>(skiersMap.values());

          XYDataset densityData = datasetCreator
              .createDensityDataset(parser.getTimeTokenListList());

          SpeedPercentChartCreator percSpeedFactory = new SpeedPercentChartCreator(
              speedPercData);
          SpeedMaxChartCreator maxSpeedFactory = new SpeedMaxChartCreator(
View Full Code Here


public class ProvenienzaChartCreator extends ChartCreator  {
  private CategoryDataset dataset;
  private String title;
  public ProvenienzaChartCreator(CategoryDataset dataset, String title) {

    DataSetCreator d = new DataSetCreator();

      this.dataset = dataset;
      this.title = title;
  }
View Full Code Here

  private CategoryDataset dataset;
  private String title;
 
  public DirectionChartCreator(CategoryDataset dataset, String title) {

    DataSetCreator d = new DataSetCreator();

      this.dataset = dataset;
      this.title = title;
  }
View Full Code Here

TOP

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

Copyright © 2018 www.massapicom. 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.