package me.legrange.panstamp.gui.view; import java.text.DecimalFormat; import java.util.List; import me.legrange.panstamp.Endpoint; import me.legrange.panstamp.PanStamp; import me.legrange.panstamp.gui.model.EndpointDataSet; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; /** * * @author gideon */ public final class EndpointChart extends Chart { EndpointChart(EndpointDataSet eds) { super(title(eds.getEndpoint()), "Time", yAxisName(eds.getEndpoint()), eds); ep = eds.getEndpoint(); } @Override protected ValueAxis[] getYAxisFormat() { NumberAxis domainAxis = new NumberAxis(); domainAxis.setNumberFormatOverride(new DecimalFormat("0.0")); domainAxis.setAutoRange(true); return new ValueAxis[]{domainAxis}; } private static String title(Endpoint ep) { PanStamp dev = ep.getRegister().getDevice(); return String.format("%s[%d] - %s - %s", dev.getName(), dev.getAddress(), ep.getRegister().getName(), ep.getName()); } private static String yAxisName(Endpoint ep) { List<String> units = ep.getUnits(); if (units.isEmpty()) { return ep.getName(); } return String.format("%s (%s)", ep.getName(), units.get(0)); } private final Endpoint ep; }