Refactor PlotConfiguration to SimulationPlotConfiguration
This commit is contained in:
parent
8a0a12cd94
commit
c3a2bb8d29
@ -15,7 +15,6 @@ import java.awt.geom.Point2D;
|
|||||||
import java.awt.geom.Rectangle2D;
|
import java.awt.geom.Rectangle2D;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -89,9 +88,9 @@ public class SimulationPlot {
|
|||||||
|
|
||||||
private final JFreeChart chart;
|
private final JFreeChart chart;
|
||||||
|
|
||||||
private final PlotConfiguration config;
|
private final SimulationPlotConfiguration config;
|
||||||
private final Simulation simulation;
|
private final Simulation simulation;
|
||||||
private final PlotConfiguration filled;
|
private final SimulationPlotConfiguration filled;
|
||||||
|
|
||||||
private final List<EventDisplayInfo> eventList;
|
private final List<EventDisplayInfo> eventList;
|
||||||
private final List<ModifiedXYItemRenderer> renderers = new ArrayList<>();
|
private final List<ModifiedXYItemRenderer> renderers = new ArrayList<>();
|
||||||
@ -129,7 +128,7 @@ public class SimulationPlot {
|
|||||||
errorAnnotations.setCurrent(branch);
|
errorAnnotations.setCurrent(branch);
|
||||||
}
|
}
|
||||||
|
|
||||||
SimulationPlot(Simulation simulation, PlotConfiguration config, boolean initialShowPoints) {
|
SimulationPlot(Simulation simulation, SimulationPlotConfiguration config, boolean initialShowPoints) {
|
||||||
this.simulation = simulation;
|
this.simulation = simulation;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.branchCount = simulation.getSimulatedData().getBranchCount();
|
this.branchCount = simulation.getSimulatedData().getBranchCount();
|
||||||
@ -163,7 +162,7 @@ public class SimulationPlot {
|
|||||||
this.filled = config.fillAutoAxes(mainBranch);
|
this.filled = config.fillAutoAxes(mainBranch);
|
||||||
|
|
||||||
// Compute the axes based on the min and max value of all branches
|
// Compute the axes based on the min and max value of all branches
|
||||||
PlotConfiguration plotConfig = filled.clone();
|
SimulationPlotConfiguration plotConfig = filled.clone();
|
||||||
plotConfig.fitAxes(simulation.getSimulatedData().getBranches());
|
plotConfig.fitAxes(simulation.getSimulatedData().getBranches());
|
||||||
List<Axis> minMaxAxes = plotConfig.getAllAxes();
|
List<Axis> minMaxAxes = plotConfig.getAllAxes();
|
||||||
|
|
||||||
|
@ -17,17 +17,17 @@ import info.openrocket.core.util.MathUtil;
|
|||||||
import info.openrocket.core.util.Pair;
|
import info.openrocket.core.util.Pair;
|
||||||
|
|
||||||
|
|
||||||
public class PlotConfiguration implements Cloneable {
|
public class SimulationPlotConfiguration implements Cloneable {
|
||||||
|
|
||||||
private static final Translator trans = Application.getTranslator();
|
private static final Translator trans = Application.getTranslator();
|
||||||
|
|
||||||
public static final PlotConfiguration[] DEFAULT_CONFIGURATIONS;
|
public static final SimulationPlotConfiguration[] DEFAULT_CONFIGURATIONS;
|
||||||
static {
|
static {
|
||||||
ArrayList<PlotConfiguration> configs = new ArrayList<>();
|
ArrayList<SimulationPlotConfiguration> configs = new ArrayList<>();
|
||||||
PlotConfiguration config;
|
SimulationPlotConfiguration config;
|
||||||
|
|
||||||
//// Vertical motion vs. time
|
//// Vertical motion vs. time
|
||||||
config = new PlotConfiguration(trans.get("PlotConfiguration.Verticalmotion"));
|
config = new SimulationPlotConfiguration(trans.get("PlotConfiguration.Verticalmotion"));
|
||||||
config.addPlotDataType(FlightDataType.TYPE_ALTITUDE, 0);
|
config.addPlotDataType(FlightDataType.TYPE_ALTITUDE, 0);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_VELOCITY_Z);
|
config.addPlotDataType(FlightDataType.TYPE_VELOCITY_Z);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_ACCELERATION_Z);
|
config.addPlotDataType(FlightDataType.TYPE_ACCELERATION_Z);
|
||||||
@ -43,7 +43,7 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
configs.add(config);
|
configs.add(config);
|
||||||
|
|
||||||
//// Total motion vs. time
|
//// Total motion vs. time
|
||||||
config = new PlotConfiguration(trans.get("PlotConfiguration.Totalmotion"));
|
config = new SimulationPlotConfiguration(trans.get("PlotConfiguration.Totalmotion"));
|
||||||
config.addPlotDataType(FlightDataType.TYPE_ALTITUDE, 0);
|
config.addPlotDataType(FlightDataType.TYPE_ALTITUDE, 0);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_VELOCITY_TOTAL);
|
config.addPlotDataType(FlightDataType.TYPE_VELOCITY_TOTAL);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_ACCELERATION_TOTAL);
|
config.addPlotDataType(FlightDataType.TYPE_ACCELERATION_TOTAL);
|
||||||
@ -59,7 +59,7 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
configs.add(config);
|
configs.add(config);
|
||||||
|
|
||||||
//// Flight side profile
|
//// Flight side profile
|
||||||
config = new PlotConfiguration(trans.get("PlotConfiguration.Flightside"), FlightDataType.TYPE_POSITION_X);
|
config = new SimulationPlotConfiguration(trans.get("PlotConfiguration.Flightside"), FlightDataType.TYPE_POSITION_X);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_ALTITUDE);
|
config.addPlotDataType(FlightDataType.TYPE_ALTITUDE);
|
||||||
config.setEvent(FlightEvent.Type.IGNITION, true);
|
config.setEvent(FlightEvent.Type.IGNITION, true);
|
||||||
config.setEvent(FlightEvent.Type.BURNOUT, true);
|
config.setEvent(FlightEvent.Type.BURNOUT, true);
|
||||||
@ -74,7 +74,7 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
|
|
||||||
|
|
||||||
//// Ground track
|
//// Ground track
|
||||||
config = new PlotConfiguration(trans.get("PlotConfiguration.Groundtrack"), FlightDataType.TYPE_POSITION_X);
|
config = new SimulationPlotConfiguration(trans.get("PlotConfiguration.Groundtrack"), FlightDataType.TYPE_POSITION_X);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_POSITION_Y, 0);
|
config.addPlotDataType(FlightDataType.TYPE_POSITION_Y, 0);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_ALTITUDE, 1);
|
config.addPlotDataType(FlightDataType.TYPE_ALTITUDE, 1);
|
||||||
config.setEvent(FlightEvent.Type.IGNITION, true);
|
config.setEvent(FlightEvent.Type.IGNITION, true);
|
||||||
@ -87,7 +87,7 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
configs.add(config);
|
configs.add(config);
|
||||||
|
|
||||||
//// Stability vs. time
|
//// Stability vs. time
|
||||||
config = new PlotConfiguration(trans.get("PlotConfiguration.Stability"));
|
config = new SimulationPlotConfiguration(trans.get("PlotConfiguration.Stability"));
|
||||||
config.addPlotDataType(FlightDataType.TYPE_STABILITY, 0);
|
config.addPlotDataType(FlightDataType.TYPE_STABILITY, 0);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_CP_LOCATION, 1);
|
config.addPlotDataType(FlightDataType.TYPE_CP_LOCATION, 1);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_CG_LOCATION, 1);
|
config.addPlotDataType(FlightDataType.TYPE_CG_LOCATION, 1);
|
||||||
@ -102,7 +102,7 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
configs.add(config);
|
configs.add(config);
|
||||||
|
|
||||||
//// Drag coefficients vs. Mach number
|
//// Drag coefficients vs. Mach number
|
||||||
config = new PlotConfiguration(trans.get("PlotConfiguration.Dragcoef"),
|
config = new SimulationPlotConfiguration(trans.get("PlotConfiguration.Dragcoef"),
|
||||||
FlightDataType.TYPE_MACH_NUMBER);
|
FlightDataType.TYPE_MACH_NUMBER);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_DRAG_COEFF, 0);
|
config.addPlotDataType(FlightDataType.TYPE_DRAG_COEFF, 0);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_FRICTION_DRAG_COEFF, 0);
|
config.addPlotDataType(FlightDataType.TYPE_FRICTION_DRAG_COEFF, 0);
|
||||||
@ -113,7 +113,7 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
configs.add(config);
|
configs.add(config);
|
||||||
|
|
||||||
//// Roll characteristics
|
//// Roll characteristics
|
||||||
config = new PlotConfiguration(trans.get("PlotConfiguration.Rollcharacteristics"));
|
config = new SimulationPlotConfiguration(trans.get("PlotConfiguration.Rollcharacteristics"));
|
||||||
config.addPlotDataType(FlightDataType.TYPE_ROLL_RATE, 0);
|
config.addPlotDataType(FlightDataType.TYPE_ROLL_RATE, 0);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_ROLL_MOMENT_COEFF, 1);
|
config.addPlotDataType(FlightDataType.TYPE_ROLL_MOMENT_COEFF, 1);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_ROLL_FORCING_COEFF, 1);
|
config.addPlotDataType(FlightDataType.TYPE_ROLL_FORCING_COEFF, 1);
|
||||||
@ -131,7 +131,7 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
configs.add(config);
|
configs.add(config);
|
||||||
|
|
||||||
//// Angle of attack and orientation vs. time
|
//// Angle of attack and orientation vs. time
|
||||||
config = new PlotConfiguration(trans.get("PlotConfiguration.Angleofattack"));
|
config = new SimulationPlotConfiguration(trans.get("PlotConfiguration.Angleofattack"));
|
||||||
config.addPlotDataType(FlightDataType.TYPE_AOA, 0);
|
config.addPlotDataType(FlightDataType.TYPE_AOA, 0);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_ORIENTATION_PHI);
|
config.addPlotDataType(FlightDataType.TYPE_ORIENTATION_PHI);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_ORIENTATION_THETA);
|
config.addPlotDataType(FlightDataType.TYPE_ORIENTATION_THETA);
|
||||||
@ -147,7 +147,7 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
configs.add(config);
|
configs.add(config);
|
||||||
|
|
||||||
//// Simulation time step and computation time
|
//// Simulation time step and computation time
|
||||||
config = new PlotConfiguration(trans.get("PlotConfiguration.Simulationtime"));
|
config = new SimulationPlotConfiguration(trans.get("PlotConfiguration.Simulationtime"));
|
||||||
config.addPlotDataType(FlightDataType.TYPE_TIME_STEP);
|
config.addPlotDataType(FlightDataType.TYPE_TIME_STEP);
|
||||||
config.addPlotDataType(FlightDataType.TYPE_COMPUTATION_TIME);
|
config.addPlotDataType(FlightDataType.TYPE_COMPUTATION_TIME);
|
||||||
config.setEvent(FlightEvent.Type.IGNITION, true);
|
config.setEvent(FlightEvent.Type.IGNITION, true);
|
||||||
@ -161,7 +161,7 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
config.setEvent(FlightEvent.Type.SIM_ABORT, true);
|
config.setEvent(FlightEvent.Type.SIM_ABORT, true);
|
||||||
configs.add(config);
|
configs.add(config);
|
||||||
|
|
||||||
DEFAULT_CONFIGURATIONS = configs.toArray(new PlotConfiguration[0]);
|
DEFAULT_CONFIGURATIONS = configs.toArray(new SimulationPlotConfiguration[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -208,15 +208,15 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
private String name = null;
|
private String name = null;
|
||||||
|
|
||||||
|
|
||||||
public PlotConfiguration() {
|
public SimulationPlotConfiguration() {
|
||||||
this(null, FlightDataType.TYPE_TIME);
|
this(null, FlightDataType.TYPE_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlotConfiguration(String name) {
|
public SimulationPlotConfiguration(String name) {
|
||||||
this(name, FlightDataType.TYPE_TIME);
|
this(name, FlightDataType.TYPE_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlotConfiguration(String name, FlightDataType domainType) {
|
public SimulationPlotConfiguration(String name, FlightDataType domainType) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
// Two axes
|
// Two axes
|
||||||
allAxes.add(new Axis());
|
allAxes.add(new Axis());
|
||||||
@ -370,7 +370,7 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the name of this PlotConfiguration.
|
* Returns the name of this SimulationPlotConfiguration.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
@ -382,11 +382,11 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
/**
|
/**
|
||||||
* Find the best combination of the auto-selectable axes.
|
* Find the best combination of the auto-selectable axes.
|
||||||
*
|
*
|
||||||
* @return a new PlotConfiguration with the best fitting auto-selected axes and
|
* @return a new SimulationPlotConfiguration with the best fitting auto-selected axes and
|
||||||
* axes ranges selected.
|
* axes ranges selected.
|
||||||
*/
|
*/
|
||||||
public PlotConfiguration fillAutoAxes(FlightDataBranch data) {
|
public SimulationPlotConfiguration fillAutoAxes(FlightDataBranch data) {
|
||||||
PlotConfiguration config = recursiveFillAutoAxes(data).getU();
|
SimulationPlotConfiguration config = recursiveFillAutoAxes(data).getU();
|
||||||
//System.out.println("BEST FOUND, fitting");
|
//System.out.println("BEST FOUND, fitting");
|
||||||
config.fitAxes(data);
|
config.fitAxes(data);
|
||||||
return config;
|
return config;
|
||||||
@ -399,13 +399,13 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
* Recursively search for the best combination of the auto-selectable axes.
|
* Recursively search for the best combination of the auto-selectable axes.
|
||||||
* This is a brute-force search method.
|
* This is a brute-force search method.
|
||||||
*
|
*
|
||||||
* @return a new PlotConfiguration with the best fitting auto-selected axes and
|
* @return a new SimulationPlotConfiguration with the best fitting auto-selected axes and
|
||||||
* axes ranges selected, and the goodness value
|
* axes ranges selected, and the goodness value
|
||||||
*/
|
*/
|
||||||
private Pair<PlotConfiguration, Double> recursiveFillAutoAxes(FlightDataBranch data) {
|
private Pair<SimulationPlotConfiguration, Double> recursiveFillAutoAxes(FlightDataBranch data) {
|
||||||
|
|
||||||
// Create copy to fill in
|
// Create copy to fill in
|
||||||
PlotConfiguration copy = this.clone();
|
SimulationPlotConfiguration copy = this.clone();
|
||||||
|
|
||||||
int autoindex;
|
int autoindex;
|
||||||
for (autoindex = 0; autoindex < plotDataAxes.size(); autoindex++) {
|
for (autoindex = 0; autoindex < plotDataAxes.size(); autoindex++) {
|
||||||
@ -421,11 +421,11 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
|
|
||||||
|
|
||||||
// Set the auto-selected index one at a time and choose the best one
|
// Set the auto-selected index one at a time and choose the best one
|
||||||
PlotConfiguration best = null;
|
SimulationPlotConfiguration best = null;
|
||||||
double bestValue = Double.NEGATIVE_INFINITY;
|
double bestValue = Double.NEGATIVE_INFINITY;
|
||||||
for (int i = 0; i < axesCount; i++) {
|
for (int i = 0; i < axesCount; i++) {
|
||||||
copy.plotDataAxes.set(autoindex, i);
|
copy.plotDataAxes.set(autoindex, i);
|
||||||
Pair<PlotConfiguration, Double> result = copy.recursiveFillAutoAxes(data);
|
Pair<SimulationPlotConfiguration, Double> result = copy.recursiveFillAutoAxes(data);
|
||||||
if (result.getV() > bestValue) {
|
if (result.getV() > bestValue) {
|
||||||
best = result.getU();
|
best = result.getU();
|
||||||
bestValue = result.getV();
|
bestValue = result.getV();
|
||||||
@ -690,11 +690,11 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Reset the units of this configuration to the default units. Returns this
|
* Reset the units of this configuration to the default units. Returns this
|
||||||
* PlotConfiguration.
|
* SimulationPlotConfiguration.
|
||||||
*
|
*
|
||||||
* @return this PlotConfiguration.
|
* @return this SimulationPlotConfiguration.
|
||||||
*/
|
*/
|
||||||
public PlotConfiguration resetUnits() {
|
public SimulationPlotConfiguration resetUnits() {
|
||||||
for (int i = 0; i < plotDataTypes.size(); i++) {
|
for (int i = 0; i < plotDataTypes.size(); i++) {
|
||||||
plotDataUnits.set(i, plotDataTypes.get(i).getUnitGroup().getDefaultUnit());
|
plotDataUnits.set(i, plotDataTypes.get(i).getUnitGroup().getDefaultUnit());
|
||||||
}
|
}
|
||||||
@ -705,10 +705,10 @@ public class PlotConfiguration implements Cloneable {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PlotConfiguration clone() {
|
public SimulationPlotConfiguration clone() {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
PlotConfiguration copy = (PlotConfiguration) super.clone();
|
SimulationPlotConfiguration copy = (SimulationPlotConfiguration) super.clone();
|
||||||
|
|
||||||
// Shallow-clone all immutable lists
|
// Shallow-clone all immutable lists
|
||||||
copy.plotDataTypes = this.plotDataTypes.clone();
|
copy.plotDataTypes = this.plotDataTypes.clone();
|
@ -52,7 +52,7 @@ public class SimulationPlotDialog extends JDialog {
|
|||||||
initColors();
|
initColors();
|
||||||
}
|
}
|
||||||
|
|
||||||
private SimulationPlotDialog(Window parent, Simulation simulation, PlotConfiguration config) {
|
private SimulationPlotDialog(Window parent, Simulation simulation, SimulationPlotConfiguration config) {
|
||||||
//// Flight data plot
|
//// Flight data plot
|
||||||
super(parent, simulation.getName());
|
super(parent, simulation.getName());
|
||||||
this.setModalityType(ModalityType.DOCUMENT_MODAL);
|
this.setModalityType(ModalityType.DOCUMENT_MODAL);
|
||||||
@ -247,7 +247,7 @@ public class SimulationPlotDialog extends JDialog {
|
|||||||
* @param simulation the simulation to plot.
|
* @param simulation the simulation to plot.
|
||||||
* @param config the configuration of the plot.
|
* @param config the configuration of the plot.
|
||||||
*/
|
*/
|
||||||
public static SimulationPlotDialog getPlot(Window parent, Simulation simulation, PlotConfiguration config) {
|
public static SimulationPlotDialog getPlot(Window parent, Simulation simulation, SimulationPlotConfiguration config) {
|
||||||
return new SimulationPlotDialog(parent, simulation, config);
|
return new SimulationPlotDialog(parent, simulation, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,11 +35,11 @@ import info.openrocket.core.preferences.ApplicationPreferences;
|
|||||||
import info.openrocket.core.unit.Unit;
|
import info.openrocket.core.unit.Unit;
|
||||||
import info.openrocket.core.util.Utils;
|
import info.openrocket.core.util.Utils;
|
||||||
|
|
||||||
|
import info.openrocket.swing.gui.plot.SimulationPlotConfiguration;
|
||||||
import info.openrocket.swing.gui.widgets.GroupableAndSearchableComboBox;
|
import info.openrocket.swing.gui.widgets.GroupableAndSearchableComboBox;
|
||||||
import net.miginfocom.swing.MigLayout;
|
import net.miginfocom.swing.MigLayout;
|
||||||
import info.openrocket.swing.gui.components.DescriptionArea;
|
import info.openrocket.swing.gui.components.DescriptionArea;
|
||||||
import info.openrocket.swing.gui.components.UnitSelector;
|
import info.openrocket.swing.gui.components.UnitSelector;
|
||||||
import info.openrocket.swing.gui.plot.PlotConfiguration;
|
|
||||||
import info.openrocket.swing.gui.plot.SimulationPlotDialog;
|
import info.openrocket.swing.gui.plot.SimulationPlotDialog;
|
||||||
import info.openrocket.swing.gui.util.GUIUtil;
|
import info.openrocket.swing.gui.util.GUIUtil;
|
||||||
import info.openrocket.swing.gui.util.Icons;
|
import info.openrocket.swing.gui.util.Icons;
|
||||||
@ -74,32 +74,32 @@ public class SimulationPlotPanel extends JPanel {
|
|||||||
private static final String CUSTOM = trans.get("simplotpanel.CUSTOM");
|
private static final String CUSTOM = trans.get("simplotpanel.CUSTOM");
|
||||||
|
|
||||||
/** The "Custom" configuration - not to be used for anything other than the title. */
|
/** The "Custom" configuration - not to be used for anything other than the title. */
|
||||||
private static final PlotConfiguration CUSTOM_CONFIGURATION;
|
private static final SimulationPlotConfiguration CUSTOM_CONFIGURATION;
|
||||||
static {
|
static {
|
||||||
CUSTOM_CONFIGURATION = new PlotConfiguration(CUSTOM);
|
CUSTOM_CONFIGURATION = new SimulationPlotConfiguration(CUSTOM);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** The array of presets for the combo box. */
|
/** The array of presets for the combo box. */
|
||||||
private static final PlotConfiguration[] PRESET_ARRAY;
|
private static final SimulationPlotConfiguration[] PRESET_ARRAY;
|
||||||
static {
|
static {
|
||||||
PRESET_ARRAY = Arrays.copyOf(PlotConfiguration.DEFAULT_CONFIGURATIONS,
|
PRESET_ARRAY = Arrays.copyOf(SimulationPlotConfiguration.DEFAULT_CONFIGURATIONS,
|
||||||
PlotConfiguration.DEFAULT_CONFIGURATIONS.length + 1);
|
SimulationPlotConfiguration.DEFAULT_CONFIGURATIONS.length + 1);
|
||||||
PRESET_ARRAY[PRESET_ARRAY.length - 1] = CUSTOM_CONFIGURATION;
|
PRESET_ARRAY[PRESET_ARRAY.length - 1] = CUSTOM_CONFIGURATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** The current default configuration, set each time a plot is made. */
|
/** The current default configuration, set each time a plot is made. */
|
||||||
private static PlotConfiguration defaultConfiguration =
|
private static SimulationPlotConfiguration defaultConfiguration =
|
||||||
PlotConfiguration.DEFAULT_CONFIGURATIONS[0].resetUnits();
|
SimulationPlotConfiguration.DEFAULT_CONFIGURATIONS[0].resetUnits();
|
||||||
|
|
||||||
|
|
||||||
private final Simulation simulation;
|
private final Simulation simulation;
|
||||||
private final FlightDataType[] types;
|
private final FlightDataType[] types;
|
||||||
private PlotConfiguration configuration;
|
private SimulationPlotConfiguration configuration;
|
||||||
|
|
||||||
|
|
||||||
private JComboBox<PlotConfiguration> configurationSelector;
|
private JComboBox<SimulationPlotConfiguration> configurationSelector;
|
||||||
|
|
||||||
private GroupableAndSearchableComboBox<FlightDataTypeGroup, FlightDataType> domainTypeSelector;
|
private GroupableAndSearchableComboBox<FlightDataTypeGroup, FlightDataType> domainTypeSelector;
|
||||||
private UnitSelector domainUnitSelector;
|
private UnitSelector domainUnitSelector;
|
||||||
@ -135,7 +135,7 @@ public class SimulationPlotPanel extends JPanel {
|
|||||||
|
|
||||||
// Setup the combo box
|
// Setup the combo box
|
||||||
configurationSelector = new JComboBox<>(PRESET_ARRAY);
|
configurationSelector = new JComboBox<>(PRESET_ARRAY);
|
||||||
for (PlotConfiguration config : PRESET_ARRAY) {
|
for (SimulationPlotConfiguration config : PRESET_ARRAY) {
|
||||||
if (config.getName().equals(configuration.getName())) {
|
if (config.getName().equals(configuration.getName())) {
|
||||||
configurationSelector.setSelectedItem(config);
|
configurationSelector.setSelectedItem(config);
|
||||||
}
|
}
|
||||||
@ -154,7 +154,7 @@ public class SimulationPlotPanel extends JPanel {
|
|||||||
}
|
}
|
||||||
if (modifying > 0)
|
if (modifying > 0)
|
||||||
return;
|
return;
|
||||||
PlotConfiguration conf = (PlotConfiguration) configurationSelector.getSelectedItem();
|
SimulationPlotConfiguration conf = (SimulationPlotConfiguration) configurationSelector.getSelectedItem();
|
||||||
if (conf == CUSTOM_CONFIGURATION)
|
if (conf == CUSTOM_CONFIGURATION)
|
||||||
return;
|
return;
|
||||||
modifying++;
|
modifying++;
|
||||||
@ -421,7 +421,7 @@ public class SimulationPlotPanel extends JPanel {
|
|||||||
return SimulationPlotDialog.getPlot(parent, simulation, configuration);
|
return SimulationPlotDialog.getPlot(parent, simulation, configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setConfiguration(PlotConfiguration conf) {
|
private void setConfiguration(SimulationPlotConfiguration conf) {
|
||||||
|
|
||||||
boolean modified = false;
|
boolean modified = false;
|
||||||
|
|
||||||
@ -479,7 +479,7 @@ public class SimulationPlotPanel extends JPanel {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A JPanel which configures a single plot of a PlotConfiguration.
|
* A JPanel which configures a single plot of a SimulationPlotConfiguration.
|
||||||
*/
|
*/
|
||||||
private class PlotTypeSelector extends JPanel {
|
private class PlotTypeSelector extends JPanel {
|
||||||
private static final long serialVersionUID = 9056324972817542570L;
|
private static final long serialVersionUID = 9056324972817542570L;
|
||||||
@ -565,7 +565,7 @@ public class SimulationPlotPanel extends JPanel {
|
|||||||
this.add(button, "gapright 0");
|
this.add(button, "gapright 0");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private class FlightEventTableModel extends AbstractTableModel {
|
private class FlightEventTableModel extends AbstractTableModel {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user