diff --git a/swing/resources/datafiles/examples/A simple model rocket.ork b/swing/resources/datafiles/examples/A simple model rocket.ork index 3d2fb7bae..e56383db5 100644 Binary files a/swing/resources/datafiles/examples/A simple model rocket.ork and b/swing/resources/datafiles/examples/A simple model rocket.ork differ diff --git a/swing/resources/datafiles/examples/Airstart timing.ork b/swing/resources/datafiles/examples/Airstart timing.ork new file mode 100644 index 000000000..5b58f5bdf Binary files /dev/null and b/swing/resources/datafiles/examples/Airstart timing.ork differ diff --git a/swing/resources/datafiles/examples/Apocalypse with decals.ork b/swing/resources/datafiles/examples/Apocalypse with decals.ork deleted file mode 100644 index e059b4a4e..000000000 Binary files a/swing/resources/datafiles/examples/Apocalypse with decals.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/Boosted Dart.ork b/swing/resources/datafiles/examples/Boosted Dart.ork deleted file mode 100644 index 056e3e9c5..000000000 Binary files a/swing/resources/datafiles/examples/Boosted Dart.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/Chute release.ork b/swing/resources/datafiles/examples/Chute release.ork new file mode 100644 index 000000000..aa6705928 Binary files /dev/null and b/swing/resources/datafiles/examples/Chute release.ork differ diff --git a/swing/resources/datafiles/examples/Clustered motors.ork b/swing/resources/datafiles/examples/Clustered motors.ork new file mode 100644 index 000000000..16fdd59a5 Binary files /dev/null and b/swing/resources/datafiles/examples/Clustered motors.ork differ diff --git a/swing/resources/datafiles/examples/Clustered rocket design.ork b/swing/resources/datafiles/examples/Clustered rocket design.ork deleted file mode 100644 index 6cc2f28c9..000000000 Binary files a/swing/resources/datafiles/examples/Clustered rocket design.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/Dual Deploy.ork b/swing/resources/datafiles/examples/Dual Deploy.ork deleted file mode 100644 index 0d2821e93..000000000 Binary files a/swing/resources/datafiles/examples/Dual Deploy.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/Dual parachute deployment.ork b/swing/resources/datafiles/examples/Dual parachute deployment.ork new file mode 100644 index 000000000..008270a8e Binary files /dev/null and b/swing/resources/datafiles/examples/Dual parachute deployment.ork differ diff --git a/swing/resources/datafiles/examples/High Power Airstart.ork b/swing/resources/datafiles/examples/High Power Airstart.ork deleted file mode 100644 index 479880efb..000000000 Binary files a/swing/resources/datafiles/examples/High Power Airstart.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/Hybrid rocket with dual parachute deployment.ork b/swing/resources/datafiles/examples/Hybrid rocket with dual parachute deployment.ork deleted file mode 100644 index 574c89c57..000000000 Binary files a/swing/resources/datafiles/examples/Hybrid rocket with dual parachute deployment.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/Parallel Staging Example.ork b/swing/resources/datafiles/examples/Parallel Staging Example.ork deleted file mode 100644 index 9b4ea51f1..000000000 Binary files a/swing/resources/datafiles/examples/Parallel Staging Example.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/Parallel booster staging.ork b/swing/resources/datafiles/examples/Parallel booster staging.ork new file mode 100644 index 000000000..7543c2951 Binary files /dev/null and b/swing/resources/datafiles/examples/Parallel booster staging.ork differ diff --git a/swing/resources/datafiles/examples/Pods Example.ork b/swing/resources/datafiles/examples/Pods Example.ork deleted file mode 100644 index c305c91ba..000000000 Binary files a/swing/resources/datafiles/examples/Pods Example.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/Pods--airframes and winglets.ork b/swing/resources/datafiles/examples/Pods--airframes and winglets.ork new file mode 100644 index 000000000..381a0d4e4 Binary files /dev/null and b/swing/resources/datafiles/examples/Pods--airframes and winglets.ork differ diff --git a/swing/resources/datafiles/examples/Pods--powered with recovery deployment.ork b/swing/resources/datafiles/examples/Pods--powered with recovery deployment.ork new file mode 100644 index 000000000..35b61c011 Binary files /dev/null and b/swing/resources/datafiles/examples/Pods--powered with recovery deployment.ork differ diff --git a/swing/resources/datafiles/examples/Preset Usage.ork b/swing/resources/datafiles/examples/Preset Usage.ork deleted file mode 100644 index afb1cfb00..000000000 Binary files a/swing/resources/datafiles/examples/Preset Usage.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/Presets.ork b/swing/resources/datafiles/examples/Presets.ork new file mode 100644 index 000000000..5812e0d38 Binary files /dev/null and b/swing/resources/datafiles/examples/Presets.ork differ diff --git a/swing/resources/datafiles/examples/Simulation Extension.ork b/swing/resources/datafiles/examples/Simulation Extension.ork deleted file mode 100644 index 6f8243e9d..000000000 Binary files a/swing/resources/datafiles/examples/Simulation Extension.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/Simulation extensions and scripting.ork b/swing/resources/datafiles/examples/Simulation extensions and scripting.ork index e84fc0d9d..dc0d416b1 100644 Binary files a/swing/resources/datafiles/examples/Simulation extensions and scripting.ork and b/swing/resources/datafiles/examples/Simulation extensions and scripting.ork differ diff --git a/swing/resources/datafiles/examples/Simulation extensions.ork b/swing/resources/datafiles/examples/Simulation extensions.ork new file mode 100644 index 000000000..1ba1d3c06 Binary files /dev/null and b/swing/resources/datafiles/examples/Simulation extensions.ork differ diff --git a/swing/resources/datafiles/examples/TARC Payloader.ork b/swing/resources/datafiles/examples/TARC Payloader.ork deleted file mode 100644 index 0482ad09a..000000000 Binary files a/swing/resources/datafiles/examples/TARC Payloader.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/TARC payload rocket.ork b/swing/resources/datafiles/examples/TARC payload rocket.ork new file mode 100644 index 000000000..f209f2f0c Binary files /dev/null and b/swing/resources/datafiles/examples/TARC payload rocket.ork differ diff --git a/swing/resources/datafiles/examples/Three-stage rocket.ork b/swing/resources/datafiles/examples/Three-stage rocket.ork index e8cb67662..3d90fce6e 100644 Binary files a/swing/resources/datafiles/examples/Three-stage rocket.ork and b/swing/resources/datafiles/examples/Three-stage rocket.ork differ diff --git a/swing/resources/datafiles/examples/Tube Fin.ork b/swing/resources/datafiles/examples/Tube Fin.ork deleted file mode 100644 index c176ce02c..000000000 Binary files a/swing/resources/datafiles/examples/Tube Fin.ork and /dev/null differ diff --git a/swing/resources/datafiles/examples/Tube fin rocket.ork b/swing/resources/datafiles/examples/Tube fin rocket.ork new file mode 100644 index 000000000..e6a56ba32 Binary files /dev/null and b/swing/resources/datafiles/examples/Tube fin rocket.ork differ diff --git a/swing/resources/datafiles/examples/Two-stage rocket.ork b/swing/resources/datafiles/examples/Two-stage rocket.ork new file mode 100644 index 000000000..8871b0e4c Binary files /dev/null and b/swing/resources/datafiles/examples/Two-stage rocket.ork differ diff --git a/swing/src/net/sf/openrocket/gui/main/ExampleDesignFileAction.java b/swing/src/net/sf/openrocket/gui/main/ExampleDesignFileAction.java index 6fc0f39a2..64abf6dc0 100644 --- a/swing/src/net/sf/openrocket/gui/main/ExampleDesignFileAction.java +++ b/swing/src/net/sf/openrocket/gui/main/ExampleDesignFileAction.java @@ -1,6 +1,8 @@ package net.sf.openrocket.gui.main; import java.awt.event.ActionEvent; +import java.util.ArrayList; +import java.util.List; import javax.swing.AbstractAction; import javax.swing.Action; @@ -18,6 +20,35 @@ public final class ExampleDesignFileAction extends JMenu { */ private final BasicFrame parent; + /** + * Order in which the example files should be displayed in the menu. + * A null items means there should be a separator. + *

+ * NOTE: update this list if you add a new example file, or update the name of an existing one!!. + */ + private static final String[] exampleFileOrder = { + // Examples of basic rockets + "A simple model rocket", + "Two-stage rocket", + "Three-stage rocket", + "TARC payload rocket", + "Tube fin rocket", + null, + // Examples demonstrating complex rocket features + "Airstart timing", + "Chute release", + "Dual parachute deployment", + "Clustered motors", + "Parallel booster staging", + "Pods--airframes and winglets", + "Pods--powered with recovery deployment", + null, + // Examples demonstrating customized functionality + "Presets", + "Simulation extensions", + "Simulation extensions and scripting" + }; + /** * Constructor. * @@ -38,11 +69,37 @@ public final class ExampleDesignFileAction extends JMenu { private void updateMenu() { removeAll(); ExampleDesignFile[] examples = ExampleDesignFile.getExampleDesigns(); + List itemList = new ArrayList<>(); + + // First create the menu items for (ExampleDesignFile file : examples) { Action action = createAction(file); action.putValue(Action.NAME, file.toString()); JMenuItem menuItem = new JMenuItem(action); - add(menuItem); + itemList.add(menuItem); + } + + // Then add them according to their order + for (String s : exampleFileOrder) { + if (s == null) { + addSeparator(); + } else { + for (JMenuItem item : itemList) { + if (item.getText().equals(s)) { + add(item); + itemList.remove(item); + break; + } + } + } + } + + // Add the remaining (unordered) items to the end + if (itemList.size() > 0) { + addSeparator(); + for (JMenuItem item : itemList) { + add(item); + } } }