diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 42903c033..57e84ad58 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,10 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - name: Checkout repository and submodules + uses: actions/checkout@v2 + with: + submodules: recursive - name: Setup JDK 11 uses: actions/setup-java@v2 with: diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..e222db9db --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "swing/resources-src/datafiles/components"] + path = swing/resources-src/datafiles/components + url = git@github.com:dbcook/openrocket-database.git diff --git a/core/resources/l10n/messages.properties b/core/resources/l10n/messages.properties index d83826602..1bcc903b7 100644 --- a/core/resources/l10n/messages.properties +++ b/core/resources/l10n/messages.properties @@ -2040,8 +2040,10 @@ ComponentPresetChooserDialog.menu.sortAsc = Sort Ascending ComponentPresetChooserDialog.menu.sortDesc = Sort Descending ComponentPresetChooserDialog.menu.units = Units ComponentPresetChooserDialog.checkbox.showAllCompatible = Show all compatible +ComponentPresetChooserDialog.checkbox.showLegacyCheckBox = Show Legacy Database ComponentPresetChooserDialog.lbl.favorites = Select to add preset to drop-down menu table.column.Favorite = Favorite +table.column.Legacy = Legacy table.column.Manufacturer = Manufacturer table.column.PartNo = Part Number table.column.Description = Description diff --git a/core/src/net/sf/openrocket/file/openrocket/importt/ComponentPresetSetter.java b/core/src/net/sf/openrocket/file/openrocket/importt/ComponentPresetSetter.java index dead76d17..8a10be1d7 100644 --- a/core/src/net/sf/openrocket/file/openrocket/importt/ComponentPresetSetter.java +++ b/core/src/net/sf/openrocket/file/openrocket/importt/ComponentPresetSetter.java @@ -44,7 +44,6 @@ class ComponentPresetSetter implements Setter { } List presets = Application.getComponentPresetDao().find(manufacturerName, productNo); - ComponentPreset matchingPreset = null; for (ComponentPreset preset : presets) { @@ -53,6 +52,7 @@ class ComponentPresetSetter implements Setter { matchingPreset = preset; break; } + if (type != null && preset.getType().name().equals(type) && matchingPreset != null) { // Found the first one with matching type. matchingPreset = preset; @@ -71,4 +71,4 @@ class ComponentPresetSetter implements Setter { setMethod.invoke(c, matchingPreset); } -} \ No newline at end of file +} diff --git a/core/src/net/sf/openrocket/preset/ComponentPreset.java b/core/src/net/sf/openrocket/preset/ComponentPreset.java index c99833504..46df68c88 100644 --- a/core/src/net/sf/openrocket/preset/ComponentPreset.java +++ b/core/src/net/sf/openrocket/preset/ComponentPreset.java @@ -47,6 +47,7 @@ public class ComponentPreset implements Comparable, Serializabl public enum Type { BODY_TUBE(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -55,6 +56,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), NOSE_CONE(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -65,6 +67,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), TRANSITION(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -78,6 +81,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), TUBE_COUPLER(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -86,6 +90,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), BULK_HEAD(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -93,6 +98,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), CENTERING_RING(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -101,6 +107,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), ENGINE_BLOCK(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -109,6 +116,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), LAUNCH_LUG(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -117,6 +125,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), RAIL_BUTTON(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -128,6 +137,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.HEIGHT }), STREAMER(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -137,6 +147,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.MATERIAL }), PARACHUTE(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -173,6 +184,7 @@ public class ComponentPreset implements Comparable, Serializabl } + public final static TypedKey LEGACY = new TypedKey("Legacy", Boolean.class); public final static TypedKey MANUFACTURER = new TypedKey("Manufacturer", Manufacturer.class); public final static TypedKey PARTNO = new TypedKey("PartNo", String.class); public final static TypedKey DESCRIPTION = new TypedKey("Description", String.class); @@ -204,6 +216,7 @@ public class ComponentPreset implements Comparable, Serializabl public final static TypedKey FLANGE_HEIGHT = new TypedKey("FlangeHeight", Double.class, UnitGroup.UNITS_LENGTH); public final static List> ORDERED_KEY_LIST = Collections.unmodifiableList(Arrays.asList( + LEGACY, MANUFACTURER, PARTNO, DESCRIPTION, @@ -237,6 +250,15 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset() { } + /** + * Convenience method to determine whether this is from the legacy database + * + * @return + */ + public Boolean getLegacy() { + return properties.get(LEGACY); + } + /** * Convenience method to retrieve the Type of this ComponentPreset. * @@ -355,6 +377,9 @@ public class ComponentPreset implements Comparable, Serializabl }); for (TypedKey key : keys) { + if (key == ComponentPreset.LEGACY) { + continue; + } Object value = properties.get(key); diff --git a/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java b/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java index 3db31341c..7fec283d5 100644 --- a/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java @@ -156,7 +156,7 @@ public abstract class BaseComponentDTO { } } - public abstract ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException; + public abstract ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException; void addProps(TypedPropertyMap props, List materialList) { props.put(ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer(manufacturer)); @@ -228,14 +228,16 @@ public abstract class BaseComponentDTO { static class AnnotatedLengthDTO { @XmlAttribute(name = "Unit", required = false) - private final String unitName = "m"; + private final String unitName; @XmlValue private double length; AnnotatedLengthDTO() { + this.unitName = "m"; } AnnotatedLengthDTO(double length) { + this.unitName = "m"; this.length = length; } @@ -246,14 +248,16 @@ public abstract class BaseComponentDTO { static class AnnotatedMassDTO { @XmlAttribute(name = "Unit", required = false) - private final String unitName = "kg"; + private final String unitName; @XmlValue private double mass; AnnotatedMassDTO() { + unitName = "kg"; } AnnotatedMassDTO(double mass) { + unitName = "kg"; this.mass = mass; } diff --git a/core/src/net/sf/openrocket/preset/xml/BodyTubeDTO.java b/core/src/net/sf/openrocket/preset/xml/BodyTubeDTO.java index 536944f2a..ef60f328c 100644 --- a/core/src/net/sf/openrocket/preset/xml/BodyTubeDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/BodyTubeDTO.java @@ -83,12 +83,13 @@ public class BodyTubeDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(java.util.List materials) throws InvalidComponentPresetException { - return asComponentPreset(ComponentPreset.Type.BODY_TUBE, materials); + public ComponentPreset asComponentPreset(Boolean legacy, java.util.List materials) throws InvalidComponentPresetException { + return asComponentPreset(legacy, ComponentPreset.Type.BODY_TUBE, materials); } - public ComponentPreset asComponentPreset(ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.INNER_DIAMETER, this.getInsideDiameter()); props.put(ComponentPreset.OUTER_DIAMETER, this.getOutsideDiameter()); diff --git a/core/src/net/sf/openrocket/preset/xml/BulkHeadDTO.java b/core/src/net/sf/openrocket/preset/xml/BulkHeadDTO.java index 1db3dd7d0..7e81622c8 100644 --- a/core/src/net/sf/openrocket/preset/xml/BulkHeadDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/BulkHeadDTO.java @@ -65,8 +65,9 @@ public class BulkHeadDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.OUTER_DIAMETER, this.getOutsideDiameter()); props.put(ComponentPreset.LENGTH, this.getLength()); diff --git a/core/src/net/sf/openrocket/preset/xml/CenteringRingDTO.java b/core/src/net/sf/openrocket/preset/xml/CenteringRingDTO.java index 9866a15a9..bdada1c53 100644 --- a/core/src/net/sf/openrocket/preset/xml/CenteringRingDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/CenteringRingDTO.java @@ -35,7 +35,7 @@ public class CenteringRingDTO extends BodyTubeDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { - return super.asComponentPreset(ComponentPreset.Type.CENTERING_RING, materials); + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { + return super.asComponentPreset(legacy, ComponentPreset.Type.CENTERING_RING, materials); } } diff --git a/core/src/net/sf/openrocket/preset/xml/EngineBlockDTO.java b/core/src/net/sf/openrocket/preset/xml/EngineBlockDTO.java index 6c3f61fa8..730b339b4 100644 --- a/core/src/net/sf/openrocket/preset/xml/EngineBlockDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/EngineBlockDTO.java @@ -34,7 +34,7 @@ public class EngineBlockDTO extends BodyTubeDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { - return super.asComponentPreset(ComponentPreset.Type.ENGINE_BLOCK, materials); + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { + return super.asComponentPreset(legacy, ComponentPreset.Type.ENGINE_BLOCK, materials); } } diff --git a/core/src/net/sf/openrocket/preset/xml/LaunchLugDTO.java b/core/src/net/sf/openrocket/preset/xml/LaunchLugDTO.java index e723861b7..da1feb255 100644 --- a/core/src/net/sf/openrocket/preset/xml/LaunchLugDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/LaunchLugDTO.java @@ -83,12 +83,13 @@ public class LaunchLugDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(java.util.List materials) throws InvalidComponentPresetException { - return asComponentPreset(ComponentPreset.Type.LAUNCH_LUG, materials); + public ComponentPreset asComponentPreset(Boolean legacy, java.util.List materials) throws InvalidComponentPresetException { + return asComponentPreset(legacy, ComponentPreset.Type.LAUNCH_LUG, materials); } - public ComponentPreset asComponentPreset(ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.INNER_DIAMETER, this.getInsideDiameter()); props.put(ComponentPreset.OUTER_DIAMETER, this.getOutsideDiameter()); diff --git a/core/src/net/sf/openrocket/preset/xml/NoseConeDTO.java b/core/src/net/sf/openrocket/preset/xml/NoseConeDTO.java index 0a071d6cb..3dc475821 100644 --- a/core/src/net/sf/openrocket/preset/xml/NoseConeDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/NoseConeDTO.java @@ -131,8 +131,9 @@ public class NoseConeDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.SHAPE, shape.getORShape()); props.put(ComponentPreset.AFT_OUTER_DIAMETER, this.getOutsideDiameter()); diff --git a/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentDTO.java b/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentDTO.java index 7294019c0..0759e6a3f 100644 --- a/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentDTO.java @@ -10,6 +10,7 @@ import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlElementRefs; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlValue; import net.sf.openrocket.material.Material; import net.sf.openrocket.preset.ComponentPreset; @@ -25,6 +26,9 @@ public class OpenRocketComponentDTO { @XmlElement(name = "Version") private final String version = "0.1"; + @XmlElement(name = "Legacy", required = false) + private String legacy; + @XmlElementWrapper(name = "Materials") @XmlElement(name = "Material") List materials = new ArrayList(); @@ -47,11 +51,27 @@ public class OpenRocketComponentDTO { public OpenRocketComponentDTO() { } - public OpenRocketComponentDTO(final List theMaterials, final List theComponents) { + public OpenRocketComponentDTO(boolean isLegacy, final List theMaterials, final List theComponents) { + setLegacy(isLegacy); materials = theMaterials; components = theComponents; } + public Boolean getLegacy() { + if (null == legacy) { + return false; + } + return true; + } + + public void setLegacy(Boolean isLegacy) { + if (isLegacy) { + legacy = ""; + } else { + legacy = null; + } + } + public List getMaterials() { return materials; } @@ -79,7 +99,7 @@ public class OpenRocketComponentDTO { public List asComponentPresets() throws InvalidComponentPresetException { List result = new ArrayList(components.size()); for (int i = 0; i < components.size(); i++) { - result.add(components.get(i).asComponentPreset(materials)); + result.add(components.get(i).asComponentPreset(getLegacy(), materials)); } return result; } diff --git a/core/src/net/sf/openrocket/preset/xml/ParachuteDTO.java b/core/src/net/sf/openrocket/preset/xml/ParachuteDTO.java index f325b32a9..1bf861570 100644 --- a/core/src/net/sf/openrocket/preset/xml/ParachuteDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/ParachuteDTO.java @@ -108,12 +108,13 @@ public class ParachuteDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(java.util.List materials) throws InvalidComponentPresetException { - return asComponentPreset(ComponentPreset.Type.PARACHUTE, materials); + public ComponentPreset asComponentPreset(Boolean legacy, java.util.List materials) throws InvalidComponentPresetException { + return asComponentPreset(legacy, ComponentPreset.Type.PARACHUTE, materials); } - public ComponentPreset asComponentPreset(ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); // TODO - seems some vendors use a bulk material for the sheet along with a Thickness. // need to fix the MATERIAL packed into the componentpreset. diff --git a/core/src/net/sf/openrocket/preset/xml/RailButtonDTO.java b/core/src/net/sf/openrocket/preset/xml/RailButtonDTO.java index ab42e38df..aa4f37bdc 100644 --- a/core/src/net/sf/openrocket/preset/xml/RailButtonDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/RailButtonDTO.java @@ -113,12 +113,13 @@ public class RailButtonDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(java.util.List materials) throws InvalidComponentPresetException { - return asComponentPreset(ComponentPreset.Type.RAIL_BUTTON, materials); + public ComponentPreset asComponentPreset(Boolean legacy, java.util.List materials) throws InvalidComponentPresetException { + return asComponentPreset(legacy, ComponentPreset.Type.RAIL_BUTTON, materials); } - public ComponentPreset asComponentPreset(ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.INNER_DIAMETER, this.getInsideDiameter()); props.put(ComponentPreset.OUTER_DIAMETER, this.getOutsideDiameter()); diff --git a/core/src/net/sf/openrocket/preset/xml/StreamerDTO.java b/core/src/net/sf/openrocket/preset/xml/StreamerDTO.java index 7ed0dd84b..490cfc499 100644 --- a/core/src/net/sf/openrocket/preset/xml/StreamerDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/StreamerDTO.java @@ -83,13 +83,14 @@ public class StreamerDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(java.util.List materials) throws InvalidComponentPresetException { - return asComponentPreset(ComponentPreset.Type.STREAMER, materials); + public ComponentPreset asComponentPreset(Boolean legacy, java.util.List materials) throws InvalidComponentPresetException { + return asComponentPreset(legacy, ComponentPreset.Type.STREAMER, materials); } - public ComponentPreset asComponentPreset(ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); addProps(props, materials); + props.put(ComponentPreset.LEGACY, legacy); // TODO - seems some vendors use a bulk material for the sheet along with a Thickness. // need to fix the MATERIAL packed into the componentpreset. props.put(ComponentPreset.WIDTH, this.getWidth()); diff --git a/core/src/net/sf/openrocket/preset/xml/TransitionDTO.java b/core/src/net/sf/openrocket/preset/xml/TransitionDTO.java index 1aaaac651..caf01e5ea 100644 --- a/core/src/net/sf/openrocket/preset/xml/TransitionDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/TransitionDTO.java @@ -176,8 +176,9 @@ public class TransitionDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.SHAPE, shape.getORShape()); props.put(ComponentPreset.FORE_OUTER_DIAMETER, this.getForeOutsideDiameter()); diff --git a/core/src/net/sf/openrocket/preset/xml/TubeCouplerDTO.java b/core/src/net/sf/openrocket/preset/xml/TubeCouplerDTO.java index 3cc096589..c6e5ad833 100644 --- a/core/src/net/sf/openrocket/preset/xml/TubeCouplerDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/TubeCouplerDTO.java @@ -34,7 +34,7 @@ public class TubeCouplerDTO extends BodyTubeDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { - return super.asComponentPreset(ComponentPreset.Type.TUBE_COUPLER, materials); + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { + return super.asComponentPreset(legacy, ComponentPreset.Type.TUBE_COUPLER, materials); } } diff --git a/swing/build.xml b/swing/build.xml index 7f817f208..512ba6943 100644 --- a/swing/build.xml +++ b/swing/build.xml @@ -64,6 +64,7 @@ + @@ -75,7 +76,7 @@ - + @@ -124,14 +125,6 @@ - - - - - @@ -139,7 +132,7 @@ Generating ORC file for vendor @{vendor} - @@ -166,7 +159,19 @@ - + + + + + + + + + + + + diff --git a/swing/resources-src/datafiles/components b/swing/resources-src/datafiles/components new file mode 160000 index 000000000..52e1e2c08 --- /dev/null +++ b/swing/resources-src/datafiles/components @@ -0,0 +1 @@ +Subproject commit 52e1e2c0800ebf62fd0e9cecd69aaaed6cddf80e diff --git a/swing/resources-src/datafiles/presets/Estes.orc b/swing/resources-src/datafiles/legacy_components/Estes.orc similarity index 99% rename from swing/resources-src/datafiles/presets/Estes.orc rename to swing/resources-src/datafiles/legacy_components/Estes.orc index 839719b71..f5f987563 100644 --- a/swing/resources-src/datafiles/presets/Estes.orc +++ b/swing/resources-src/datafiles/legacy_components/Estes.orc @@ -1,6 +1,7 @@ 0.1 + diff --git a/swing/resources-src/datafiles/presets/LocPrecision.orc b/swing/resources-src/datafiles/legacy_components/LocPrecision.orc similarity index 99% rename from swing/resources-src/datafiles/presets/LocPrecision.orc rename to swing/resources-src/datafiles/legacy_components/LocPrecision.orc index 039a4877b..ebfcdfbe6 100644 --- a/swing/resources-src/datafiles/presets/LocPrecision.orc +++ b/swing/resources-src/datafiles/legacy_components/LocPrecision.orc @@ -1,6 +1,7 @@ 0.1 + [material:.060 Carbon Fiber] diff --git a/swing/resources-src/datafiles/presets/Quest.orc b/swing/resources-src/datafiles/legacy_components/Quest.orc similarity index 99% rename from swing/resources-src/datafiles/presets/Quest.orc rename to swing/resources-src/datafiles/legacy_components/Quest.orc index 849a889c7..f5dc587a3 100644 --- a/swing/resources-src/datafiles/presets/Quest.orc +++ b/swing/resources-src/datafiles/legacy_components/Quest.orc @@ -1,6 +1,7 @@ 0.1 + diff --git a/swing/resources-src/datafiles/presets/bluetube.orc b/swing/resources-src/datafiles/legacy_components/bluetube.orc similarity index 99% rename from swing/resources-src/datafiles/presets/bluetube.orc rename to swing/resources-src/datafiles/legacy_components/bluetube.orc index e5ca86caf..c54ccca16 100644 --- a/swing/resources-src/datafiles/presets/bluetube.orc +++ b/swing/resources-src/datafiles/legacy_components/bluetube.orc @@ -1,6 +1,7 @@ 0.1 + Vulcanized Fiber diff --git a/swing/resources-src/datafiles/presets/bms.orc b/swing/resources-src/datafiles/legacy_components/bms.orc similarity index 99% rename from swing/resources-src/datafiles/presets/bms.orc rename to swing/resources-src/datafiles/legacy_components/bms.orc index 5d233a3bf..116b87954 100644 --- a/swing/resources-src/datafiles/presets/bms.orc +++ b/swing/resources-src/datafiles/legacy_components/bms.orc @@ -1,6 +1,7 @@ 0.1 + Balsa diff --git a/swing/resources-src/datafiles/presets/fliskits.orc b/swing/resources-src/datafiles/legacy_components/fliskits.orc similarity index 99% rename from swing/resources-src/datafiles/presets/fliskits.orc rename to swing/resources-src/datafiles/legacy_components/fliskits.orc index 3d85d4816..111b204ad 100644 --- a/swing/resources-src/datafiles/presets/fliskits.orc +++ b/swing/resources-src/datafiles/legacy_components/fliskits.orc @@ -1,6 +1,7 @@ 0.1 + Balsa diff --git a/swing/resources-src/datafiles/presets/giantleaprocketry.orc b/swing/resources-src/datafiles/legacy_components/giantleaprocketry.orc similarity index 99% rename from swing/resources-src/datafiles/presets/giantleaprocketry.orc rename to swing/resources-src/datafiles/legacy_components/giantleaprocketry.orc index 3fe782dd2..cf363ba7f 100644 --- a/swing/resources-src/datafiles/presets/giantleaprocketry.orc +++ b/swing/resources-src/datafiles/legacy_components/giantleaprocketry.orc @@ -1,6 +1,7 @@ 0.1 + Birch diff --git a/swing/resources-src/datafiles/presets/publicmissiles.orc b/swing/resources-src/datafiles/legacy_components/publicmissiles.orc similarity index 99% rename from swing/resources-src/datafiles/presets/publicmissiles.orc rename to swing/resources-src/datafiles/legacy_components/publicmissiles.orc index 2a9a79e8b..0acf3a329 100644 --- a/swing/resources-src/datafiles/presets/publicmissiles.orc +++ b/swing/resources-src/datafiles/legacy_components/publicmissiles.orc @@ -1,6 +1,7 @@ 0.1 + 1/16 In. braided nylon diff --git a/swing/resources-src/datafiles/presets/semroc.orc b/swing/resources-src/datafiles/legacy_components/semroc.orc similarity index 98% rename from swing/resources-src/datafiles/presets/semroc.orc rename to swing/resources-src/datafiles/legacy_components/semroc.orc index 378754d6d..cdeee9b6e 100644 --- a/swing/resources-src/datafiles/presets/semroc.orc +++ b/swing/resources-src/datafiles/legacy_components/semroc.orc @@ -1,6 +1,7 @@ 0.1 + 1/16 In. braided nylon @@ -107,7 +108,7 @@ SEMROC Astronautics BC-08542 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004252428464999999 true @@ -136,7 +137,7 @@ SEMROC Astronautics BC-1016 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.0034019427719999998 true @@ -165,7 +166,7 @@ SEMROC Astronautics BC-1019 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.003685438003 true @@ -194,7 +195,7 @@ SEMROC Astronautics BC-1020E [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.003685438003 true @@ -223,7 +224,7 @@ SEMROC Astronautics BC-1022 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004252428464999999 true @@ -252,7 +253,7 @@ SEMROC Astronautics BC-1024 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004252428464999999 true @@ -281,7 +282,7 @@ SEMROC Astronautics BC-1031 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004252428464999999 true @@ -310,7 +311,7 @@ SEMROC Astronautics BC-1032 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004252428464999999 true @@ -339,7 +340,7 @@ SEMROC Astronautics BC-1037 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004535923696 true @@ -368,7 +369,7 @@ SEMROC Astronautics BC-1039 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004819418927 true @@ -397,7 +398,7 @@ SEMROC Astronautics BC-1041 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005102914157999999 true @@ -426,7 +427,7 @@ SEMROC Astronautics BC-1041G [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005102914157999999 true @@ -455,7 +456,7 @@ SEMROC Astronautics BC-1041P [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005102914157999999 true @@ -484,7 +485,7 @@ SEMROC Astronautics BC-1045 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005386409389 true @@ -513,7 +514,7 @@ SEMROC Astronautics BC-1045P [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005386409389 true @@ -542,7 +543,7 @@ SEMROC Astronautics BC-1048 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005386409389 true @@ -571,7 +572,7 @@ SEMROC Astronautics BC-1050 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.030900980179 true @@ -600,7 +601,7 @@ SEMROC Astronautics BC-1051 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.00566990462 true @@ -629,7 +630,7 @@ SEMROC Astronautics BC-1052 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.006236895082 true @@ -3989,7 +3990,7 @@ SEMROC Astronautics BR-085225 [R] - Balsa Reducer 085 to 225 – Reversed + Balsa Reducer 085 to 225 - Reversed Balsa 0.022112628018 true @@ -4021,7 +4022,7 @@ SEMROC Astronautics BR-1013 [R] - Balsa Reducer 10 to 13 – Reversed + Balsa Reducer 10 to 13 - Reversed Balsa 0.005102914157999999 true @@ -4053,7 +4054,7 @@ SEMROC Astronautics BR-1016 [R] - Balsa Reducer 10 to 16 – Reversed + Balsa Reducer 10 to 16 - Reversed Balsa 0.009071847392 true @@ -4085,7 +4086,7 @@ SEMROC Astronautics BR-1016S [R] - Balsa Reducer 10 to 16 – Reversed + Balsa Reducer 10 to 16 - Reversed Balsa 0.008221361698999998 true @@ -4117,7 +4118,7 @@ SEMROC Astronautics BR-1116 [R] - Balsa Reducer 11 to 16 – Reversed + Balsa Reducer 11 to 16 - Reversed Balsa 0.009355342623 true @@ -4149,7 +4150,7 @@ SEMROC Astronautics BR-1118 [R] - Balsa Reducer 11 to 18 – Reversed + Balsa Reducer 11 to 18 - Reversed Balsa 0.010205828315999999 true @@ -4181,7 +4182,7 @@ SEMROC Astronautics BR-11516 [R] - Balsa Reducer 115 to 16 – Reversed + Balsa Reducer 115 to 16 - Reversed Balsa 0.029766999255 true @@ -4213,7 +4214,7 @@ SEMROC Astronautics BR-11518 [R] - Balsa Reducer 115 to 18 – Reversed + Balsa Reducer 115 to 18 - Reversed Balsa 0.031184475410000002 true @@ -4245,7 +4246,7 @@ SEMROC Astronautics BR-125-175 [R] - Balsa Reducer 125 to 175 – Reversed + Balsa Reducer 125 to 175 - Reversed Balsa 0.01417476155 true @@ -4277,7 +4278,7 @@ SEMROC Astronautics BR-125-175L [R] - Balsa Reducer 125 to 175 – Reversed + Balsa Reducer 125 to 175 - Reversed Balsa 0.018427190015 true @@ -4309,7 +4310,7 @@ SEMROC Astronautics BR-125-225 [R] - Balsa Reducer 125 to 225 – Reversed + Balsa Reducer 125 to 225 - Reversed Balsa 0.017009713859999998 true @@ -4341,7 +4342,7 @@ SEMROC Astronautics BR-1316 [R] - Balsa Reducer 13 to 16 – Reversed + Balsa Reducer 13 to 16 - Reversed Balsa 0.0068038855439999995 true @@ -4373,7 +4374,7 @@ SEMROC Astronautics BR-1316F [R] - Balsa Reducer 13 to 16 – Reversed + Balsa Reducer 13 to 16 - Reversed Balsa 0.010205828315999999 true @@ -4405,7 +4406,7 @@ SEMROC Astronautics BR-1316L [R] - Balsa Reducer 13 to 16 – Reversed + Balsa Reducer 13 to 16 - Reversed Balsa 0.008504856929999999 true @@ -4437,7 +4438,7 @@ SEMROC Astronautics BR-1316M [R] - Balsa Reducer 13 to 16 – Reversed + Balsa Reducer 13 to 16 - Reversed Balsa 0.007937866468 true @@ -4469,7 +4470,7 @@ SEMROC Astronautics BR-1320 [R] - Balsa Reducer 13 to 20 – Reversed + Balsa Reducer 13 to 20 - Reversed Balsa 0.007937866468 true @@ -4501,7 +4502,7 @@ SEMROC Astronautics BR-1320L [R] - Balsa Reducer 13 to 20 – Reversed + Balsa Reducer 13 to 20 - Reversed Balsa 0.015875732936 true @@ -4533,7 +4534,7 @@ SEMROC Astronautics BR-150-225 [R] - Balsa Reducer 150 to 225 – Reversed + Balsa Reducer 150 to 225 - Reversed Balsa 0.029766999255 true @@ -4565,7 +4566,7 @@ SEMROC Astronautics BR-150-275 [R] - Balsa Reducer 150 to 275 – Reversed + Balsa Reducer 150 to 275 - Reversed Balsa 0.041106808495 true @@ -4597,7 +4598,7 @@ SEMROC Astronautics BR-1618 [R] - Balsa Reducer 16 to 18 – Reversed + Balsa Reducer 16 to 18 - Reversed Balsa 0.007937866468 true @@ -4629,7 +4630,7 @@ SEMROC Astronautics BR-1618F [R] - Balsa Reducer 16 to 18 – Reversed + Balsa Reducer 16 to 18 - Reversed Balsa 0.008504856929999999 true @@ -4661,7 +4662,7 @@ SEMROC Astronautics BR-1620 [R] - Balsa Reducer 16 to 20 – Reversed + Balsa Reducer 16 to 20 - Reversed Balsa 0.008504856929999999 true @@ -4693,7 +4694,7 @@ SEMROC Astronautics BR-1620F [R] - Balsa Reducer 16 to 20 – Reversed + Balsa Reducer 16 to 20 - Reversed Balsa 0.0076543712370000004 true @@ -4725,7 +4726,7 @@ SEMROC Astronautics BR-16225F [R] - Balsa Reducer 16 to 225 – Reversed + Balsa Reducer 16 to 225 - Reversed Balsa 0.009355342623 true @@ -4757,7 +4758,7 @@ SEMROC Astronautics BR-175-225 [R] - Balsa Reducer 175 to 225 – Reversed + Balsa Reducer 175 to 225 - Reversed Balsa 0.02267961848 true @@ -4789,7 +4790,7 @@ SEMROC Astronautics BR-1820 [R] - Balsa Reducer 18 to 20 – Reversed + Balsa Reducer 18 to 20 - Reversed Balsa 0.007087380775 true @@ -4821,7 +4822,7 @@ SEMROC Astronautics BR-18225 [R] - Balsa Reducer 18 to 225 – Reversed + Balsa Reducer 18 to 225 - Reversed Balsa 0.008788352160999999 true @@ -4853,7 +4854,7 @@ SEMROC Astronautics BR-225-80H [R] - Balsa Reducer 225 to BT-80H – Reversed + Balsa Reducer 225 to BT-80H - Reversed Balsa 0.03685438003 true @@ -4885,7 +4886,7 @@ SEMROC Astronautics BR-510 [R] - Balsa Reducer 5 to 10 – Reversed + Balsa Reducer 5 to 10 - Reversed Balsa 0.003118447541 true @@ -4917,7 +4918,7 @@ SEMROC Astronautics BR-511 [R] - Balsa Reducer 5 to 11 – Reversed + Balsa Reducer 5 to 11 - Reversed Balsa 0.0034019427719999998 true @@ -4949,7 +4950,7 @@ SEMROC Astronautics BR-513 [R] - Balsa Reducer 5 to 13 – Reversed + Balsa Reducer 5 to 13 - Reversed Balsa 0.004535923696 true @@ -4981,7 +4982,7 @@ SEMROC Astronautics BR-57 [R] - Balsa Reducer 5 to 7 – Reversed + Balsa Reducer 5 to 7 - Reversed Balsa 0.001984466617 true @@ -5013,7 +5014,7 @@ SEMROC Astronautics BR-58 [R] - Balsa Reducer 5 to 8 – Reversed + Balsa Reducer 5 to 8 - Reversed Balsa 0.00283495231 true @@ -5045,7 +5046,7 @@ SEMROC Astronautics BR-58F [R] - Balsa Reducer 5 to 8F – Reversed + Balsa Reducer 5 to 8F - Reversed Balsa 0.00283495231 true @@ -5077,7 +5078,7 @@ SEMROC Astronautics BR-59 [R] - Balsa Reducer 5 to 9 – Reversed + Balsa Reducer 5 to 9 - Reversed Balsa 0.005102914157999999 true @@ -5109,7 +5110,7 @@ SEMROC Astronautics BR-60-18 [R] - Balsa Reducer BT-60 to ST-18 – Reversed + Balsa Reducer BT-60 to ST-18 - Reversed Balsa 0.008221361698999998 true @@ -5141,7 +5142,7 @@ SEMROC Astronautics BR-710 [R] - Balsa Reducer 7 to 10 – Reversed + Balsa Reducer 7 to 10 - Reversed Balsa 0.0034019427719999998 true @@ -5173,7 +5174,7 @@ SEMROC Astronautics BR-711 [R] - Balsa Reducer 7 to 11 – Reversed + Balsa Reducer 7 to 11 - Reversed Balsa 0.003685438003 true @@ -5205,7 +5206,7 @@ SEMROC Astronautics BR-713 [R] - Balsa Reducer 7 to 13 – Reversed + Balsa Reducer 7 to 13 - Reversed Balsa 0.005102914157999999 true @@ -5237,7 +5238,7 @@ SEMROC Astronautics BR-716 [R] - Balsa Reducer 7 to 16 – Reversed + Balsa Reducer 7 to 16 - Reversed Balsa 0.010205828315999999 true @@ -5269,7 +5270,7 @@ SEMROC Astronautics BR-718 [R] - Balsa Reducer 7 to 18 – Reversed + Balsa Reducer 7 to 18 - Reversed Balsa 0.011906799701999999 true @@ -5301,7 +5302,7 @@ SEMROC Astronautics BR-78 [R] - Balsa Reducer 7 to 8 – Reversed + Balsa Reducer 7 to 8 - Reversed Balsa 0.003685438003 true @@ -5333,7 +5334,7 @@ SEMROC Astronautics BR-78F [R] - Balsa Reducer 7 to 8F – Reversed + Balsa Reducer 7 to 8F - Reversed Balsa 0.004819418927 true @@ -5365,7 +5366,7 @@ SEMROC Astronautics BR-78S [R] - Balsa Reducer 7 to 8 – Reversed + Balsa Reducer 7 to 8 - Reversed Balsa 0.00283495231 true @@ -5397,7 +5398,7 @@ SEMROC Astronautics BR-79 [R] - Balsa Reducer 7 to 9 – Reversed + Balsa Reducer 7 to 9 - Reversed Balsa 0.004819418927 true @@ -5429,7 +5430,7 @@ SEMROC Astronautics BR-79L [R] - Balsa Reducer 7 to 9 – Reversed + Balsa Reducer 7 to 9 - Reversed Balsa 0.006520390313 true @@ -5461,7 +5462,7 @@ SEMROC Astronautics BR-810 [R] - Balsa Reducer 8 to 10 – Reversed + Balsa Reducer 8 to 10 - Reversed Balsa 0.003968933234 true @@ -5493,7 +5494,7 @@ SEMROC Astronautics BR-813 [R] - Balsa Reducer 8 to 13 – Reversed + Balsa Reducer 8 to 13 - Reversed Balsa 0.007370876006 true @@ -5525,7 +5526,7 @@ SEMROC Astronautics BR-813P [R] - Balsa Reducer 8 to 13 – Reversed + Balsa Reducer 8 to 13 - Reversed Balsa 0.007370876006 true @@ -5557,7 +5558,7 @@ SEMROC Astronautics BR-816 [R] - Balsa Reducer 8 to 16 – Reversed + Balsa Reducer 8 to 16 - Reversed Balsa 0.008504856929999999 true @@ -5589,7 +5590,7 @@ SEMROC Astronautics BR-816NT [R] - Balsa Reducer 8 to 16 – Reversed + Balsa Reducer 8 to 16 - Reversed Balsa 0.010772818778 true @@ -5621,7 +5622,7 @@ SEMROC Astronautics BR-8F11 [R] - Balsa Reducer 8F to 11 – Reversed + Balsa Reducer 8F to 11 - Reversed Balsa 0.005102914157999999 true @@ -5653,7 +5654,7 @@ SEMROC Astronautics BR-8F11L [R] - Balsa Reducer 8F to 11 – Reversed + Balsa Reducer 8F to 11 - Reversed Balsa 0.006236895082 true @@ -5685,7 +5686,7 @@ SEMROC Astronautics BR-916 [R] - Balsa Reducer 9 to 16 – Reversed + Balsa Reducer 9 to 16 - Reversed Balsa 0.008504856929999999 true @@ -5717,7 +5718,7 @@ SEMROC Astronautics BR-918 [R] - Balsa Reducer 9 to 18 – Reversed + Balsa Reducer 9 to 18 - Reversed Balsa 0.009071847392 true @@ -5749,7 +5750,7 @@ SEMROC Astronautics BR-920 [R] - Balsa Reducer 9 to 20 – Reversed + Balsa Reducer 9 to 20 - Reversed Balsa 0.009638837854 true @@ -9836,7 +9837,7 @@ SEMROC Astronautics TA-2050 [R] - Balsa Reducer BT-20 to BT-50 – Reversed + Balsa Reducer BT-20 to BT-50 - Reversed Balsa 0.004819418927 true @@ -9868,7 +9869,7 @@ SEMROC Astronautics TA-2050A [R] - Balsa Reducer BT-20 to BT-50 – Reversed + Balsa Reducer BT-20 to BT-50 - Reversed Balsa 0.003118447541 true @@ -9900,7 +9901,7 @@ SEMROC Astronautics TA-2050B [R] - Balsa Reducer BT-20 to BT-50 – Reversed + Balsa Reducer BT-20 to BT-50 - Reversed Balsa 0.0059533998509999995 true @@ -9932,7 +9933,7 @@ SEMROC Astronautics TA-2055 [R] - Balsa Reducer BT-20 to BT-55 – Reversed + Balsa Reducer BT-20 to BT-55 - Reversed Balsa 0.006236895082 true @@ -9964,7 +9965,7 @@ SEMROC Astronautics TA-2060 [R] - Balsa Reducer BT-20 to BT-60 – Reversed + Balsa Reducer BT-20 to BT-60 - Reversed Balsa 0.00566990462 true @@ -9996,7 +9997,7 @@ SEMROC Astronautics TA-5055 [R] - Balsa Reducer BT-50 to BT-55 – Reversed + Balsa Reducer BT-50 to BT-55 - Reversed Balsa 0.017009713859999998 true @@ -10028,7 +10029,7 @@ SEMROC Astronautics TA-5055L [R] - Balsa Reducer BT-50 to BT-55 – Reversed + Balsa Reducer BT-50 to BT-55 - Reversed Balsa 0.020128161401 true @@ -10060,7 +10061,7 @@ SEMROC Astronautics TA-5060 [R] - Balsa Reducer BT-50 to BT-60 – Reversed + Balsa Reducer BT-50 to BT-60 - Reversed Balsa 0.006520390313 true @@ -10092,7 +10093,7 @@ SEMROC Astronautics TA-5060C [R] - Balsa Reducer BT-50 to BT-60 – Reversed + Balsa Reducer BT-50 to BT-60 - Reversed Balsa 0.003968933234 true @@ -10124,7 +10125,7 @@ SEMROC Astronautics TA-5060E [R] - Balsa Reducer BT-50 to BT-60 – Reversed + Balsa Reducer BT-50 to BT-60 - Reversed Balsa 0.0059533998509999995 true @@ -10156,7 +10157,7 @@ SEMROC Astronautics TA-5065 [R] - Balsa Reducer BT-50 to BT-65 – Reversed + Balsa Reducer BT-50 to BT-65 - Reversed Balsa 0.007370876006 true @@ -10188,7 +10189,7 @@ SEMROC Astronautics TA-520 [R] - Balsa Reducer BT-5 to BT-20 – Reversed + Balsa Reducer BT-5 to BT-20 - Reversed Balsa 0.001133980924 true @@ -10220,7 +10221,7 @@ SEMROC Astronautics TA-5260A [R] - Balsa Reducer BT-52 to BT-60 – Reversed + Balsa Reducer BT-52 to BT-60 - Reversed Balsa 0.006520390313 true @@ -10252,7 +10253,7 @@ SEMROC Astronautics TA-5260C [R] - Balsa Reducer BT-52 to BT-60 – Reversed + Balsa Reducer BT-52 to BT-60 - Reversed Balsa 0.009355342623 true @@ -10284,7 +10285,7 @@ SEMROC Astronautics TA-550 [R] - Balsa Reducer BT-5 to BT-50 – Reversed + Balsa Reducer BT-5 to BT-50 - Reversed Balsa 0.0017009713859999999 true @@ -10316,7 +10317,7 @@ SEMROC Astronautics TA-5560 [R] - Balsa Reducer BT-55 to BT-60 – Reversed + Balsa Reducer BT-55 to BT-60 - Reversed Balsa 0.007087380775 true @@ -10348,7 +10349,7 @@ SEMROC Astronautics TA-5560A [R] - Balsa Reducer BT-55 to BT-60 – Reversed + Balsa Reducer BT-55 to BT-60 - Reversed Balsa 0.008221361698999998 true @@ -10380,7 +10381,7 @@ SEMROC Astronautics TA-5565 [R] - Balsa Reducer BT-55 to BT-65 – Reversed + Balsa Reducer BT-55 to BT-65 - Reversed Balsa 0.010772818778 true @@ -10412,7 +10413,7 @@ SEMROC Astronautics TA-6065 [R] - Balsa Reducer BT-60 to BT-65 – Reversed + Balsa Reducer BT-60 to BT-65 - Reversed Balsa 0.006520390313 true @@ -10444,7 +10445,7 @@ SEMROC Astronautics TA-6070 [R] - Balsa Reducer BT-60 to BT-70 – Reversed + Balsa Reducer BT-60 to BT-70 - Reversed Balsa 0.018427190015 true @@ -10476,7 +10477,7 @@ SEMROC Astronautics TA-6080 [R] - Balsa Reducer BT-60 to BT-80 – Reversed + Balsa Reducer BT-60 to BT-80 - Reversed Balsa 0.018427190015 true @@ -10508,7 +10509,7 @@ SEMROC Astronautics TA-7080 [R] - Balsa Reducer BT-70 to BT-80 – Reversed + Balsa Reducer BT-70 to BT-80 - Reversed Balsa 0.018427190015 true diff --git a/swing/resources-src/datafiles/rocksim_components/bluetube/BTDATA.CSV b/swing/resources-src/datafiles/rocksim_src/bluetube/BTDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bluetube/BTDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/bluetube/BTDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/bluetube/MATERIAL.CSV b/swing/resources-src/datafiles/rocksim_src/bluetube/MATERIAL.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bluetube/MATERIAL.CSV rename to swing/resources-src/datafiles/rocksim_src/bluetube/MATERIAL.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/bluetube/TCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/bluetube/TCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bluetube/TCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/bluetube/TCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/bluetube/readme.txt b/swing/resources-src/datafiles/rocksim_src/bluetube/readme.txt similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bluetube/readme.txt rename to swing/resources-src/datafiles/rocksim_src/bluetube/readme.txt diff --git a/swing/resources-src/datafiles/rocksim_components/bms/BHdata.csv b/swing/resources-src/datafiles/rocksim_src/bms/BHdata.csv similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bms/BHdata.csv rename to swing/resources-src/datafiles/rocksim_src/bms/BHdata.csv diff --git a/swing/resources-src/datafiles/rocksim_components/bms/BTdata.csv b/swing/resources-src/datafiles/rocksim_src/bms/BTdata.csv similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bms/BTdata.csv rename to swing/resources-src/datafiles/rocksim_src/bms/BTdata.csv diff --git a/swing/resources-src/datafiles/rocksim_components/bms/CRdata.csv b/swing/resources-src/datafiles/rocksim_src/bms/CRdata.csv similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bms/CRdata.csv rename to swing/resources-src/datafiles/rocksim_src/bms/CRdata.csv diff --git a/swing/resources-src/datafiles/rocksim_components/bms/LLdata.csv b/swing/resources-src/datafiles/rocksim_src/bms/LLdata.csv similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bms/LLdata.csv rename to swing/resources-src/datafiles/rocksim_src/bms/LLdata.csv diff --git a/swing/resources-src/datafiles/rocksim_components/bms/MATERIAL.CSV b/swing/resources-src/datafiles/rocksim_src/bms/MATERIAL.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bms/MATERIAL.CSV rename to swing/resources-src/datafiles/rocksim_src/bms/MATERIAL.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/bms/NCdata.csv b/swing/resources-src/datafiles/rocksim_src/bms/NCdata.csv similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bms/NCdata.csv rename to swing/resources-src/datafiles/rocksim_src/bms/NCdata.csv diff --git a/swing/resources-src/datafiles/rocksim_components/bms/TCdata.csv b/swing/resources-src/datafiles/rocksim_src/bms/TCdata.csv similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bms/TCdata.csv rename to swing/resources-src/datafiles/rocksim_src/bms/TCdata.csv diff --git a/swing/resources-src/datafiles/rocksim_components/bms/TRdata.csv b/swing/resources-src/datafiles/rocksim_src/bms/TRdata.csv similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bms/TRdata.csv rename to swing/resources-src/datafiles/rocksim_src/bms/TRdata.csv diff --git a/swing/resources-src/datafiles/rocksim_components/bms/ebdata.csv b/swing/resources-src/datafiles/rocksim_src/bms/ebdata.csv similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/bms/ebdata.csv rename to swing/resources-src/datafiles/rocksim_src/bms/ebdata.csv diff --git a/swing/resources-src/datafiles/rocksim_components/estes/BTDATA.CSV b/swing/resources-src/datafiles/rocksim_src/estes/BTDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/estes/BTDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/estes/BTDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/estes/EBDATA.CSV b/swing/resources-src/datafiles/rocksim_src/estes/EBDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/estes/EBDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/estes/EBDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/estes/LLDATA.CSV b/swing/resources-src/datafiles/rocksim_src/estes/LLDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/estes/LLDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/estes/LLDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/estes/MATERIAL.CSV b/swing/resources-src/datafiles/rocksim_src/estes/MATERIAL.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/estes/MATERIAL.CSV rename to swing/resources-src/datafiles/rocksim_src/estes/MATERIAL.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/estes/MODATA.CSV b/swing/resources-src/datafiles/rocksim_src/estes/MODATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/estes/MODATA.CSV rename to swing/resources-src/datafiles/rocksim_src/estes/MODATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/estes/NCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/estes/NCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/estes/NCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/estes/NCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/estes/PCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/estes/PCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/estes/PCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/estes/PCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/estes/TCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/estes/TCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/estes/TCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/estes/TCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/estes/TRDATA.CSV b/swing/resources-src/datafiles/rocksim_src/estes/TRDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/estes/TRDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/estes/TRDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/giantleaprocketry/BHDATA.CSV b/swing/resources-src/datafiles/rocksim_src/giantleaprocketry/BHDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/giantleaprocketry/BHDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/giantleaprocketry/BHDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/giantleaprocketry/BTDATA.CSV b/swing/resources-src/datafiles/rocksim_src/giantleaprocketry/BTDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/giantleaprocketry/BTDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/giantleaprocketry/BTDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/giantleaprocketry/CRDATA.CSV b/swing/resources-src/datafiles/rocksim_src/giantleaprocketry/CRDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/giantleaprocketry/CRDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/giantleaprocketry/CRDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/giantleaprocketry/LLDATA.CSV b/swing/resources-src/datafiles/rocksim_src/giantleaprocketry/LLDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/giantleaprocketry/LLDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/giantleaprocketry/LLDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/giantleaprocketry/MATERIAL.CSV b/swing/resources-src/datafiles/rocksim_src/giantleaprocketry/MATERIAL.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/giantleaprocketry/MATERIAL.CSV rename to swing/resources-src/datafiles/rocksim_src/giantleaprocketry/MATERIAL.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/giantleaprocketry/MODATA.CSV b/swing/resources-src/datafiles/rocksim_src/giantleaprocketry/MODATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/giantleaprocketry/MODATA.CSV rename to swing/resources-src/datafiles/rocksim_src/giantleaprocketry/MODATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/giantleaprocketry/NCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/giantleaprocketry/NCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/giantleaprocketry/NCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/giantleaprocketry/NCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/giantleaprocketry/PCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/giantleaprocketry/PCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/giantleaprocketry/PCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/giantleaprocketry/PCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/giantleaprocketry/TCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/giantleaprocketry/TCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/giantleaprocketry/TCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/giantleaprocketry/TCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/BHDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/BHDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/BHDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/BHDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/BTDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/BTDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/BTDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/BTDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/CFDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/CFDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/CFDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/CFDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/CRDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/CRDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/CRDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/CRDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/EBDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/EBDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/EBDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/EBDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/FSDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/FSDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/FSDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/FSDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/GRAPHS.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/GRAPHS.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/GRAPHS.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/GRAPHS.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/LLDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/LLDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/LLDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/LLDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/MATERIAL.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/MATERIAL.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/MATERIAL.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/MATERIAL.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/MODATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/MODATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/MODATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/MODATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/NCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/NCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/NCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/NCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/PCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/PCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/PCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/PCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/SLDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/SLDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/SLDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/SLDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/STDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/STDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/STDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/STDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/TCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/TCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/TCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/TCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/publicmissiles/TRDATA.CSV b/swing/resources-src/datafiles/rocksim_src/publicmissiles/TRDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/publicmissiles/TRDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/publicmissiles/TRDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/quest/BTDATA.CSV b/swing/resources-src/datafiles/rocksim_src/quest/BTDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/quest/BTDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/quest/BTDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/quest/CRDATA.CSV b/swing/resources-src/datafiles/rocksim_src/quest/CRDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/quest/CRDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/quest/CRDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/quest/EBDATA.CSV b/swing/resources-src/datafiles/rocksim_src/quest/EBDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/quest/EBDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/quest/EBDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/quest/MATERIAL.CSV b/swing/resources-src/datafiles/rocksim_src/quest/MATERIAL.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/quest/MATERIAL.CSV rename to swing/resources-src/datafiles/rocksim_src/quest/MATERIAL.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/quest/NCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/quest/NCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/quest/NCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/quest/NCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/quest/PCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/quest/PCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/quest/PCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/quest/PCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/quest/STDATA.CSV b/swing/resources-src/datafiles/rocksim_src/quest/STDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/quest/STDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/quest/STDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/quest/TCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/quest/TCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/quest/TCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/quest/TCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/quest/TRDATA.CSV b/swing/resources-src/datafiles/rocksim_src/quest/TRDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/quest/TRDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/quest/TRDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/semroc/BHDATA.CSV b/swing/resources-src/datafiles/rocksim_src/semroc/BHDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/semroc/BHDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/semroc/BHDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/semroc/BTDATA.CSV b/swing/resources-src/datafiles/rocksim_src/semroc/BTDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/semroc/BTDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/semroc/BTDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/semroc/CRDATA.CSV b/swing/resources-src/datafiles/rocksim_src/semroc/CRDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/semroc/CRDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/semroc/CRDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/semroc/EBDATA.CSV b/swing/resources-src/datafiles/rocksim_src/semroc/EBDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/semroc/EBDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/semroc/EBDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/semroc/LLDATA.CSV b/swing/resources-src/datafiles/rocksim_src/semroc/LLDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/semroc/LLDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/semroc/LLDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/semroc/MATERIAL.CSV b/swing/resources-src/datafiles/rocksim_src/semroc/MATERIAL.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/semroc/MATERIAL.CSV rename to swing/resources-src/datafiles/rocksim_src/semroc/MATERIAL.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/semroc/NCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/semroc/NCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/semroc/NCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/semroc/NCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/semroc/PCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/semroc/PCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/semroc/PCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/semroc/PCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/semroc/STDATA.CSV b/swing/resources-src/datafiles/rocksim_src/semroc/STDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/semroc/STDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/semroc/STDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/semroc/TCDATA.CSV b/swing/resources-src/datafiles/rocksim_src/semroc/TCDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/semroc/TCDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/semroc/TCDATA.CSV diff --git a/swing/resources-src/datafiles/rocksim_components/semroc/TRDATA.CSV b/swing/resources-src/datafiles/rocksim_src/semroc/TRDATA.CSV similarity index 100% rename from swing/resources-src/datafiles/rocksim_components/semroc/TRDATA.CSV rename to swing/resources-src/datafiles/rocksim_src/semroc/TRDATA.CSV diff --git a/swing/resources/datafiles/presets/system.ser b/swing/resources/datafiles/presets/system.ser deleted file mode 100644 index 28a7bbe93..000000000 Binary files a/swing/resources/datafiles/presets/system.ser and /dev/null differ diff --git a/swing/src/net/sf/openrocket/database/ComponentPresetDatabaseLoader.java b/swing/src/net/sf/openrocket/database/ComponentPresetDatabaseLoader.java index 4ab2f4b15..f91706838 100644 --- a/swing/src/net/sf/openrocket/database/ComponentPresetDatabaseLoader.java +++ b/swing/src/net/sf/openrocket/database/ComponentPresetDatabaseLoader.java @@ -91,23 +91,17 @@ public class ComponentPresetDatabaseLoader extends AsynchronousDatabaseLoader { */ private void loadPresetComponents() { log.info("Loading component presets from " + SYSTEM_PRESET_DIR); - FileIterator iterator = DirectoryIterator.findDirectory(SYSTEM_PRESET_DIR, new SimpleFileFilter("", false, "ser")); + FileIterator iterator = DirectoryIterator.findDirectory(SYSTEM_PRESET_DIR, new SimpleFileFilter("", false, "orc")); if(iterator == null) return; - + while (iterator.hasNext()) { Pair f = iterator.next(); - try { - ObjectInputStream ois = new ObjectInputStream(f.getV()); - @SuppressWarnings("unchecked") - List list = (List) ois.readObject(); - componentPresetDao.addAll(list); - fileCount++; - presetCount += list.size(); - } catch (Exception ex) { - throw new BugException(ex); - } + Collection presets = loadFile(f.getU(), f.getV()); + componentPresetDao.addAll(presets); + fileCount++; + presetCount += presets.size(); } } diff --git a/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java b/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java index 8c98bfb57..d43319345 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java @@ -49,7 +49,9 @@ public class ComponentPresetChooserDialog extends JDialog { private JTextField filterText; private JCheckBox foreDiameterFilterCheckBox; private JCheckBox aftDiameterFilterCheckBox; - + private JCheckBox showLegacyCheckBox; + + private ComponentPresetRowFilter legacyFilter; private ComponentPresetRowFilter foreDiameterFilter; private ComponentPresetRowFilter aftDiameterFilter; @@ -58,6 +60,7 @@ public class ComponentPresetChooserDialog extends JDialog { * outerDiamtereColumnIndex is the index of the column associated with the OUTER_DIAMETER * field. This index is needed by the matchOuterDiameterCheckBox to implement filtering. */ + int legacyColumnIndex = -1; int aftDiameterColumnIndex = -1; int foreDiameterColumnIndex = -1; @@ -87,6 +90,9 @@ public class ComponentPresetChooserDialog extends JDialog { if (!displayedColumnKeys.contains(key)) { continue; } + if (key == ComponentPreset.LEGACY) { + legacyColumnIndex = i; + } if (key == ComponentPreset.OUTER_DIAMETER || key == ComponentPreset.AFT_OUTER_DIAMETER) { aftDiameterColumnIndex = i; } @@ -126,17 +132,20 @@ public class ComponentPresetChooserDialog extends JDialog { }); panel.add(sub, "growx, ay 0, gapright para"); - - - panel.add(getFilterCheckboxes(), "wrap para"); - + + // need to create componentSelectionTable before filter checkboxes, + // but add to panel after componentSelectionTable = new ComponentPresetTable(presetType, presets, displayedColumnKeys); // GUIUtil.setAutomaticColumnTableWidths(componentSelectionTable, 20); int w = componentSelectionTable.getRowHeight() + 4; - TableColumn tc = componentSelectionTable.getColumnModel().getColumn(0); + XTableColumnModel tm = componentSelectionTable.getXColumnModel(); + //TableColumn tc = componentSelectionTable.getColumnModel().getColumn(0); + TableColumn tc = tm.getColumn(0); tc.setPreferredWidth(w); tc.setMaxWidth(w); tc.setMinWidth(w); + + panel.add(getFilterCheckboxes(tm, legacyColumnIndex), "wrap para"); JScrollPane scrollpane = new JScrollPane(); scrollpane.setViewportView(componentSelectionTable); @@ -169,10 +178,12 @@ public class ComponentPresetChooserDialog extends JDialog { GUIUtil.rememberWindowSize(this); GUIUtil.setDisposableDialogOptions(this, okButton); + + updateFilters(); } - private JPanel getFilterCheckboxes() { + private JPanel getFilterCheckboxes(XTableColumnModel tm, int legacyColumnIndex) { JPanel panel = new JPanel(new MigLayout("ins 0")); /* @@ -194,9 +205,27 @@ public class ComponentPresetChooserDialog extends JDialog { } componentSelectionTable.updateData(presets); } - }); + }); } + /* + * Add legacy component filter checkbox + */ + TableColumn legacyColumn = tm.getColumn(legacyColumnIndex); + tm.setColumnVisible(legacyColumn, false); + legacyFilter = new ComponentPresetRowFilter(false, legacyColumnIndex); + showLegacyCheckBox = new JCheckBox(); + showLegacyCheckBox.setText(trans.get("ComponentPresetChooserDialog.checkbox.showLegacyCheckBox")); + panel.add(showLegacyCheckBox, "wrap"); + + showLegacyCheckBox.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + updateFilters(); + tm.setColumnVisible(legacyColumn, showLegacyCheckBox.isSelected()); + } + }); + if(component instanceof SymmetricComponent) { final SymmetricComponent curSym = (SymmetricComponent) component; /* @@ -268,12 +297,15 @@ public class ComponentPresetChooserDialog extends JDialog { } catch (java.util.regex.PatternSyntaxException e) { } } - if (aftDiameterFilterCheckBox.isSelected()) { + if ((null != aftDiameterFilterCheckBox) && aftDiameterFilterCheckBox.isSelected()) { filters.add(aftDiameterFilter); } - if (foreDiameterFilterCheckBox.isSelected()) { + if ((null != foreDiameterFilterCheckBox) && foreDiameterFilterCheckBox.isSelected()) { filters.add(foreDiameterFilter); } + if (!showLegacyCheckBox.isSelected()) { + filters.add(legacyFilter); + } componentSelectionTable.setRowFilter(RowFilter.andFilter(filters)); } diff --git a/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetRowFilter.java b/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetRowFilter.java index 7c66aa136..7be37dc5e 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetRowFilter.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetRowFilter.java @@ -7,31 +7,45 @@ import net.sf.openrocket.unit.Value; import net.sf.openrocket.util.MathUtil; public class ComponentPresetRowFilter extends RowFilter { - - private final double value; + + private Boolean bvalue = false; + private double dvalue = 0.0; + private double epsilon = 0.0; private final int column; - private final double epsilon; ComponentPresetRowFilter(double value, int column) { - this.value = value; + this.dvalue = value; this.column = column; /* * Accept 5% difference, but at least 1mm. */ this.epsilon = MathUtil.max(value * 0.05, 0.001); } + + ComponentPresetRowFilter(Boolean value, int column) { + this.bvalue = value; + this.column = column; + } + @Override public boolean include(RowFilter.Entry entry) { Object o = entry.getValue(column); if (o instanceof Value) { Value v = (Value) o; - return Math.abs(value - v.getValue()) < epsilon; + return Math.abs(dvalue - v.getValue()) < epsilon; } + if (o instanceof Double) { Double d = (Double) o; - return Math.abs(value - d) < epsilon; + return Math.abs(dvalue - d) < epsilon; } + + if (o instanceof Boolean) { + Boolean b = (Boolean) o; + return b.equals(bvalue); + } + return true; } diff --git a/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetTable.java b/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetTable.java index 5a3be9ed5..e7ee2db32 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetTable.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetTable.java @@ -126,12 +126,27 @@ public class ComponentPresetTable extends JTable { } }); + } else if ( key.getType() == Boolean.class ) { + sorter.setComparator(index, new Comparator() { + + @Override + public int compare(Boolean b1, Boolean b2) { + if (b1 && !b2) { + return 1; + } else if (!b1 && b2) { + return -1; + } else { + return 0; + } + } + }); } + if ( visibleColumnKeys.indexOf(key) < 0 ) { hiddenColumns.add(columns[index]); } index ++; - } + } } this.setAutoCreateColumnsFromModel(false); @@ -165,6 +180,10 @@ public class ComponentPresetTable extends JTable { }); } + public XTableColumnModel getXColumnModel() { + return tableColumnModel; + } + public void setRowFilter( RowFilter filter ) { sorter.setRowFilter( filter ); } diff --git a/swing/src/net/sf/openrocket/utils/SerializePresets.java b/swing/src/net/sf/openrocket/utils/SerializePresets.java index fb082f53b..d872fc223 100644 --- a/swing/src/net/sf/openrocket/utils/SerializePresets.java +++ b/swing/src/net/sf/openrocket/utils/SerializePresets.java @@ -17,6 +17,11 @@ import net.sf.openrocket.preset.xml.OpenRocketComponentLoader; import net.sf.openrocket.util.Pair; public class SerializePresets extends BasicApplication { + + private static void printUsage() { + System.err.println("SerializePresets ... "); + System.err.println(" (may be repeated) is base directory for a set of .orc preset files"); + } /** * @param args @@ -26,25 +31,36 @@ public class SerializePresets extends BasicApplication { SerializePresets app = new SerializePresets(); app.initializeApplication(); + if (args.length < 1) { + printUsage(); + throw new IllegalArgumentException("Invalid Command Line Params"); + } + Locale.setDefault(Locale.ENGLISH); ComponentPresetDatabase componentPresetDao = new ComponentPresetDatabase(); - - FileIterator iterator = DirectoryIterator.findDirectory("resources-src/datafiles/presets", new SimpleFileFilter("", false, "orc")); - - if (iterator == null) { - throw new RuntimeException("Can't find resources-src/presets directory"); - } - while (iterator.hasNext()) { - Pair f = iterator.next(); - String fileName = f.getU(); - InputStream is = f.getV(); + + for (int i = 0; i < args.length; i++) { + + System.err.println("Processing .orc files in directory " + args[i]); - OpenRocketComponentLoader loader = new OpenRocketComponentLoader(); - Collection presets = loader.load(is, fileName); - - componentPresetDao.addAll(presets); + FileIterator iterator = DirectoryIterator.findDirectory(args[i], new SimpleFileFilter("", false, "orc")); + if (iterator == null) { + throw new RuntimeException("Can't find " + args[i] + " directory"); + } + while (iterator.hasNext()) { + Pair f = iterator.next(); + String fileName = f.getU(); + InputStream is = f.getV(); + + OpenRocketComponentLoader loader = new OpenRocketComponentLoader(); + Collection presets = loader.load(is, fileName); + + componentPresetDao.addAll(presets); + + } + } List list = componentPresetDao.listAll();