1 package net.sf.openrocket.preset.loader;
3 import net.sf.openrocket.material.Material;
4 import net.sf.openrocket.preset.ComponentPreset;
5 import net.sf.openrocket.preset.ComponentPreset.Type;
6 import net.sf.openrocket.preset.TypedPropertyMap;
8 public class ParachuteLoader extends BaseComponentLoader {
10 private final MaterialHolder materials;
12 public ParachuteLoader(MaterialHolder materials) {
14 this.materials = materials;
15 fileColumns.add(new IntegerColumnParser("n sides", ComponentPreset.SIDES));
16 fileColumns.add(new DoubleUnitColumnParser("OD","Units",ComponentPreset.DIAMETER));
17 fileColumns.add(new IntegerColumnParser("Shroud Count", ComponentPreset.LINE_COUNT));
18 fileColumns.add(new DoubleUnitColumnParser("Shroud Len", "Units", ComponentPreset.LINE_LENGTH));
19 fileColumns.add(new LineMaterialColumnParser(materials,"Shroud Material",ComponentPreset.LINE_MATERIAL));
20 fileColumns.add(new DoubleUnitColumnParser("Chute Thickness", "Units", ComponentPreset.THICKNESS));
21 fileColumns.add( new SurfaceMaterialColumnParser(materials,"Chute Material", ComponentPreset.MATERIAL));
26 protected Type getComponentPresetType() {
27 return ComponentPreset.Type.PARACHUTE;
32 protected RocksimComponentFileType getFileType() {
33 return RocksimComponentFileType.PARACHUTE;
38 protected void postProcess(TypedPropertyMap props) {
39 super.postProcess(props);
41 // Fix the material since some files use bulk materials for streamers.
42 Double thickness = props.get( ComponentPreset.THICKNESS );
43 Material.Surface material = (Material.Surface) props.get( ComponentPreset.MATERIAL );
45 material = materials.getSurfaceMaterial(material, thickness);
46 props.put(ComponentPreset.MATERIAL, material);