diff --git a/core/resources/l10n/messages.properties b/core/resources/l10n/messages.properties
index c9f462b4c..09862a8f8 100644
--- a/core/resources/l10n/messages.properties
+++ b/core/resources/l10n/messages.properties
@@ -725,6 +725,7 @@ AppearanceCfg.lbl.Usedefault = Use default
AppearanceCfg.but.savedefault = Save as default appearance
AppearanceCfg.lbl.Texture = Texture:
AppearanceCfg.lbl.shine = Shine:
+AppearanceCfg.lbl.color.Color = Color:
AppearanceCfg.lbl.color.diffuse = Diffuse Color:
AppearanceCfg.lbl.color.ambient = Ambient Color:
AppearanceCfg.lbl.color.specular = Specular Color:
@@ -1061,10 +1062,6 @@ StorageOptChooser.lbl.seconds = seconds
StorageOptChooser.rdbut.Onlyprimfig = Only primary figures
StorageOptChooser.lbl.longC1 = Store only the values shown in the summary table.
StorageOptChooser.lbl.longC2 = This results in the smallest files.
-StorageOptChooser.checkbox.IncludeDecals = Include decals
-StorageOptChooser.lbl.IncludeDecals = "Including decals will produce a compressed zip file"
-StorageOptChooser.checkbox.Compfile = Compress file
-StorageOptChooser.lbl.UsingComp = Using compression reduces the file size significantly.
StorageOptChooser.lbl.longD1 = An estimate on how large the resulting file would be with the present options.
StorageOptChooser.ttip.Saveopt = Save options
StorageOptChooser.lbl.Estfilesize = Estimated file size:
diff --git a/core/src/net/sf/openrocket/document/DecalRegistry.java b/core/src/net/sf/openrocket/document/DecalRegistry.java
index 4a7c3b4b1..5b51b4f32 100644
--- a/core/src/net/sf/openrocket/document/DecalRegistry.java
+++ b/core/src/net/sf/openrocket/document/DecalRegistry.java
@@ -27,10 +27,6 @@ public class DecalRegistry {
private boolean isZipFile = false;
private Map exportedDecalMap = new HashMap();
-
- /* TODO - should we implement caching?
- private Map cache = new HashMap();
- */
public void setBaseFile(FileInfo fileInfo) {
this.fileInfo = fileInfo;
@@ -52,7 +48,7 @@ public class DecalRegistry {
return false;
}
try {
- InputStream is = forwardToEntry(name);
+ InputStream is = findInZipContainer(name);
if ( is != null ) {
is.close();
return true;
@@ -63,7 +59,7 @@ public class DecalRegistry {
return false;
}
}
-
+
/**
* This function returns an InputStream backed by a byte[] containing the decal pixels.
* If it reads in the bytes from an actual file, the underlying file is closed.
@@ -74,18 +70,11 @@ public class DecalRegistry {
* @throws IOException
*/
public InputStream getDecal( String name ) throws FileNotFoundException, IOException {
- /* TODO
- // if the decal has already been cached return it.
- byte[] bytes = cache.get(name);
- if ( bytes != null ) {
- return new ByteArrayInputStream(bytes);
- }
- */
// This is the InputStream to be returned.
InputStream rawIs = null;
-
+
// First check if the decal had been exported
{
File exportedFile= exportedDecalMap.get(name);
@@ -101,7 +90,7 @@ public class DecalRegistry {
}
if ( rawIs == null && isZipFile ) {
- rawIs = forwardToEntry(name);
+ rawIs = findInZipContainer(name);
}
// Check absolute file name:
@@ -131,7 +120,6 @@ public class DecalRegistry {
try {
byte[] bytes = FileUtils.readBytes(rawIs);
- // TODO - here we would update the cache.
return new ByteArrayInputStream(bytes);
}
finally {
@@ -141,7 +129,7 @@ public class DecalRegistry {
}
public void exportDecal( String decalName, File selectedFile ) throws IOException {
-
+
try {
InputStream is = getDecal(decalName);
OutputStream os = new BufferedOutputStream( new FileOutputStream(selectedFile));
@@ -150,21 +138,26 @@ public class DecalRegistry {
is.close();
os.close();
-
+
exportedDecalMap.put(decalName, selectedFile );
-
+
}
catch (IOException iex) {
throw new BugException(iex);
}
-
-
+
+
}
-
-
- private ZipInputStream forwardToEntry( String name ) throws IOException {
- ZipInputStream zis = new ZipInputStream(fileInfo.fileURL.openStream());
+
+
+ private ZipInputStream findInZipContainer( String name ) {
+ ZipInputStream zis = null;
+ try {
+ zis = new ZipInputStream(fileInfo.fileURL.openStream());
+ } catch( IOException ex ) {
+ return null;
+ }
try {
ZipEntry entry = zis.getNextEntry();
while ( entry != null ) {
@@ -173,12 +166,16 @@ public class DecalRegistry {
}
entry = zis.getNextEntry();
}
+ zis.close();
+ return null;
}
catch ( IOException ioex ) {
- zis.close();
- throw ioex;
+ try {
+ zis.close();
+ } catch ( IOException ex ) {
+ // why does close throw? it's maddening
+ }
+ return null;
}
- zis.close();
- return null;
}
}
diff --git a/core/src/net/sf/openrocket/document/StorageOptions.java b/core/src/net/sf/openrocket/document/StorageOptions.java
index abff296a0..4618aa5d2 100644
--- a/core/src/net/sf/openrocket/document/StorageOptions.java
+++ b/core/src/net/sf/openrocket/document/StorageOptions.java
@@ -14,10 +14,6 @@ public class StorageOptions implements Cloneable {
private FileType fileType = FileType.OPENROCKET;
- private boolean includeDecals = false;
-
- private boolean compressionEnabled = true;
-
private double simulationTimeSkip = SIMULATION_DATA_NONE;
private boolean explicitlySet = false;
@@ -30,22 +26,6 @@ public class StorageOptions implements Cloneable {
this.fileType = fileType;
}
- public boolean isIncludeDecals() {
- return includeDecals;
- }
-
- public void setIncludeDecals(boolean includeDecals) {
- this.includeDecals = includeDecals;
- }
-
- public boolean isCompressionEnabled() {
- return compressionEnabled;
- }
-
- public void setCompressionEnabled(boolean compression) {
- this.compressionEnabled = compression;
- }
-
public double getSimulationTimeSkip() {
return simulationTimeSkip;
}
diff --git a/core/src/net/sf/openrocket/file/GeneralRocketLoader.java b/core/src/net/sf/openrocket/file/GeneralRocketLoader.java
index 4147f6f68..0211f5064 100644
--- a/core/src/net/sf/openrocket/file/GeneralRocketLoader.java
+++ b/core/src/net/sf/openrocket/file/GeneralRocketLoader.java
@@ -106,7 +106,6 @@ public class GeneralRocketLoader {
// Check for GZIP
if (buffer[0] == GZIP_SIGNATURE[0] && buffer[1] == GZIP_SIGNATURE[1]) {
OpenRocketDocument doc = loadFromStream(new GZIPInputStream(source), motorFinder);
- doc.getDefaultStorageOptions().setCompressionEnabled(true);
doc.getDecalRegistry().setIsZipFile(false);
return doc;
}
@@ -122,8 +121,6 @@ public class GeneralRocketLoader {
}
if (entry.getName().matches(".*\\.[oO][rR][kK]$")) {
OpenRocketDocument doc = loadFromStream(in, motorFinder);
- doc.getDefaultStorageOptions().setCompressionEnabled(true);
- doc.getDefaultStorageOptions().setIncludeDecals(true);
doc.getDecalRegistry().setIsZipFile(true);
return doc;
} else if ( entry.getName().matches(".*\\.[rR][kK][tT]$")) {
diff --git a/core/src/net/sf/openrocket/file/GeneralRocketSaver.java b/core/src/net/sf/openrocket/file/GeneralRocketSaver.java
index d1a4b3e1d..d0856d961 100644
--- a/core/src/net/sf/openrocket/file/GeneralRocketSaver.java
+++ b/core/src/net/sf/openrocket/file/GeneralRocketSaver.java
@@ -18,6 +18,7 @@ import net.sf.openrocket.appearance.AppearanceBuilder;
import net.sf.openrocket.appearance.Decal;
import net.sf.openrocket.document.OpenRocketDocument;
import net.sf.openrocket.document.StorageOptions;
+import net.sf.openrocket.document.StorageOptions.FileType;
import net.sf.openrocket.file.openrocket.OpenRocketSaver;
import net.sf.openrocket.file.rocksim.export.RocksimSaver;
import net.sf.openrocket.rocketcomponent.RocketComponent;
@@ -146,24 +147,15 @@ public class GeneralRocketSaver {
private void save(String fileName, OutputStream output, OpenRocketDocument document, StorageOptions options) throws IOException {
- // If we don't include decals, just write the simple file.
- if (!options.isIncludeDecals()) {
- saveInternal(output,document,options);
+ // For now, we don't save decal inforamtion in ROCKSIM files, so don't do anything
+ // which follows.
+ // TODO - add support for decals in ROCKSIM files?
+ if ( options.getFileType() == FileType.ROCKSIM ) {
+ saveInternal(output, document, options);
+ output.close();
return;
}
- // We're saving decals, so the result will be a zip file. There's no
- // need to gzip the rocket model file in the archive.
- options.setCompressionEnabled(false);
-
- /* if we want a directory ...
- String path = fileName;
- int dotlocation = fileName.lastIndexOf('.');
- if ( dotlocation > 1 ) {
- path = fileName.substring(dotlocation);
- }
- */
-
// grab the set of decal images. We do this up front
// so we can fail early if some resource is missing.
@@ -239,7 +231,12 @@ public class GeneralRocketSaver {
}
// Now we have to loop through all the components and update their names.
- for( RocketComponent c : document.getRocket() ) {
+
+ // First we copy the OpenRocketDocument so we can modify the decal file names
+ // without changing the ui's copy. This is so the ui will continue to
+ // use the exported decals.
+ OpenRocketDocument rocketDocCopy = document.copy();
+ for( RocketComponent c : rocketDocCopy.getRocket() ) {
if ( c.getAppearance() == null ) {
continue;
@@ -258,7 +255,19 @@ public class GeneralRocketSaver {
c.setAppearance(builder.getAppearance());
}
+
+ Map decalMap = new HashMap();
+ for( Map.Entry image : decals.entrySet() ) {
+ String newName = decalNameNormalization.get(image.getKey());
+ decalMap.put(newName, image.getValue());
+ }
+
+ saveAllPartsZipFile(fileName, output, rocketDocCopy, options, decalMap);
+ }
+
+ public void saveAllPartsZipFile(String fileName, OutputStream output, OpenRocketDocument document, StorageOptions options, Map decals) throws IOException {
+
// Open a zip stream to write to.
ZipOutputStream zos = new ZipOutputStream(output);
zos.setLevel(9);
@@ -275,8 +284,8 @@ public class GeneralRocketSaver {
for( Map.Entry image : decals.entrySet() ) {
- String newName = decalNameNormalization.get(image.getKey());
- ZipEntry decal = new ZipEntry(newName);
+ String name = image.getKey();
+ ZipEntry decal = new ZipEntry(name);
zos.putNextEntry(decal);
InputStream is = image.getValue();
diff --git a/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java b/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java
index 94d2cd245..761546ec6 100644
--- a/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java
+++ b/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java
@@ -9,7 +9,6 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
-import java.util.zip.GZIPOutputStream;
import net.sf.openrocket.aerodynamics.Warning;
import net.sf.openrocket.document.OpenRocketDocument;
@@ -57,11 +56,8 @@ public class OpenRocketSaver extends RocketSaver {
// Estimated storage used by different portions
// These have been hand-estimated from saved files
- private static final int BYTES_PER_COMPONENT_UNCOMPRESSED = 590;
private static final int BYTES_PER_COMPONENT_COMPRESSED = 80;
- private static final int BYTES_PER_SIMULATION_UNCOMPRESSED = 1000;
private static final int BYTES_PER_SIMULATION_COMPRESSED = 100;
- private static final int BYTES_PER_DATAPOINT_UNCOMPRESSED = 350;
private static final int BYTES_PER_DATAPOINT_COMPRESSED = 100;
@@ -73,11 +69,6 @@ public class OpenRocketSaver extends RocketSaver {
log.info("Saving .ork file");
- if (options.isCompressionEnabled()) {
- log.debug("Enabling compression");
- output = new GZIPOutputStream(output);
- }
-
dest = new BufferedWriter(new OutputStreamWriter(output, OPENROCKET_CHARSET));
// Select file version number
@@ -121,9 +112,6 @@ public class OpenRocketSaver extends RocketSaver {
log.debug("Writing complete, flushing buffers");
dest.flush();
- if (options.isCompressionEnabled()) {
- ((GZIPOutputStream) output).finish();
- }
}
/*
@@ -178,17 +166,11 @@ public class OpenRocketSaver extends RocketSaver {
componentCount++;
}
- if (options.isCompressionEnabled())
- size += componentCount * BYTES_PER_COMPONENT_COMPRESSED;
- else
- size += componentCount * BYTES_PER_COMPONENT_UNCOMPRESSED;
+ size += componentCount * BYTES_PER_COMPONENT_COMPRESSED;
// Size per simulation
- if (options.isCompressionEnabled())
- size += doc.getSimulationCount() * BYTES_PER_SIMULATION_COMPRESSED;
- else
- size += doc.getSimulationCount() * BYTES_PER_SIMULATION_UNCOMPRESSED;
+ size += doc.getSimulationCount() * BYTES_PER_SIMULATION_COMPRESSED;
// Size per flight data point
@@ -205,10 +187,7 @@ public class OpenRocketSaver extends RocketSaver {
}
}
- if (options.isCompressionEnabled())
- size += pointCount * BYTES_PER_DATAPOINT_COMPRESSED;
- else
- size += pointCount * BYTES_PER_DATAPOINT_UNCOMPRESSED;
+ size += pointCount * BYTES_PER_DATAPOINT_COMPRESSED;
return size;
}
diff --git a/core/src/net/sf/openrocket/file/openrocket/importt/OpenRocketLoader.java b/core/src/net/sf/openrocket/file/openrocket/importt/OpenRocketLoader.java
index 5558a2a7e..91b9debc8 100644
--- a/core/src/net/sf/openrocket/file/openrocket/importt/OpenRocketLoader.java
+++ b/core/src/net/sf/openrocket/file/openrocket/importt/OpenRocketLoader.java
@@ -84,7 +84,6 @@ public class OpenRocketLoader extends AbstractRocketLoader {
timeSkip = Math.rint(timeSkip * 100) / 100;
doc.getDefaultStorageOptions().setSimulationTimeSkip(timeSkip);
- doc.getDefaultStorageOptions().setCompressionEnabled(false); // Set by caller if compressed
doc.getDefaultStorageOptions().setExplicitlySet(false);
doc.clearUndo();
diff --git a/core/src/net/sf/openrocket/file/rocksim/export/RocksimSaver.java b/core/src/net/sf/openrocket/file/rocksim/export/RocksimSaver.java
index 87af02831..eff692e2a 100644
--- a/core/src/net/sf/openrocket/file/rocksim/export/RocksimSaver.java
+++ b/core/src/net/sf/openrocket/file/rocksim/export/RocksimSaver.java
@@ -62,7 +62,6 @@ public class RocksimSaver extends RocketSaver {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(dest, "UTF-8"));
writer.write(marshalToRocksim(doc));
writer.flush();
- writer.close();
}
@Override
diff --git a/core/src/net/sf/openrocket/gui/StorageOptionChooser.java b/core/src/net/sf/openrocket/gui/StorageOptionChooser.java
index 47f3ae40f..eac318011 100644
--- a/core/src/net/sf/openrocket/gui/StorageOptionChooser.java
+++ b/core/src/net/sf/openrocket/gui/StorageOptionChooser.java
@@ -39,9 +39,6 @@ public class StorageOptionChooser extends JPanel {
private JSpinner timeSpinner;
- private JCheckBox compressButton;
- private JCheckBox decalButton;
-
private JLabel estimateLabel;
@@ -123,22 +120,6 @@ public class StorageOptionChooser extends JPanel {
noneButton.addActionListener(actionUpdater);
this.add(noneButton, "spanx, wrap 20lp");
- //// Save decals
- // FIXME - should we hide this if there are no decals?
- decalButton = new JCheckBox(trans.get("StorageOptChooser.checkbox.IncludeDecals"));
- decalButton.setToolTipText(trans.get("StorageOptChooser.lbl.IncludeDecals"));
- decalButton.addActionListener(actionUpdater);
- this.add(decalButton, "spanx, wrap para");
-
- //// Compress file
- // FIXME - if the user selects save decals, should we automatically select compress file?
- compressButton = new JCheckBox(trans.get("StorageOptChooser.checkbox.Compfile"));
- //// Using compression reduces the file size significantly.
- compressButton.setToolTipText(trans.get("StorageOptChooser.lbl.UsingComp"));
- compressButton.addActionListener(actionUpdater);
- this.add(compressButton, "spanx, wrap para");
-
-
// Estimate is updated in loadOptions(opts)
estimateLabel = new JLabel("");
//// An estimate on how large the resulting file would
@@ -176,10 +157,6 @@ public class StorageOptionChooser extends JPanel {
timeSpinner.setValue(t);
artificialEvent = false;
- // Compression checkbox
- compressButton.setSelected(opts.isCompressionEnabled());
- decalButton.setSelected(opts.isIncludeDecals());
-
updateEstimate();
}
@@ -197,9 +174,6 @@ public class StorageOptionChooser extends JPanel {
opts.setSimulationTimeSkip(t);
- opts.setIncludeDecals(decalButton.isSelected());
- opts.setCompressionEnabled(compressButton.isSelected());
-
opts.setExplicitlySet(true);
}
diff --git a/core/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java b/core/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java
index 4d86ae005..99ed9c78e 100644
--- a/core/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java
+++ b/core/src/net/sf/openrocket/gui/configdialog/AppearancePanel.java
@@ -49,7 +49,11 @@ public class AppearancePanel extends JPanel {
private SimpleAppearanceBuilder ab;
- private final static UnitGroup UNIT_FOR_SCALES = new UnitGroup();
+ /**
+ * A non-unit that adjusts by a small amount, suitable for
+ * values that are on the 0-1 scale
+ */
+ private final static UnitGroup TEXTURE_UNIT = new UnitGroup();
static {
Unit no_unit = new GeneralUnit(1,"",2) {
@Override
@@ -63,7 +67,7 @@ public class AppearancePanel extends JPanel {
}
};
- UNIT_FOR_SCALES.addUnit(no_unit);
+ TEXTURE_UNIT.addUnit(no_unit);
}
private static final JColorChooser colorChooser = new JColorChooser();
@@ -117,11 +121,7 @@ public class AppearancePanel extends JPanel {
}
final JButton figureColorButton = new JButton(new ColorIcon(figureColor));
- /*final JButton diffuseColorButton = new JButton(new ColorIcon(ab.getDiffuse()));
- final JButton ambientColorButton = new JButton(new ColorIcon(ab.getAmbient()));
- final JButton specularColorButton = new JButton(new ColorIcon(ab.getSpecular()));*/
-
- final JButton colorButton = new JButton(new ColorIcon(ab.getAmbient()));
+ final JButton colorButton = new JButton(new ColorIcon(ab.getColor()));
final JComboBox textureDropDown = new JComboBox( new DecalModel(this,document,ab));;
@@ -129,9 +129,6 @@ public class AppearancePanel extends JPanel {
@Override
public void stateChanged(EventObject e) {
figureColorButton.setIcon(new ColorIcon(c.getColor()));
- /*diffuseColorButton.setIcon(new ColorIcon(ab.getDiffuse()));
- ambientColorButton.setIcon(new ColorIcon(ab.getAmbient()));
- specularColorButton.setIcon(new ColorIcon(ab.getSpecular()));*/
colorButton.setIcon(new ColorIcon(ab.getColor()));
c.setAppearance(ab.getAppearance());
}
@@ -150,11 +147,7 @@ public class AppearancePanel extends JPanel {
figureColorButton.addActionListener(new ColorActionListener(c, "Color"));
colorButton.addActionListener(new ColorActionListener(ab, "Color"));
- /*diffuseColorButton.addActionListener(new ColorActionListener(ab, "Diffuse"));
- ambientColorButton.addActionListener(new ColorActionListener(ab, "Ambient"));
- specularColorButton.addActionListener(new ColorActionListener(ab, "Specular"));*/
- BooleanModel mDefault = new BooleanModel(c.getAppearance() == null);
BooleanModel fDefault = new BooleanModel(c.getColor() == null);
@@ -220,66 +213,50 @@ public class AppearancePanel extends JPanel {
{// Texture Header Row
add(new StyledLabel(trans.get("AppearanceCfg.lbl.Appearance"), Style.BOLD), "wrap");
-
- final JCheckBox materialDefault = new JCheckBox(mDefault);
- materialDefault.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- if (materialDefault.isSelected()) {
- c.setAppearance(null);
- } else {
- c.setAppearance(ab.getAppearance());
- }
- }
- });
}
{// Texture File
add(new JLabel(trans.get("AppearanceCfg.lbl.Texture")));
JPanel p = new JPanel(new MigLayout("fill, ins 0", "[grow][]"));
- mDefault.addEnableComponent(textureDropDown, false);
p.add(textureDropDown, "grow");
add(p, "span 3, growx, wrap");
}
-
- /*{ // Diffuse
- add(new JLabel(trans.get("AppearanceCfg.lbl.color.diffuse")));
- mDefault.addEnableComponent(diffuseColorButton, false);
- add(diffuseColorButton);
- }*/
{ // Color
- add(new JLabel("Color"));
- mDefault.addEnableComponent(colorButton, false);
+ add(new JLabel(trans.get("AppearanceCfg.lbl.color.Color")));
+ //mDefault.addEnableComponent(colorButton, false);
+ colorButton.setEnabled(ab.getImage() == null);
add(colorButton);
+ ab.addChangeListener(new StateChangeListener() {
+ @Override
+ public void stateChanged(EventObject e) {
+ colorButton.setEnabled(ab.getImage() == null);
+ }
+ });
}
{ // Scale
add(new JLabel(trans.get("AppearanceCfg.lbl.texture.scale")));
add(new JLabel("x:"), "split 4");
- JSpinner scaleU = new JSpinner(new DoubleModel(ab, "ScaleX",UNIT_FOR_SCALES).getSpinnerModel());
+ JSpinner scaleU = new JSpinner(new DoubleModel(ab, "ScaleX", TEXTURE_UNIT).getSpinnerModel());
scaleU.setEditor(new SpinnerEditor(scaleU));
- mDefault.addEnableComponent(scaleU, false);
add(scaleU, "w 40");
add(new JLabel("y:"));
- JSpinner scaleV = new JSpinner(new DoubleModel(ab, "ScaleY",UNIT_FOR_SCALES).getSpinnerModel());
+ JSpinner scaleV = new JSpinner(new DoubleModel(ab, "ScaleY", TEXTURE_UNIT).getSpinnerModel());
scaleV.setEditor(new SpinnerEditor(scaleV));
- mDefault.addEnableComponent(scaleV, false);
add(scaleV, "wrap, w 40");
}
- {// Placeholder
+ {// Shine
add(new JLabel(trans.get("AppearanceCfg.lbl.shine")));
IntegerModel shineModel = new IntegerModel(ab, "Shine", 0, 100);
JSpinner spin = new JSpinner(shineModel.getSpinnerModel());
JSlider slide = new JSlider(shineModel.getSliderModel());
- mDefault.addEnableComponent(slide, false);
- mDefault.addEnableComponent(spin, false);
add(spin, "split 2, w 50");
- add(slide, "w 100");
+ add(slide, "w 50");
}
@@ -287,15 +264,13 @@ public class AppearancePanel extends JPanel {
add(new JLabel(trans.get("AppearanceCfg.lbl.texture.offset")));
add(new JLabel("x:"), "split 4");
- JSpinner offsetU = new JSpinner(new DoubleModel(ab, "OffsetU").getSpinnerModel());
+ JSpinner offsetU = new JSpinner(new DoubleModel(ab, "OffsetU", TEXTURE_UNIT).getSpinnerModel());
offsetU.setEditor(new SpinnerEditor(offsetU));
- mDefault.addEnableComponent(offsetU, false);
add(offsetU, "w 40");
add(new JLabel("y:"));
- JSpinner offsetV = new JSpinner(new DoubleModel(ab, "OffsetV").getSpinnerModel());
+ JSpinner offsetV = new JSpinner(new DoubleModel(ab, "OffsetV", TEXTURE_UNIT).getSpinnerModel());
offsetV.setEditor(new SpinnerEditor(offsetV));
- mDefault.addEnableComponent(offsetV, false);
add(offsetV, "wrap, w 40");
}
@@ -304,7 +279,6 @@ public class AppearancePanel extends JPanel {
EdgeMode[] list = new EdgeMode[EdgeMode.values().length + 1];
System.arraycopy(EdgeMode.values(), 0, list, 1, EdgeMode.values().length);
JComboBox combo = new JComboBox(new EnumModel(ab, "EdgeMode", list));
- mDefault.addEnableComponent(combo, false);
add(combo);
}
@@ -314,12 +288,10 @@ public class AppearancePanel extends JPanel {
DoubleModel rotationModel = new DoubleModel(ab, "Rotation", UnitGroup.UNITS_ANGLE);
JSpinner rotation = new JSpinner(rotationModel.getSpinnerModel());
rotation.setEditor(new SpinnerEditor(rotation));
- mDefault.addEnableComponent(rotation, false);
add(rotation, "split 3, w 50");
add(new UnitSelector(rotationModel));
BasicSlider bs = new BasicSlider(rotationModel.getSliderModel(-Math.PI, Math.PI));
- mDefault.addEnableComponent(bs, false);
- add(bs, "w 100, wrap");
+ add(bs, "w 50, wrap");
}
diff --git a/core/src/net/sf/openrocket/utils/RocksimConverter.java b/core/src/net/sf/openrocket/utils/RocksimConverter.java
index 3ff4ea756..519a0fd5a 100644
--- a/core/src/net/sf/openrocket/utils/RocksimConverter.java
+++ b/core/src/net/sf/openrocket/utils/RocksimConverter.java
@@ -59,7 +59,6 @@ public class RocksimConverter {
try {
StorageOptions opts = new StorageOptions();
opts.setFileType(StorageOptions.FileType.OPENROCKET);
- opts.setCompressionEnabled(true);
opts.setSimulationTimeSkip(StorageOptions.SIMULATION_DATA_NONE);
opts.setExplicitlySet(true);