From 078d75406ca983141627d87da5a49bd29abe4023 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Fri, 06 Sep 2019 17:52:08 -0400
Subject: [PATCH] FileObject big data.
---
timeflow/vis/timeline/AxisTicMarks.java | 223 ++++++++++++++++++++++++++++---------------------------
1 files changed, 114 insertions(+), 109 deletions(-)
diff --git a/timeflow/vis/timeline/AxisTicMarks.java b/timeflow/vis/timeline/AxisTicMarks.java
index 85a16dd..8c786e4 100755
--- a/timeflow/vis/timeline/AxisTicMarks.java
+++ b/timeflow/vis/timeline/AxisTicMarks.java
@@ -4,114 +4,119 @@
import timeflow.data.time.*;
-public class AxisTicMarks {
- public TimeUnit unit;
- public List<Long> tics;
-
- private static final TimeUnit[] units={
- TimeUnit.YEAR, TimeUnit.MONTH, TimeUnit.DAY, TimeUnit.HOUR, TimeUnit.MINUTE, TimeUnit.SECOND
- };
-
- private static final TimeUnit[] histUnits={
- TimeUnit.YEAR.times(100), TimeUnit.YEAR.times(50), TimeUnit.YEAR.times(25),
- TimeUnit.YEAR.times(10), TimeUnit.YEAR.times(5), TimeUnit.YEAR.times(2), TimeUnit.YEAR,
- TimeUnit.MONTH.times(6), TimeUnit.MONTH.times(3), TimeUnit.MONTH.times(2), TimeUnit.MONTH,
- TimeUnit.WEEK, TimeUnit.DAY.times(2), TimeUnit.DAY,
+public class AxisTicMarks
+{
+ public TimeUnit unit;
+ public List<Long> tics;
+ private static final TimeUnit[] units =
+ {
+ TimeUnit.YEAR, TimeUnit.MONTH, TimeUnit.DAY, TimeUnit.HOUR, TimeUnit.MINUTE, TimeUnit.SECOND, TimeUnit.REALTIME
+ };
+ private static final TimeUnit[] histUnits =
+ {
+ TimeUnit.YEAR.times(100), TimeUnit.YEAR.times(50), TimeUnit.YEAR.times(25),
+ TimeUnit.YEAR.times(10), TimeUnit.YEAR.times(5), TimeUnit.YEAR.times(2), TimeUnit.YEAR,
+ TimeUnit.MONTH.times(6), TimeUnit.MONTH.times(3), TimeUnit.MONTH.times(2), TimeUnit.MONTH,
+ TimeUnit.WEEK, TimeUnit.DAY.times(2), TimeUnit.DAY,
+ TimeUnit.HOUR,
+ TimeUnit.MINUTE,
+ TimeUnit.SECOND,
+ TimeUnit.REALTIME
+ };
- TimeUnit.HOUR,
- TimeUnit.MINUTE,
- TimeUnit.SECOND
- };
-
- public AxisTicMarks(TimeUnit unit, long start, long end)
- {
- this.unit=unit;
- tics=new ArrayList<Long>();
- RoughTime r=unit.roundDown(start);
- tics.add(r.getTime());
- do
- {
- unit.addTo(r);
- tics.add(r.getTime());
- } while (r.getTime()<end);
- }
-
-
-
- public static List<AxisTicMarks> allRelevant(Interval interval)
- {
- return allRelevant(interval.start, interval.end);
- }
-
- public static List<AxisTicMarks> allRelevant(long start, long end)
- {
- return allRelevant(start, end, 40);
- }
-
- public static AxisTicMarks histoTics(long start, long end)
- {
- for (int i=histUnits.length-1; i>=0; i--)
- {
- TimeUnit u=histUnits[i];
- long estimate=u.approxNumInRange(start, end);
- if (estimate<200 || i==0)
- {
- AxisTicMarks t=new AxisTicMarks(u, start, end);
- return t;
- }
- }
- return null;
- }
-
- public static List<AxisTicMarks> allRelevant(long start, long end, long maxTics)
- {
- List<AxisTicMarks> list=new ArrayList<AxisTicMarks>();
-
-
- for (int i=0; i<units.length; i++)
- {
- TimeUnit u=units[i];
- long estimate=u.approxNumInRange(start, end);
-
- if (estimate<maxTics)
- {
- AxisTicMarks t=new AxisTicMarks(u, start, end);
- if (list.size()>0)
- {
- AxisTicMarks last=list.get(0);
- if (last.tics.size()==t.tics.size())
- list.remove(0);
- }
- list.add(t);
-
- }
- }
- while (list.size()>2)
- list.remove(0);
-
- if (list.size()==0) // uh oh! must be many years. we will add in bigger increments.
- {
- long length=end-start;
- long size=365*24*60*60*1000L;
- int m=1;
- maxTics=15;
- while (m<2000000000 && length/(m*size)>maxTics)
- {
- if (length/(2*m*size)<=maxTics)
- {
- m*=2;
- break;
- }
- if (length/(5*m*size)<=maxTics)
- {
- m*=5;
- break;
- }
- m*=10;
- }
- AxisTicMarks t=new AxisTicMarks(TimeUnit.multipleYears(m), start, end);
- list.add(t);
- }
- return list;
- }
+ public AxisTicMarks(TimeUnit unit, long start, long end)
+ {
+ this.unit = unit;
+ tics = new ArrayList<Long>();
+ RoughTime r = unit.roundDown(start);
+ tics.add(r.getTime());
+ do
+ {
+ unit.addTo(r);
+ tics.add(r.getTime());
+ } while (r.getTime() < end);
+ }
+
+ public static List<AxisTicMarks> allRelevant(Interval interval)
+ {
+ return allRelevant(interval.start, interval.end);
+ }
+
+ public static List<AxisTicMarks> allRelevant(long start, long end)
+ {
+ return allRelevant(start, end, 4000);
+ }
+
+ public static AxisTicMarks histoTics(long start, long end)
+ {
+ for (int i = histUnits.length; --i >= 0;)
+ {
+ TimeUnit u = histUnits[i];
+ long estimate = u.approxNumInRange(start, end);
+ if (estimate < 200 || i == 0)
+ {
+ if (i == 17)
+ i = 17;
+
+ AxisTicMarks t = new AxisTicMarks(u, start, end);
+ return t;
+ }
+ }
+ return null;
+ }
+
+ public static List<AxisTicMarks> allRelevant(long start, long end, long maxTics)
+ {
+ List<AxisTicMarks> list = new ArrayList<AxisTicMarks>();
+
+ for (int i = 0; i < units.length; i++)
+ {
+ TimeUnit u = units[i];
+ long estimate = u.approxNumInRange(start, end);
+
+ if (estimate < maxTics)
+ {
+ AxisTicMarks t = new AxisTicMarks(u, start, end);
+ if (list.size() > 0)
+ {
+ AxisTicMarks last = list.get(0);
+ if (last.tics.size() == t.tics.size())
+ {
+ list.remove(0);
+ }
+ }
+ list.add(t);
+
+ }
+ }
+ while (list.size() > 2)
+ {
+ list.remove(0);
+ }
+
+ if (list.size() == 0) // uh oh! must be many years. we will add in bigger increments.
+ {
+ long length = end - start;
+ long size = 365 * 24 * 60 * 60 * 1000L;
+ int m = 1;
+ maxTics = 15;
+ while (m < 2000000000 && length / (m * size) > maxTics)
+ {
+ if (length / (2 * m * size) <= maxTics)
+ {
+ m *= 2;
+ break;
+ }
+ if (length / (5 * m * size) <= maxTics)
+ {
+ m *= 5;
+ break;
+ }
+ m *= 10;
+ }
+ AxisTicMarks t = new AxisTicMarks(TimeUnit.multipleYears(m), start, end);
+ list.add(t);
+ }
+ return list;
+ }
}
--
Gitblit v1.6.2