private static Timeline getTimeline(UserData user) {
   Timeline tl = new Timeline();
   TimelinePoint lasttp = null;
   boolean truncated = false;
   for (Position p : user.getPositions()) {
     TimelinePoint tp = new TimelinePoint(p.getHourOfDay(), scaleX(p.getX()), scaleY(p.getY()));
     if (lasttp == null) lasttp = tp;
     else {
       if (!p.isTruncated()) {
         TimelineSegment s1 =
             new TimelineSegment(
                 lasttp,
                 tp,
                 (truncated || p.isTruncated() ? DrawTimelines.DASHED : DrawTimelines.SOLID));
         tl.getSegments().add(s1);
         lasttp = tp;
         truncated = p.isTruncated();
       } else truncated = true;
     }
   }
   return tl;
 }