From 909aa211d0ca359b04034f5fe52dd76c6fcf8210 Mon Sep 17 00:00:00 2001 From: Kevin Ruland Date: Wed, 6 Jun 2012 18:03:43 +0000 Subject: [PATCH] Change OpenRocketComponentSaver unmarshal function to return the whole OpenRocketComponentDTO instead of just the contained components. This gives the ComponentPresetEditor a change to grab the Materials in the file for use in the ui. --- .../sf/openrocket/gui/preset/ComponentPresetEditor.java | 8 +++++--- .../openrocket/preset/xml/OpenRocketComponentLoader.java | 2 +- .../openrocket/preset/xml/OpenRocketComponentSaver.java | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/core/src/net/sf/openrocket/gui/preset/ComponentPresetEditor.java b/core/src/net/sf/openrocket/gui/preset/ComponentPresetEditor.java index 0c4ff3a26..9f11cdd66 100644 --- a/core/src/net/sf/openrocket/gui/preset/ComponentPresetEditor.java +++ b/core/src/net/sf/openrocket/gui/preset/ComponentPresetEditor.java @@ -5,7 +5,7 @@ import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; -import java.io.FileInputStream; +import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -38,7 +38,7 @@ import net.sf.openrocket.material.Material; import net.sf.openrocket.preset.ComponentPreset; import net.sf.openrocket.preset.loader.MaterialHolder; import net.sf.openrocket.preset.loader.RocksimComponentFileTranslator; -import net.sf.openrocket.preset.xml.OpenRocketComponentLoader; +import net.sf.openrocket.preset.xml.OpenRocketComponentDTO; import net.sf.openrocket.preset.xml.OpenRocketComponentSaver; import net.sf.openrocket.startup.Application; @@ -352,7 +352,9 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene List presets = null; if (file.getName().toLowerCase().endsWith(".orc")) { - presets = (List) new OpenRocketComponentLoader().load(new FileInputStream(file), file.getName()); + OpenRocketComponentDTO fileContents = new OpenRocketComponentSaver().unmarshalFromOpenRocketComponent(new FileReader(file)); + editContext.setMaterialsLoaded( new MaterialHolder(fileContents.asMaterialList()) ); + presets = fileContents.asComponentPresets(); } else { if (file.getName().toLowerCase().endsWith(".csv")) { diff --git a/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentLoader.java b/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentLoader.java index a84f7f68a..fc6893195 100644 --- a/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentLoader.java +++ b/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentLoader.java @@ -28,7 +28,7 @@ public class OpenRocketComponentLoader implements Loader { try { List presets; - presets = new OpenRocketComponentSaver().unmarshalFromOpenRocketComponent( new InputStreamReader (stream)); + presets = (new OpenRocketComponentSaver().unmarshalFromOpenRocketComponent( new InputStreamReader (stream))).asComponentPresets(); for( ComponentPreset preset : presets ) { if ( favorites.contains(preset.preferenceKey())) { preset.setFavorite(true); diff --git a/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentSaver.java b/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentSaver.java index 6a70fe2c6..934d4be5e 100644 --- a/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentSaver.java +++ b/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentSaver.java @@ -109,9 +109,9 @@ public class OpenRocketComponentSaver { * @throws InvalidComponentPresetException * */ - public List unmarshalFromOpenRocketComponent(Reader is) throws JAXBException, + public OpenRocketComponentDTO unmarshalFromOpenRocketComponent(Reader is) throws JAXBException, InvalidComponentPresetException { - return fromOpenRocketComponent(is).asComponentPresets(); + return fromOpenRocketComponent(is); } /**