diff --git a/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java b/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java
index 3cc791d79..0aa872706 100644
--- a/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java
+++ b/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java
@@ -46,6 +46,7 @@ public class OpenRocketSaver extends RocketSaver {
private static final String METHOD_PACKAGE = "net.sf.openrocket.file.openrocket.savers";
private static final String METHOD_SUFFIX = "Saver";
+ public static final String INDENT = " ";
// Estimated storage used by different portions
@@ -636,10 +637,7 @@ public class OpenRocketSaver extends RocketSaver {
dest.write("\n");
return;
}
- String s = "";
- for (int i = 0; i < indent; i++)
- s = s + " ";
- s = s + str + "\n";
+ String s = INDENT.repeat(Math.max(0, indent)) + str + "\n";
dest.write(s);
}
diff --git a/core/src/net/sf/openrocket/file/openrocket/savers/RocketComponentSaver.java b/core/src/net/sf/openrocket/file/openrocket/savers/RocketComponentSaver.java
index 2ae1b1085..30da61d9d 100644
--- a/core/src/net/sf/openrocket/file/openrocket/savers/RocketComponentSaver.java
+++ b/core/src/net/sf/openrocket/file/openrocket/savers/RocketComponentSaver.java
@@ -9,6 +9,7 @@ import java.util.Map;
import net.sf.openrocket.appearance.Appearance;
import net.sf.openrocket.appearance.Decal;
import net.sf.openrocket.appearance.Decal.EdgeMode;
+import net.sf.openrocket.file.openrocket.OpenRocketSaver;
import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.material.Material;
import net.sf.openrocket.motor.Motor;
@@ -57,8 +58,8 @@ public class RocketComponentSaver {
Appearance ap_in = handler.getInsideAppearance();
if (ap_in != null) {
elements.add("");
- elements.add("" + handler.isEdgesSameAsInside() + "");
- elements.add("" + handler.isSeparateInsideOutside() + "");
+ appendElement(elements, "edgesSameAsInside", handler.isEdgesSameAsInside(), 1);
+ appendElement(elements, "insideSameAsOutside", handler.isSeparateInsideOutside(), 1);
buildAppearanceElements(elements, ap_in);
elements.add("");
}
@@ -67,7 +68,7 @@ public class RocketComponentSaver {
// Save color and line style if significant
if (!(c instanceof Rocket || c instanceof ComponentAssembly)) {
Color color = c.getColor();
- emitColor("color", elements, color);
+ emitColor("color", elements, color, 0);
LineStyle style = c.getLineStyle();
if (style != null) {
@@ -154,21 +155,21 @@ public class RocketComponentSaver {
private void buildAppearanceElements(List elements, Appearance a) {
Color paint = a.getPaint();
- emitColor("paint", elements, paint);
- elements.add("" + a.getShine() + "");
+ emitColor("paint", elements, paint, 1);
+ appendElement(elements, "shine", a.getShine(), 1);
Decal decal = a.getTexture();
if (decal != null) {
String name = decal.getImage().getName();
double rotation = decal.getRotation();
EdgeMode edgeMode = decal.getEdgeMode();
- elements.add("");
+ elements.add(OpenRocketSaver.INDENT + "");
Coordinate center = decal.getCenter();
- elements.add("");
+ elements.add(OpenRocketSaver.INDENT.repeat(2) + "");
Coordinate offset = decal.getOffset();
- elements.add("");
+ elements.add(OpenRocketSaver.INDENT.repeat(2) + "");
Coordinate scale = decal.getScale();
- elements.add("");
- elements.add("");
+ elements.add(OpenRocketSaver.INDENT.repeat(2) + "");
+ elements.add(OpenRocketSaver.INDENT + "");
}
}
@@ -268,12 +269,11 @@ public class RocketComponentSaver {
return elements;
}
- private final static void emitColor(String elementName, List elements, Color color) {
+ private final static void emitColor(String elementName, List elements, Color color, int indents) {
if (color != null) {
- elements.add("<" + elementName + " red=\"" + color.getRed() + "\" green=\"" + color.getGreen()
+ elements.add(OpenRocketSaver.INDENT.repeat(Math.max(0, indents)) + "<" + elementName + " red=\"" + color.getRed() + "\" green=\"" + color.getGreen()
+ "\" blue=\"" + color.getBlue() + "\" alpha=\"" + color.getAlpha() + "\"/>");
}
-
}
protected static void emitDouble( final List elements, final String enclosingTag, final double value){
@@ -300,8 +300,20 @@ public class RocketComponentSaver {
return buf.toString();
}
+ protected static void appendElement( final List elements, final String openTag, final String closeTag, final String elementValue, final int indents){
+ elements.add(OpenRocketSaver.INDENT.repeat(Math.max(0, indents)) + "<"+openTag+">" + elementValue + ""+closeTag+">");
+ }
+
+ protected static void appendElement( final List elements, final String tag, final double elementValue, final int indents){
+ appendElement(elements, tag, tag, Double.toString(elementValue), indents);
+ }
+
+ protected static void appendElement( final List elements, final String tag, final boolean elementValue, final int indents){
+ appendElement(elements, tag, tag, Boolean.toString(elementValue), indents);
+ }
+
protected static void appendElement( final List elements, final String openTag, final String closeTag, final String elementValue ){
- elements.add("<"+openTag+">" + elementValue + ""+closeTag+">");
+ appendElement(elements, openTag, closeTag, elementValue, 0);
}
}