package com.byteowls.vaadin.chartjs.options.scale; import com.byteowls.vaadin.chartjs.utils.And; import com.byteowls.vaadin.chartjs.utils.JUtils; import com.byteowls.vaadin.chartjs.utils.JsonBuilder; import elemental.json.Json; import elemental.json.JsonObject; /** * * The following display formats are used to configure how different time units are formed into strings for the axis tick marks. * */ public class TimeDisplayFormats extends And<TimeScaleOptions> implements JsonBuilder { private String millisecond; private String second; private String minute; private String hour; private String day; private String week; private String month; private String quarter; private String year; public TimeDisplayFormats(TimeScaleOptions parent) { super(parent); } /** * Defaults to 'SSS [ms]' */ public TimeDisplayFormats millisecond(String millisecond) { this.millisecond = millisecond; return this; } /** * Defaults to 'h:mm:ss a' */ public TimeDisplayFormats second(String second) { this.second = second; return this; } /** * Defaults to 'h:mm:ss a' */ public TimeDisplayFormats minute(String minute) { this.minute = minute; return this; } /** * Defaults to 'MMM D, hA' */ public TimeDisplayFormats hour(String hour) { this.hour = hour; return this; } /** * Defaults to 'll' */ public TimeDisplayFormats day(String day) { this.day = day; return this; } /** * Defaults to 'll' */ public TimeDisplayFormats week(String week) { this.week = week; return this; } /** * Defaults to 'MMM YYYY' */ public TimeDisplayFormats month(String month) { this.month = month; return this; } /** * Defaults to '[Q]Q - YYYY' */ public TimeDisplayFormats quarter(String quarter) { this.quarter = quarter; return this; } /** * Defaults to 'YYYY' */ public TimeDisplayFormats year(String year) { this.year = year; return this; } @Override public JsonObject buildJson() { JsonObject map = Json.createObject(); JUtils.putNotNull(map, "millisecond", millisecond); JUtils.putNotNull(map, "second", second); JUtils.putNotNull(map, "minute", minute); JUtils.putNotNull(map, "hour", hour); JUtils.putNotNull(map, "day", day); JUtils.putNotNull(map, "week", week); JUtils.putNotNull(map, "month", month); JUtils.putNotNull(map, "quarter", quarter); JUtils.putNotNull(map, "year", year); return map; } }