package org.gephi.desktop.datalab.utils.componentproviders; import java.util.ArrayList; import org.gephi.desktop.datalab.utils.GraphModelProvider; import org.gephi.graph.api.Interval; import org.gephi.graph.api.TimeFormat; import org.gephi.graph.api.types.IntervalMap; import org.jdesktop.swingx.JXTable; import org.joda.time.DateTimeZone; /** * * @author Eduardo Ramos */ public class IntervalMapSparklinesGraphicsComponentProvider extends AbstractSparklinesGraphicsComponentProvider { public IntervalMapSparklinesGraphicsComponentProvider(GraphModelProvider graphModelProvider, JXTable table) { super(graphModelProvider, table); } @Override public String getTextFromValue(Object value) { if (value == null) { return null; } TimeFormat timeFormat = graphModelProvider.getGraphModel().getTimeFormat(); DateTimeZone timeZone = graphModelProvider.getGraphModel().getTimeZone(); return ((IntervalMap) value).toString(timeFormat, timeZone); } @Override public Number[][] getSparklinesXAndYNumbers(Object value) { IntervalMap intervalMap = (IntervalMap) value; ArrayList<Number> xValues = new ArrayList<>(); ArrayList<Number> yValues = new ArrayList<>(); if (intervalMap == null) { return new Number[2][0]; } Interval[] intervals = intervalMap.toKeysArray(); Object[] values = intervalMap.toValuesArray(); Number n; for (int i = 0; i < intervals.length; i++) { n = (Number) values[i]; if (n != null) { xValues.add(intervals[i].getLow()); yValues.add(n); } } return new Number[][]{xValues.toArray(new Number[0]), yValues.toArray(new Number[0])}; } }