Add time to sample tooltip when available
This commit is contained in:
parent
37c1bcb590
commit
4b2d4ca837
@ -3,6 +3,7 @@ package info.openrocket.swing.gui.plot;
|
|||||||
import info.openrocket.core.l10n.Translator;
|
import info.openrocket.core.l10n.Translator;
|
||||||
import info.openrocket.core.simulation.DataBranch;
|
import info.openrocket.core.simulation.DataBranch;
|
||||||
import info.openrocket.core.simulation.DataType;
|
import info.openrocket.core.simulation.DataType;
|
||||||
|
import info.openrocket.core.simulation.FlightDataType;
|
||||||
import info.openrocket.core.startup.Application;
|
import info.openrocket.core.startup.Application;
|
||||||
import info.openrocket.core.unit.Unit;
|
import info.openrocket.core.unit.Unit;
|
||||||
import info.openrocket.core.unit.UnitGroup;
|
import info.openrocket.core.unit.UnitGroup;
|
||||||
@ -197,6 +198,7 @@ public abstract class Plot<T extends DataType, B extends DataBranch<T>, C extend
|
|||||||
StandardXYToolTipGenerator tooltipGenerator = new StandardXYToolTipGenerator() {
|
StandardXYToolTipGenerator tooltipGenerator = new StandardXYToolTipGenerator() {
|
||||||
@Override
|
@Override
|
||||||
public String generateToolTip(XYDataset dataset, int series, int item) {
|
public String generateToolTip(XYDataset dataset, int series, int item) {
|
||||||
|
|
||||||
XYSeriesCollection collection = data[finalAxisno];
|
XYSeriesCollection collection = data[finalAxisno];
|
||||||
if (collection.getSeriesCount() == 0) {
|
if (collection.getSeriesCount() == 0) {
|
||||||
return null;
|
return null;
|
||||||
@ -209,15 +211,24 @@ public abstract class Plot<T extends DataType, B extends DataBranch<T>, C extend
|
|||||||
int dataTypeIdx = ser.getDataIdx();
|
int dataTypeIdx = ser.getDataIdx();
|
||||||
DataType type = config.getType(dataTypeIdx);
|
DataType type = config.getType(dataTypeIdx);
|
||||||
|
|
||||||
|
String nameT = FlightDataType.TYPE_TIME.getName();
|
||||||
|
double dataT = Double.NaN;
|
||||||
|
List<Double> time = allBranches.get(ser.getBranchIdx()).get((T)FlightDataType.TYPE_TIME);
|
||||||
|
if (null != time) {
|
||||||
|
dataT = time.get(item);
|
||||||
|
}
|
||||||
|
String unitT = FlightDataType.TYPE_TIME.getUnitGroup().getDefaultUnit().toString();
|
||||||
|
|
||||||
String nameX = config.getDomainAxisType().getName();
|
String nameX = config.getDomainAxisType().getName();
|
||||||
String unitX = domainUnit.getUnit();
|
|
||||||
double dataX = dataset.getXValue(series, item);
|
double dataX = dataset.getXValue(series, item);
|
||||||
|
String unitX = domainUnit.getUnit();
|
||||||
|
|
||||||
String nameY = type.toString();
|
String nameY = type.toString();
|
||||||
double dataY = dataset.getYValue(series, item);
|
double dataY = dataset.getYValue(series, item);
|
||||||
String unitY = ser.getUnit();
|
String unitY = ser.getUnit();
|
||||||
|
|
||||||
return formatSampleTooltip(name,
|
return formatSampleTooltip(name,
|
||||||
|
nameT, dataT, unitT,
|
||||||
nameX, dataX, unitX,
|
nameX, dataX, unitX,
|
||||||
nameY, dataY, unitY);
|
nameY, dataY, unitY);
|
||||||
}
|
}
|
||||||
@ -306,6 +317,7 @@ public abstract class Plot<T extends DataType, B extends DataBranch<T>, C extend
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected String formatSampleTooltip(String dataName,
|
protected String formatSampleTooltip(String dataName,
|
||||||
|
String nameT, double dataT, String unitT,
|
||||||
String nameX, double dataX, String unitX,
|
String nameX, double dataX, String unitX,
|
||||||
String nameY, double dataY, String unitY) {
|
String nameY, double dataY, String unitY) {
|
||||||
|
|
||||||
@ -318,20 +330,28 @@ public abstract class Plot<T extends DataType, B extends DataBranch<T>, C extend
|
|||||||
|
|
||||||
sb.append(String.format("<b><i>%s</i></b><br>", dataName));
|
sb.append(String.format("<b><i>%s</i></b><br>", dataName));
|
||||||
|
|
||||||
sb.append(String.format(strFormat, nameX, df_x.format(dataX), unitX));
|
// If I was given valid Y data, put it in tooltip
|
||||||
|
|
||||||
if (!Double.isNaN(dataY)) {
|
if (!Double.isNaN(dataY)) {
|
||||||
DecimalFormat df_y = DecimalFormatter.df(dataY, 2, false);
|
DecimalFormat df_y = DecimalFormatter.df(dataY, 2, false);
|
||||||
sb.append(String.format(strFormat, nameY, df_y.format(dataY), unitY));
|
sb.append(String.format(strFormat, nameY, df_y.format(dataY), unitY));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Assuming X data is valid
|
||||||
|
sb.append(String.format(strFormat, nameX, df_x.format(dataX), unitX));
|
||||||
|
|
||||||
|
// If I've got time data, and my domain isn't time, add time to tooltip
|
||||||
|
if (!Double.isNaN(dataT) && !nameX.equals(nameT)) {
|
||||||
|
DecimalFormat df_t = DecimalFormatter.df(dataT, 2, false);
|
||||||
|
sb.append(String.format(strFormat, nameT, df_t.format(dataT), unitT));
|
||||||
|
}
|
||||||
|
|
||||||
sb.append("</html>");
|
sb.append("</html>");
|
||||||
|
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String formatSampleTooltip(String dataName, String nameX, double dataX, String unitX) {
|
protected String formatSampleTooltip(String dataName, String nameX, double dataX, String unitX) {
|
||||||
return formatSampleTooltip(dataName, nameX, dataX, unitX, "", Double.NaN, "");
|
return formatSampleTooltip(dataName, "", Double.NaN, "", nameX, dataX, unitX, "", Double.NaN, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static class LegendItems implements LegendItemSource {
|
protected static class LegendItems implements LegendItemSource {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user