Refactor sim status checking to separate method

This commit is contained in:
SiboVG 2022-09-26 22:01:04 +02:00
parent fef90fdb34
commit 3a1bc46cb3
4 changed files with 13 additions and 7 deletions

View File

@ -308,7 +308,7 @@ public class Simulation implements ChangeSource, Cloneable {
*/
public Status getStatus() {
mutex.verify();
if (status == Status.UPTODATE || status == Status.LOADED) {
if (isStatusUpToDate(status)) {
if (rocket.getFunctionalModID() != simulatedRocketID || !options.equals(simulatedConditions)) {
status = Status.OUTDATED;
}
@ -330,6 +330,14 @@ public class Simulation implements ChangeSource, Cloneable {
return status;
}
/**
* Returns true is the status indicates that the simulation data is up-to-date.
* @param status status of the simulation to check for if its data is up-to-date
*/
public static boolean isStatusUpToDate(Status status) {
return status == Status.UPTODATE || status == Status.LOADED || status == Status.EXTERNAL;
}

View File

@ -507,8 +507,7 @@ public class SimulationPanel extends JPanel {
private void openDialog(final Simulation sim) {
boolean plotMode = false;
if (sim.hasSimulationData() && (sim.getStatus() == Status.UPTODATE || sim.getStatus() == Status.LOADED
|| sim.getStatus() == Status.EXTERNAL)) {
if (sim.hasSimulationData() && Simulation.isStatusUpToDate(sim.getStatus())) {
plotMode = true;
}
openDialog(plotMode, sim);

View File

@ -853,8 +853,8 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
// Re-run the present simulation(s)
List<Simulation> sims = new LinkedList<>();
for (Simulation sim : document.getSimulations()) {
if (sim.getStatus() == Simulation.Status.UPTODATE || sim.getStatus() == Simulation.Status.LOADED
|| !document.getRocket().getFlightConfiguration(sim.getFlightConfigurationId()).hasMotors())
if (Simulation.isStatusUpToDate(sim.getStatus()) ||
!document.getRocket().getFlightConfiguration(sim.getFlightConfigurationId()).hasMotors())
continue;
// Find a Simulation based on the current flight configuration

View File

@ -292,8 +292,7 @@ public class SimulationEditDialog extends JDialog {
@Override
public void actionPerformed(ActionEvent e) {
// If the simulation is out of date, run the simulation.
if (simulationList[0].getStatus() != Simulation.Status.UPTODATE &&
simulationList[0].getStatus() != Simulation.Status.LOADED) {
if (!Simulation.isStatusUpToDate(simulationList[0].getStatus())) {
new SimulationRunDialog(SimulationEditDialog.this.parentWindow, document, simulationList[0]).setVisible(true);
}