Created: 2011-07-12 00:13
Updated: 2013-10-16 09:16


TimeGlider JSON - Java Stubs for Serialization

This is a simple project to give me a chance to serialize from Java to Timeglider's JSON format. It does not deserialize the data, as I currently have no use for it.

I've provided 3 base classes(Event, Legend, Timeline) and one serializer (GsonFormatter) that you can build to populate your timeline, then just throw it at Google's Gson object to generate your JSON format. Gson is a pretty nifty library, and makes much of this work a breeze.

How to Use

According to the documentation, Timeglider will take an array of timelines in and use those for display. Each Timeline is composed of a Legend class, which will show you the equivalent of a key in a map, where each Legend class is a title of what the icon displays, and a link to the .png file for it.

Each Timeline is mostly composed of Event instance, which you can create borrowing from Josh Bloch's revised builder pattern:

    Event e = new Event.EventBuilder("unique event id", "Event Title", new
                                      .title("title")       // all additional fields are optional
                                      .enddate(new Date())
                                      .build();             // But don't forget to do this

Rolling these into a timeline is pretty easy, too. To create a single timeline, create a new Timeline class:

    Timeline t = new Timeline.Builder("id_to_give", "Title of Timeline",
                                      List<Event> list_of_events)
                                      .focus_date(...)      // same as Event: all additional fields optional
                                      .build();             // make sure you do this, though

and finally, to create your TimeGlider JSON:

    GsonFormatter g = new GsonFormatter(new List<Timeline>(){ timelines });

    String timeglider_json = g.toJson();  // Ta Da!

Details about Timeglider can be found in the Information section.


Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more