implemented TimePlotLabeler

master
Niclas Thobaben 2018-02-14 11:10:42 +01:00
parent 7e95a9d4f0
commit f45db5f242
1 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,50 @@
package org.hwo.ui.diagram;
import org.hwo.ui.JDiagram;
public class TimePlotLabeler implements PlotLabeler{
@Override
public String getOrdinateLabel(JDiagram diagram, int ordinate, Double value) {
if (value == null)
return "";
if (value.isNaN())
return "";
Double window = diagram.getScaler(ordinate).getWindow();
int digits = ((Double)Math.log10(window)).intValue();
digits -= 4;
if (digits < 0){
return String.format(
String.format("%%.%df",-digits),
value
);
} else if (digits == 0){
return String.format("%1.2f",value);
} else {
return String.format(
String.format("%%%d.2f",digits),
value
);
}
}
@Override
public String getAbzisseLabel(JDiagram diagram, Double pos) {
//pos == seconds
int hour, minute, second, millisecond;
hour = (int)(pos / 3600);
minute = ((int)(pos / 60) % 60);
second = (int)Math.round(pos) % 60;
millisecond = (int)(pos * 1000) % 1000;
String sh, sm, ss, sms;
sh = hour < 10? String.format("0%d", hour) : String.format("%d", hour);
sm = minute < 10? String.format("0%d", minute) : String.format("%d", minute);
ss = second < 10? String.format("0%d", second) : String.format("%d", second);
sms = millisecond < 10? String.format("0%d", millisecond) : String.format("%d", millisecond);
return sh + ":" + sm + ":" + ss + "." + sms;
}
}