Added ability to open *.csv files to menu.
[debian/openrocket] / core / src / net / sf / openrocket / preset / loader / BaseComponentLoader.java
index 741b8969e75707d7697fa33860fc7174e2eea639..d17820977473ec70a747211c1eb7bc8a8419ea68 100644 (file)
@@ -1,21 +1,20 @@
 package net.sf.openrocket.preset.loader;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import net.sf.openrocket.material.Material;
 import net.sf.openrocket.preset.ComponentPreset;
 import net.sf.openrocket.preset.ComponentPresetFactory;
 import net.sf.openrocket.preset.InvalidComponentPresetException;
 import net.sf.openrocket.preset.TypedPropertyMap;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
 public abstract class BaseComponentLoader extends RocksimComponentFileLoader {
 
        List<ComponentPreset> presets;
 
-       public BaseComponentLoader(MaterialHolder materials) {
-               super();
+       public BaseComponentLoader(MaterialHolder materials, File theBasePathToLoadFrom) {
+               super(theBasePathToLoadFrom);
                presets = new ArrayList<ComponentPreset>();
 
                fileColumns.add( new ManufacturerColumnParser() );
@@ -27,14 +26,18 @@ public abstract class BaseComponentLoader extends RocksimComponentFileLoader {
        }
 
        protected abstract ComponentPreset.Type getComponentPresetType();
-       
+
        public List<ComponentPreset> getPresets() {
                return presets;
        }
-       
+
        @Override
        protected void postProcess(TypedPropertyMap props) {
                try {
+            //Some Rocksim files don't contain description, so set it to the part no when not available.
+            if (!props.containsKey(ComponentPreset.DESCRIPTION)) {
+                props.put(ComponentPreset.DESCRIPTION, props.get(ComponentPreset.PARTNO));
+            }
                        props.put(ComponentPreset.TYPE, getComponentPresetType());
                        ComponentPreset preset = ComponentPresetFactory.create(props);
                        presets.add(preset);