1 package de.jaret.examples.timebars.millis.model;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import de.jaret.util.date.IntervalImpl;
7 import de.jaret.util.date.JaretDate;
8 import de.jaret.util.ui.timebars.model.DefaultRowHeader;
9 import de.jaret.util.ui.timebars.model.DefaultTimeBarModel;
10 import de.jaret.util.ui.timebars.model.DefaultTimeBarNode;
11 import de.jaret.util.ui.timebars.model.DefaultTimeBarRowModel;
12 import de.jaret.util.ui.timebars.model.PPSInterval;
13 import de.jaret.util.ui.timebars.model.TimeBarModel;
14
15 public class ModelCreator {
16 static final long ROWLENGTH = 60 * 1000;
17 static final long GAP = 10 * 1000;
18 static final int BURSTCOUNT = 4;
19 static final long LENGTH = 10;
20 static final int ROWCOUNT = 3;
21
22 List<JaretDate> _burstBegindates = new ArrayList<JaretDate>();
23
24 public TimeBarModel createModel() {
25 DefaultTimeBarModel model = new DefaultTimeBarModel();
26
27 JaretDate start = new JaretDate(0);
28
29 for (int r = 0; r < ROWCOUNT; r++) {
30 DefaultRowHeader header = new DefaultRowHeader("r" + r);
31 DefaultTimeBarRowModel tbr = new DefaultTimeBarRowModel(header);
32
33 JaretDate d = new JaretDate(0);
34
35 while (d.diffMilliSeconds(start) < ROWLENGTH) {
36
37 if (r == 0) {
38 _burstBegindates.add(d.copy());
39 }
40 for (int i = 0; i < BURSTCOUNT; i++) {
41 IntervalImpl interval = new IntervalImpl();
42 JaretDate begin = d.copy().advanceMillis((long) ((double) LENGTH / 2 * Math.random()));
43 interval.setBegin(begin);
44 interval.setEnd(begin.copy().advanceMillis(1 + (long) ((double) LENGTH * Math.random())));
45 tbr.addInterval(interval);
46 }
47
48
49 d.advanceMillis(GAP);
50 }
51 model.addRow(tbr);
52 }
53
54 System.out.println("model created min " + model.getMinDate() + " max " + model.getMaxDate() + " = total ms "
55 + (model.getMaxDate().getDate().getTime() - model.getMinDate().getDate().getTime()));
56 System.out.println("diff ms " + model.getMaxDate().diffMilliSeconds(model.getMinDate()));
57 return model;
58 }
59
60 public void createPPSIntervals(double pixelPerSecond, DefaultTimeBarNode scaleRow) {
61 for (int i = 0; i < _burstBegindates.size() - 2; i++) {
62 PPSInterval pps = new PPSInterval(pixelPerSecond / 200.0);
63 pps.setBegin(_burstBegindates.get(i).copy().advanceMillis(LENGTH * 3));
64 pps.setEnd(_burstBegindates.get(i + 1).copy().advanceMillis(-LENGTH * 3));
65
66 if (i==1) {
67 pps.setBreak(true);
68 }
69 System.out.println("pps interval " + pps.getBegin() + " -- " + pps.getEnd());
70 scaleRow.addInterval(pps);
71 }
72 }
73
74
75 }