Change toLowerCase() to toLowerCase(Locale.ENGLISH)

This commit is contained in:
Sampo Niskanen 2012-03-27 11:42:31 +00:00
parent 3fa0f9ce67
commit 9c6b275e84
28 changed files with 417 additions and 371 deletions

View File

@ -1,3 +1,7 @@
2012-03-25 Sampo Niskanen
* [BUG] Removed locale-specific toLowerCase/toUpperCase
2012-03-25 Doug Pedrick 2012-03-25 Doug Pedrick
* Printed rocket figure in design report now honors rotation angle of main figure; fixed bug in layout where the * Printed rocket figure in design report now honors rotation angle of main figure; fixed bug in layout where the

View File

@ -1,6 +1,7 @@
package net.sf.openrocket.arch; package net.sf.openrocket.arch;
import java.io.File; import java.io.File;
import java.util.Locale;
import net.sf.openrocket.util.BugException; import net.sf.openrocket.util.BugException;
@ -26,7 +27,7 @@ public class SystemInfo {
* @return the operating system of the current system. * @return the operating system of the current system.
*/ */
public static Platform getPlatform() { public static Platform getPlatform() {
String os = System.getProperty("os.name").toLowerCase(); String os = System.getProperty("os.name").toLowerCase(Locale.ENGLISH);
if (os.indexOf("win") >= 0) { if (os.indexOf("win") >= 0) {
return Platform.WINDOWS; return Platform.WINDOWS;

View File

@ -183,7 +183,7 @@ public class UpdateInfoRetriever {
String contentType = connection.getContentType(); String contentType = connection.getContentType();
if (contentType == null || if (contentType == null ||
contentType.toLowerCase().indexOf(Communicator.UPDATE_INFO_CONTENT_TYPE) < 0) { contentType.toLowerCase(Locale.ENGLISH).indexOf(Communicator.UPDATE_INFO_CONTENT_TYPE) < 0) {
// Unknown response type // Unknown response type
log.warn("Unknown Content-type received:" + contentType); log.warn("Unknown Content-type received:" + contentType);
return; return;

View File

@ -8,6 +8,7 @@ import java.io.Writer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.zip.GZIPOutputStream; import java.util.zip.GZIPOutputStream;
import net.sf.openrocket.aerodynamics.Warning; import net.sf.openrocket.aerodynamics.Warning;
@ -318,7 +319,7 @@ public class OpenRocketSaver extends RocketSaver {
writeElement("launchaltitude", cond.getLaunchAltitude()); writeElement("launchaltitude", cond.getLaunchAltitude());
writeElement("launchlatitude", cond.getLaunchLatitude()); writeElement("launchlatitude", cond.getLaunchLatitude());
writeElement("launchlongitude", cond.getLaunchLongitude()); writeElement("launchlongitude", cond.getLaunchLongitude());
writeElement("geodeticmethod", cond.getGeodeticComputation().name().toLowerCase()); writeElement("geodeticmethod", cond.getGeodeticComputation().name().toLowerCase(Locale.ENGLISH));
if (cond.isISAAtmosphere()) { if (cond.isISAAtmosphere()) {
writeln("<atmosphere model=\"isa\"/>"); writeln("<atmosphere model=\"isa\"/>");
@ -553,7 +554,7 @@ public class OpenRocketSaver extends RocketSaver {
* @return the corresponding XML name. * @return the corresponding XML name.
*/ */
public static String enumToXMLName(Enum<?> e) { public static String enumToXMLName(Enum<?> e) {
return e.name().toLowerCase().replace("_", ""); return e.name().toLowerCase(Locale.ENGLISH).replace("_", "");
} }
} }

View File

@ -7,6 +7,7 @@ import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -508,7 +509,7 @@ class DocumentConfig {
return null; return null;
name = name.trim(); name = name.trim();
for (Enum<T> e : enumClass.getEnumConstants()) { for (Enum<T> e : enumClass.getEnumConstants()) {
if (e.name().toLowerCase().replace("_", "").equals(name)) { if (e.name().toLowerCase(Locale.ENGLISH).replace("_", "").equals(name)) {
return e; return e;
} }
} }
@ -926,7 +927,7 @@ class MotorMountHandler extends AbstractElementHandler {
if (element.equals("ignitionevent")) { if (element.equals("ignitionevent")) {
MotorMount.IgnitionEvent event = null; MotorMount.IgnitionEvent event = null;
for (MotorMount.IgnitionEvent e : MotorMount.IgnitionEvent.values()) { for (MotorMount.IgnitionEvent e : MotorMount.IgnitionEvent.values()) {
if (e.name().toLowerCase().replaceAll("_", "").equals(content)) { if (e.name().toLowerCase(Locale.ENGLISH).replaceAll("_", "").equals(content)) {
event = e; event = e;
break; break;
} }
@ -1084,7 +1085,7 @@ class MotorHandler extends AbstractElementHandler {
// Motor type // Motor type
type = null; type = null;
for (Motor.Type t : Motor.Type.values()) { for (Motor.Type t : Motor.Type.values()) {
if (t.name().toLowerCase().equals(content.trim())) { if (t.name().toLowerCase(Locale.ENGLISH).equals(content.trim())) {
type = t; type = t;
break; break;
} }
@ -1985,7 +1986,7 @@ class MaterialSetter implements Setter {
// Check type if specified // Check type if specified
str = attributes.remove("type"); str = attributes.remove("type");
if (str != null && !type.name().toLowerCase().equals(str)) { if (str != null && !type.name().toLowerCase(Locale.ENGLISH).equals(str)) {
warnings.add(Warning.fromString("Illegal material type specified, ignoring.")); warnings.add(Warning.fromString("Illegal material type specified, ignoring."));
return; return;
} }

View File

@ -1,6 +1,7 @@
package net.sf.openrocket.file.openrocket.savers; package net.sf.openrocket.file.openrocket.savers;
import java.util.List; import java.util.List;
import java.util.Locale;
import net.sf.openrocket.rocketcomponent.ExternalComponent; import net.sf.openrocket.rocketcomponent.ExternalComponent;
@ -11,10 +12,10 @@ public class ExternalComponentSaver extends RocketComponentSaver {
protected void addParams(net.sf.openrocket.rocketcomponent.RocketComponent c, List<String> elements) { protected void addParams(net.sf.openrocket.rocketcomponent.RocketComponent c, List<String> elements) {
super.addParams(c, elements); super.addParams(c, elements);
ExternalComponent ext = (ExternalComponent)c; ExternalComponent ext = (ExternalComponent) c;
// Finish enum names are currently the same except for case // Finish enum names are currently the same except for case
elements.add("<finish>" + ext.getFinish().name().toLowerCase() + "</finish>"); elements.add("<finish>" + ext.getFinish().name().toLowerCase(Locale.ENGLISH) + "</finish>");
// Material // Material
elements.add(materialParam(ext.getMaterial())); elements.add(materialParam(ext.getMaterial()));

View File

@ -1,6 +1,7 @@
package net.sf.openrocket.file.openrocket.savers; package net.sf.openrocket.file.openrocket.savers;
import java.util.List; import java.util.List;
import java.util.Locale;
import net.sf.openrocket.util.MathUtil; import net.sf.openrocket.util.MathUtil;
@ -14,18 +15,18 @@ public class FinSetSaver extends ExternalComponentSaver {
elements.add("<fincount>" + fins.getFinCount() + "</fincount>"); elements.add("<fincount>" + fins.getFinCount() + "</fincount>");
elements.add("<rotation>" + (fins.getBaseRotation() * 180.0 / Math.PI) + "</rotation>"); elements.add("<rotation>" + (fins.getBaseRotation() * 180.0 / Math.PI) + "</rotation>");
elements.add("<thickness>" + fins.getThickness() + "</thickness>"); elements.add("<thickness>" + fins.getThickness() + "</thickness>");
elements.add("<crosssection>" + fins.getCrossSection().name().toLowerCase() elements.add("<crosssection>" + fins.getCrossSection().name().toLowerCase(Locale.ENGLISH)
+ "</crosssection>"); + "</crosssection>");
elements.add("<cant>" + (fins.getCantAngle() * 180.0 / Math.PI) + "</cant>"); elements.add("<cant>" + (fins.getCantAngle() * 180.0 / Math.PI) + "</cant>");
// Save fin tabs only if they exist (compatibility with file version < 1.1) // Save fin tabs only if they exist (compatibility with file version < 1.1)
if (!MathUtil.equals(fins.getTabHeight(),0) && if (!MathUtil.equals(fins.getTabHeight(), 0) &&
!MathUtil.equals(fins.getTabLength(), 0)) { !MathUtil.equals(fins.getTabLength(), 0)) {
elements.add("<tabheight>" + fins.getTabHeight() + "</tabheight>"); elements.add("<tabheight>" + fins.getTabHeight() + "</tabheight>");
elements.add("<tablength>" + fins.getTabLength() + "</tablength>"); elements.add("<tablength>" + fins.getTabLength() + "</tablength>");
elements.add("<tabposition relativeto=\"" + elements.add("<tabposition relativeto=\"" +
fins.getTabRelativePosition().name().toLowerCase() + "\">" + fins.getTabRelativePosition().name().toLowerCase(Locale.ENGLISH) + "\">" +
fins.getTabShift() + "</tabposition>"); fins.getTabShift() + "</tabposition>");
} }

View File

@ -1,6 +1,7 @@
package net.sf.openrocket.file.openrocket.savers; package net.sf.openrocket.file.openrocket.savers;
import java.util.List; import java.util.List;
import java.util.Locale;
import net.sf.openrocket.rocketcomponent.RecoveryDevice; import net.sf.openrocket.rocketcomponent.RecoveryDevice;
@ -18,7 +19,7 @@ public class RecoveryDeviceSaver extends MassObjectSaver {
else else
elements.add("<cd>" + dev.getCD() + "</cd>"); elements.add("<cd>" + dev.getCD() + "</cd>");
elements.add("<deployevent>" + dev.getDeployEvent().name().toLowerCase() + "</deployevent>"); elements.add("<deployevent>" + dev.getDeployEvent().name().toLowerCase(Locale.ENGLISH) + "</deployevent>");
elements.add("<deployaltitude>" + dev.getDeployAltitude() + "</deployaltitude>"); elements.add("<deployaltitude>" + dev.getDeployAltitude() + "</deployaltitude>");
elements.add("<deploydelay>" + dev.getDeployDelay() + "</deploydelay>"); elements.add("<deploydelay>" + dev.getDeployDelay() + "</deploydelay>");
elements.add(materialParam(dev.getMaterial())); elements.add(materialParam(dev.getMaterial()));

View File

@ -3,6 +3,7 @@ package net.sf.openrocket.file.openrocket.savers;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Locale;
import net.sf.openrocket.file.RocketSaver; import net.sf.openrocket.file.RocketSaver;
import net.sf.openrocket.material.Material; import net.sf.openrocket.material.Material;
@ -38,7 +39,7 @@ public class RocketComponentSaver {
LineStyle style = c.getLineStyle(); LineStyle style = c.getLineStyle();
if (style != null) { if (style != null) {
// Type names currently equivalent to the enum names except for case. // Type names currently equivalent to the enum names except for case.
elements.add("<linestyle>" + style.name().toLowerCase() + "</linestyle>"); elements.add("<linestyle>" + style.name().toLowerCase(Locale.ENGLISH) + "</linestyle>");
} }
} }
@ -46,7 +47,7 @@ public class RocketComponentSaver {
// Save position unless "AFTER" // Save position unless "AFTER"
if (c.getRelativePosition() != RocketComponent.Position.AFTER) { if (c.getRelativePosition() != RocketComponent.Position.AFTER) {
// The type names are currently equivalent to the enum names except for case. // The type names are currently equivalent to the enum names except for case.
String type = c.getRelativePosition().name().toLowerCase(); String type = c.getRelativePosition().name().toLowerCase(Locale.ENGLISH);
elements.add("<position type=\"" + type + "\">" + c.getPositionValue() + "</position>"); elements.add("<position type=\"" + type + "\">" + c.getPositionValue() + "</position>");
} }
@ -121,7 +122,7 @@ public class RocketComponentSaver {
elements.add(" <motor configid=\"" + id + "\">"); elements.add(" <motor configid=\"" + id + "\">");
if (motor.getMotorType() != Motor.Type.UNKNOWN) { if (motor.getMotorType() != Motor.Type.UNKNOWN) {
elements.add(" <type>" + motor.getMotorType().name().toLowerCase() + "</type>"); elements.add(" <type>" + motor.getMotorType().name().toLowerCase(Locale.ENGLISH) + "</type>");
} }
if (motor instanceof ThrustCurveMotor) { if (motor instanceof ThrustCurveMotor) {
ThrustCurveMotor m = (ThrustCurveMotor) motor; ThrustCurveMotor m = (ThrustCurveMotor) motor;
@ -144,7 +145,7 @@ public class RocketComponentSaver {
} }
elements.add(" <ignitionevent>" elements.add(" <ignitionevent>"
+ mount.getIgnitionEvent().name().toLowerCase().replace("_", "") + mount.getIgnitionEvent().name().toLowerCase(Locale.ENGLISH).replace("_", "")
+ "</ignitionevent>"); + "</ignitionevent>");
elements.add(" <ignitiondelay>" + mount.getIgnitionDelay() + "</ignitiondelay>"); elements.add(" <ignitiondelay>" + mount.getIgnitionDelay() + "</ignitiondelay>");

View File

@ -2,6 +2,7 @@ package net.sf.openrocket.file.openrocket.savers;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale;
import net.sf.openrocket.rocketcomponent.ReferenceType; import net.sf.openrocket.rocketcomponent.ReferenceType;
import net.sf.openrocket.rocketcomponent.Rocket; import net.sf.openrocket.rocketcomponent.Rocket;
@ -61,7 +62,7 @@ public class RocketSaver extends RocketComponentSaver {
} }
// Reference diameter // Reference diameter
elements.add("<referencetype>" + rocket.getReferenceType().name().toLowerCase() elements.add("<referencetype>" + rocket.getReferenceType().name().toLowerCase(Locale.ENGLISH)
+ "</referencetype>"); + "</referencetype>");
if (rocket.getReferenceType() == ReferenceType.CUSTOM) { if (rocket.getReferenceType() == ReferenceType.CUSTOM) {
elements.add("<customreference>" + rocket.getCustomReferenceLength() elements.add("<customreference>" + rocket.getCustomReferenceLength()

View File

@ -2,6 +2,7 @@ package net.sf.openrocket.file.openrocket.savers;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale;
import net.sf.openrocket.rocketcomponent.RocketComponent; import net.sf.openrocket.rocketcomponent.RocketComponent;
import net.sf.openrocket.rocketcomponent.Stage; import net.sf.openrocket.rocketcomponent.Stage;
@ -27,7 +28,7 @@ public class StageSaver extends ComponentAssemblySaver {
if (stage.getStageNumber() > 0) { if (stage.getStageNumber() > 0) {
elements.add("<separationevent>" elements.add("<separationevent>"
+ stage.getSeparationEvent().name().toLowerCase().replace("_", "") + stage.getSeparationEvent().name().toLowerCase(Locale.ENGLISH).replace("_", "")
+ "</separationevent>"); + "</separationevent>");
elements.add("<separationdelay>" + stage.getSeparationDelay() + "</separationdelay>"); elements.add("<separationdelay>" + stage.getSeparationDelay() + "</separationdelay>");
} }

View File

@ -2,6 +2,7 @@ package net.sf.openrocket.file.openrocket.savers;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale;
import net.sf.openrocket.rocketcomponent.NoseCone; import net.sf.openrocket.rocketcomponent.NoseCone;
import net.sf.openrocket.rocketcomponent.Transition; import net.sf.openrocket.rocketcomponent.Transition;
@ -33,7 +34,7 @@ public class TransitionSaver extends SymmetricComponentSaver {
Transition.Shape shape = trans.getType(); Transition.Shape shape = trans.getType();
elements.add("<shape>" + shape.name().toLowerCase() + "</shape>"); elements.add("<shape>" + shape.name().toLowerCase(Locale.ENGLISH) + "</shape>");
if (shape.isClippable()) { if (shape.isClippable()) {
elements.add("<shapeclipped>" + trans.isClipped() + "</shapeclipped>"); elements.add("<shapeclipped>" + trans.isClipped() + "</shapeclipped>");
} }

View File

@ -9,6 +9,7 @@ import java.awt.event.FocusListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Locale;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JButton; import javax.swing.JButton;
@ -336,7 +337,7 @@ public class RocketComponentConfig extends JPanel {
panel.add(new StyledLabel(trans.get("RocketCompCfg.lbl.longB1") + panel.add(new StyledLabel(trans.get("RocketCompCfg.lbl.longB1") +
//// The center of gravity is measured from the front end of the //// The center of gravity is measured from the front end of the
trans.get("RocketCompCfg.lbl.longB2") + " " + trans.get("RocketCompCfg.lbl.longB2") + " " +
component.getComponentName().toLowerCase() + ".", -1), component.getComponentName().toLowerCase(Locale.getDefault()) + ".", -1),
"spanx, wrap, gap para, height 0::30lp"); "spanx, wrap, gap para, height 0::30lp");
return panel; return panel;

View File

@ -14,6 +14,7 @@ import java.awt.event.MouseEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.prefs.Preferences; import java.util.prefs.Preferences;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
@ -333,7 +334,7 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
String[] split = text.split("\\s+"); String[] split = text.split("\\s+");
ArrayList<String> list = new ArrayList<String>(); ArrayList<String> list = new ArrayList<String>();
for (String s : split) { for (String s : split) {
s = s.trim().toLowerCase(); s = s.trim().toLowerCase(Locale.getDefault());
if (s.length() > 0) { if (s.length() > 0) {
list.add(s); list.add(s);
} }
@ -943,7 +944,7 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
public boolean filterByString(ThrustCurveMotorSet m) { public boolean filterByString(ThrustCurveMotorSet m) {
main: for (String s : searchTerms) { main: for (String s : searchTerms) {
for (ThrustCurveMotorColumns col : ThrustCurveMotorColumns.values()) { for (ThrustCurveMotorColumns col : ThrustCurveMotorColumns.values()) {
String str = col.getValue(m).toString().toLowerCase(); String str = col.getValue(m).toString().toLowerCase(Locale.getDefault());
if (str.indexOf(s) >= 0) if (str.indexOf(s) >= 0)
continue main; continue main;
} }

View File

@ -181,7 +181,7 @@ public enum PaperSize {
return null; return null;
} }
country = country.toUpperCase(); country = country.toUpperCase(Locale.ENGLISH);
for (String c : letterCountries) { for (String c : letterCountries) {
if (c.equals(country)) { if (c.equals(country)) {
return LETTER; return LETTER;

View File

@ -5,6 +5,7 @@ import java.awt.event.ActionListener;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.Arrays; import java.util.Arrays;
import java.util.EventObject; import java.util.EventObject;
import java.util.Locale;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JComboBox; import javax.swing.JComboBox;
@ -23,10 +24,10 @@ public class ScaleSelector extends JPanel {
private static final String ZOOM_FIT = "Fit"; private static final String ZOOM_FIT = "Fit";
private static final String[] ZOOM_SETTINGS; private static final String[] ZOOM_SETTINGS;
static { static {
ZOOM_SETTINGS = new String[ZOOM_LEVELS.length+1]; ZOOM_SETTINGS = new String[ZOOM_LEVELS.length + 1];
for (int i=0; i<ZOOM_LEVELS.length; i++) for (int i = 0; i < ZOOM_LEVELS.length; i++)
ZOOM_SETTINGS[i] = PERCENT_FORMAT.format(ZOOM_LEVELS[i]); ZOOM_SETTINGS[i] = PERCENT_FORMAT.format(ZOOM_LEVELS[i]);
ZOOM_SETTINGS[ZOOM_SETTINGS.length-1] = ZOOM_FIT; ZOOM_SETTINGS[ZOOM_SETTINGS.length - 1] = ZOOM_FIT;
} }
@ -42,6 +43,7 @@ public class ScaleSelector extends JPanel {
// Zoom out button // Zoom out button
JButton button = new JButton(Icons.ZOOM_OUT); JButton button = new JButton(Icons.ZOOM_OUT);
button.addActionListener(new ActionListener() { button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
double scale = scrollPane.getScaling(); double scale = scrollPane.getScaling();
scale = getPreviousScale(scale); scale = getPreviousScale(scale);
@ -53,19 +55,20 @@ public class ScaleSelector extends JPanel {
// Zoom level selector // Zoom level selector
String[] settings = ZOOM_SETTINGS; String[] settings = ZOOM_SETTINGS;
if (!scrollPane.isFittingAllowed()) { if (!scrollPane.isFittingAllowed()) {
settings = Arrays.copyOf(settings, settings.length-1); settings = Arrays.copyOf(settings, settings.length - 1);
} }
zoomSelector = new JComboBox(settings); zoomSelector = new JComboBox(settings);
zoomSelector.setEditable(true); zoomSelector.setEditable(true);
setZoomText(); setZoomText();
zoomSelector.addActionListener(new ActionListener() { zoomSelector.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
try { try {
String text = (String)zoomSelector.getSelectedItem(); String text = (String) zoomSelector.getSelectedItem();
text = text.replaceAll("%", "").trim(); text = text.replaceAll("%", "").trim();
if (text.toLowerCase().startsWith(ZOOM_FIT.toLowerCase()) && if (text.toLowerCase(Locale.getDefault()).startsWith(ZOOM_FIT.toLowerCase(Locale.getDefault())) &&
scrollPane.isFittingAllowed()) { scrollPane.isFittingAllowed()) {
scrollPane.setFitting(true); scrollPane.setFitting(true);
setZoomText(); setZoomText();
@ -91,19 +94,20 @@ public class ScaleSelector extends JPanel {
setZoomText(); setZoomText();
} }
}); });
add(zoomSelector,"gap rel"); add(zoomSelector, "gap rel");
// Zoom in button // Zoom in button
button = new JButton(Icons.ZOOM_IN); button = new JButton(Icons.ZOOM_IN);
button.addActionListener(new ActionListener() { button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
double scale = scrollPane.getScaling(); double scale = scrollPane.getScaling();
scale = getNextScale(scale); scale = getNextScale(scale);
scrollPane.setScaling(scale); scrollPane.setScaling(scale);
} }
}); });
add(button,"gapleft rel"); add(button, "gapleft rel");
} }
@ -114,7 +118,7 @@ public class ScaleSelector extends JPanel {
double zoom = scrollPane.getScaling(); double zoom = scrollPane.getScaling();
text = PERCENT_FORMAT.format(zoom); text = PERCENT_FORMAT.format(zoom);
if (scrollPane.isFitting()) { if (scrollPane.isFitting()) {
text = "Fit ("+text+")"; text = "Fit (" + text + ")";
} }
if (!text.equals(zoomSelector.getSelectedItem())) if (!text.equals(zoomSelector.getSelectedItem()))
zoomSelector.setSelectedItem(text); zoomSelector.setSelectedItem(text);
@ -124,32 +128,32 @@ public class ScaleSelector extends JPanel {
private double getPreviousScale(double scale) { private double getPreviousScale(double scale) {
int i; int i;
for (i=0; i<ZOOM_LEVELS.length-1; i++) { for (i = 0; i < ZOOM_LEVELS.length - 1; i++) {
if (scale > ZOOM_LEVELS[i]+0.05 && scale < ZOOM_LEVELS[i+1]+0.05) if (scale > ZOOM_LEVELS[i] + 0.05 && scale < ZOOM_LEVELS[i + 1] + 0.05)
return ZOOM_LEVELS[i]; return ZOOM_LEVELS[i];
} }
if (scale > ZOOM_LEVELS[ZOOM_LEVELS.length/2]) { if (scale > ZOOM_LEVELS[ZOOM_LEVELS.length / 2]) {
// scale is large, drop to next lowest full 100% // scale is large, drop to next lowest full 100%
scale = Math.ceil(scale-1.05); scale = Math.ceil(scale - 1.05);
return Math.max(scale, ZOOM_LEVELS[i]); return Math.max(scale, ZOOM_LEVELS[i]);
} }
// scale is small // scale is small
return scale/1.5; return scale / 1.5;
} }
private double getNextScale(double scale) { private double getNextScale(double scale) {
int i; int i;
for (i=0; i<ZOOM_LEVELS.length-1; i++) { for (i = 0; i < ZOOM_LEVELS.length - 1; i++) {
if (scale > ZOOM_LEVELS[i]-0.05 && scale < ZOOM_LEVELS[i+1]-0.05) if (scale > ZOOM_LEVELS[i] - 0.05 && scale < ZOOM_LEVELS[i + 1] - 0.05)
return ZOOM_LEVELS[i+1]; return ZOOM_LEVELS[i + 1];
} }
if (scale > ZOOM_LEVELS[ZOOM_LEVELS.length/2]) { if (scale > ZOOM_LEVELS[ZOOM_LEVELS.length / 2]) {
// scale is large, give next full 100% // scale is large, give next full 100%
scale = Math.floor(scale+1.05); scale = Math.floor(scale + 1.05);
return scale; return scale;
} }
return scale*1.5; return scale * 1.5;
} }
} }

View File

@ -4,6 +4,7 @@ import java.awt.Component;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Locale;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
@ -60,7 +61,7 @@ public final class FileHelper {
public static FileFilter getImageFileFilter() { public static FileFilter getImageFileFilter() {
String[] extensions = ImageIO.getReaderFileSuffixes(); String[] extensions = ImageIO.getReaderFileSuffixes();
for (int i = 0; i < extensions.length; i++) { for (int i = 0; i < extensions.length; i++) {
extensions[i] = extensions[i].toLowerCase(); extensions[i] = extensions[i].toLowerCase(Locale.ENGLISH);
} }
Arrays.sort(extensions); Arrays.sort(extensions);
@ -110,7 +111,7 @@ public final class FileHelper {
*/ */
public static File forceExtension(File original, String extension) { public static File forceExtension(File original, String extension) {
if (!original.getName().toLowerCase().endsWith(extension.toLowerCase())) { if (!original.getName().toLowerCase(Locale.ENGLISH).endsWith(extension.toLowerCase(Locale.ENGLISH))) {
log.debug(1, "File name does not contain extension, adding '" + extension + "'"); log.debug(1, "File name does not contain extension, adding '" + extension + "'");
String name = original.getAbsolutePath(); String name = original.getAbsolutePath();
if (extension.startsWith(".")) { if (extension.startsWith(".")) {

View File

@ -1,6 +1,7 @@
package net.sf.openrocket.gui.util; package net.sf.openrocket.gui.util;
import java.io.File; import java.io.File;
import java.util.Locale;
import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileFilter;
@ -25,7 +26,7 @@ public class SimpleFileFilter extends FileFilter implements java.io.FileFilter {
* @param description the description of this file filter. * @param description the description of this file filter.
* @param extensions an array of extensions that match this filter. * @param extensions an array of extensions that match this filter.
*/ */
public SimpleFileFilter(String description, String ... extensions) { public SimpleFileFilter(String description, String... extensions) {
this(description, true, extensions); this(description, true, extensions);
} }
@ -37,12 +38,12 @@ public class SimpleFileFilter extends FileFilter implements java.io.FileFilter {
* @param acceptDir whether to accept directories * @param acceptDir whether to accept directories
* @param extensions an array of extensions that match this filter. * @param extensions an array of extensions that match this filter.
*/ */
public SimpleFileFilter(String description, boolean acceptDir, String ... extensions) { public SimpleFileFilter(String description, boolean acceptDir, String... extensions) {
this.description = description; this.description = description;
this.acceptDir = acceptDir; this.acceptDir = acceptDir;
this.extensions = new String[extensions.length]; this.extensions = new String[extensions.length];
for (int i=0; i<extensions.length; i++) { for (int i = 0; i < extensions.length; i++) {
String ext = extensions[i].toLowerCase(); String ext = extensions[i].toLowerCase(Locale.ENGLISH);
if (ext.charAt(0) == '.') { if (ext.charAt(0) == '.') {
this.extensions[i] = ext; this.extensions[i] = ext;
} else { } else {
@ -60,8 +61,8 @@ public class SimpleFileFilter extends FileFilter implements java.io.FileFilter {
return acceptDir; return acceptDir;
String filename = file.getName(); String filename = file.getName();
filename = filename.toLowerCase(); filename = filename.toLowerCase(Locale.ENGLISH);
for (String ext: extensions) { for (String ext : extensions) {
if (filename.endsWith(ext)) if (filename.endsWith(ext))
return true; return true;
} }

View File

@ -1,5 +1,7 @@
package net.sf.openrocket.logging; package net.sf.openrocket.logging;
import java.util.Locale;
/** /**
* The logging level. The natural order of the LogLevel orders the levels * The logging level. The natural order of the LogLevel orders the levels
* from highest priority to lowest priority. Comparisons of the relative levels * from highest priority to lowest priority. Comparisons of the relative levels
@ -103,7 +105,7 @@ public enum LogLevel {
if (value == null) { if (value == null) {
return defaultLevel; return defaultLevel;
} }
value = value.toUpperCase().trim(); value = value.toUpperCase(Locale.ENGLISH).trim();
// Find the correct level // Find the correct level
LogLevel level = defaultLevel; LogLevel level = defaultLevel;

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Set; import java.util.Set;
/** /**
@ -243,7 +244,7 @@ public class Manufacturer {
private String generateSearchString(String str) { private String generateSearchString(String str) {
return str.toLowerCase().replaceAll("[^a-zA-Z0-9]+", " ").trim(); return str.toLowerCase(Locale.getDefault()).replaceAll("[^a-zA-Z0-9]+", " ").trim();
} }
} }

View File

@ -1,5 +1,7 @@
package net.sf.openrocket.optimization.rocketoptimization.modifiers; package net.sf.openrocket.optimization.rocketoptimization.modifiers;
import java.util.Locale;
import net.sf.openrocket.document.Simulation; import net.sf.openrocket.document.Simulation;
import net.sf.openrocket.logging.LogHelper; import net.sf.openrocket.logging.LogHelper;
import net.sf.openrocket.optimization.general.OptimizationException; import net.sf.openrocket.optimization.general.OptimizationException;
@ -53,7 +55,7 @@ public abstract class GenericModifier<T> extends AbstractSimulationModifier {
} }
try { try {
methodName = methodName.substring(0, 1).toUpperCase() + methodName.substring(1); methodName = methodName.substring(0, 1).toUpperCase(Locale.ENGLISH) + methodName.substring(1);
getter = new Method(modifiedClass.getMethod("get" + methodName)); getter = new Method(modifiedClass.getMethod("get" + methodName));
setter = new Method(modifiedClass.getMethod("set" + methodName, double.class)); setter = new Method(modifiedClass.getMethod("set" + methodName, double.class));
} catch (SecurityException e) { } catch (SecurityException e) {

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.document.OpenRocketDocument;
@ -273,8 +274,8 @@ public class DefaultSimulationModifierService implements SimulationModifierServi
Transition.Shape shape = transition.getType(); Transition.Shape shape = transition.getType();
if (shape.usesParameter()) { if (shape.usesParameter()) {
SimulationModifier mod = new GenericComponentModifier( SimulationModifier mod = new GenericComponentModifier(
trans.get("optimization.modifier." + c.getClass().getSimpleName().toLowerCase() + ".shapeparameter"), trans.get("optimization.modifier." + c.getClass().getSimpleName().toLowerCase(Locale.ENGLISH) + ".shapeparameter"),
trans.get("optimization.modifier." + c.getClass().getSimpleName().toLowerCase() + ".shapeparameter.desc"), trans.get("optimization.modifier." + c.getClass().getSimpleName().toLowerCase(Locale.ENGLISH) + ".shapeparameter.desc"),
c, UnitGroup.UNITS_NONE, c, UnitGroup.UNITS_NONE,
1.0, c.getClass(), c.getID(), "ShapeParameter"); 1.0, c.getClass(), c.getID(), "ShapeParameter");
mod.setMinValue(shape.minParameter()); mod.setMinValue(shape.minParameter());

View File

@ -1,6 +1,7 @@
package net.sf.openrocket.simulation; package net.sf.openrocket.simulation;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import net.sf.openrocket.l10n.Translator; import net.sf.openrocket.l10n.Translator;
@ -188,7 +189,7 @@ public class FlightDataType implements Comparable<FlightDataType> {
* @return a data type. * @return a data type.
*/ */
public static synchronized FlightDataType getType(String s, UnitGroup u) { public static synchronized FlightDataType getType(String s, UnitGroup u) {
FlightDataType type = EXISTING_TYPES.get(s.toLowerCase()); FlightDataType type = EXISTING_TYPES.get(s.toLowerCase(Locale.ENGLISH));
if (type != null) { if (type != null) {
return type; return type;
} }
@ -201,7 +202,7 @@ public class FlightDataType implements Comparable<FlightDataType> {
*/ */
private static synchronized FlightDataType newType(String s, UnitGroup u, int priority) { private static synchronized FlightDataType newType(String s, UnitGroup u, int priority) {
FlightDataType type = new FlightDataType(s, u, priority); FlightDataType type = new FlightDataType(s, u, priority);
EXISTING_TYPES.put(s.toLowerCase(), type); EXISTING_TYPES.put(s.toLowerCase(Locale.ENGLISH), type);
return type; return type;
} }
@ -220,7 +221,7 @@ public class FlightDataType implements Comparable<FlightDataType> {
this.name = typeName; this.name = typeName;
this.units = units; this.units = units;
this.priority = priority; this.priority = priority;
this.hashCode = this.name.toLowerCase().hashCode(); this.hashCode = this.name.toLowerCase(Locale.ENGLISH).hashCode();
} }

View File

@ -27,6 +27,16 @@ public class AbstractSimulationListener implements SimulationListener, Simulatio
//// SimulationListener //// //// SimulationListener ////
@Override
public String getName() {
return this.getClass().getSimpleName();
}
@Override
public String[] getMenuPosition() {
return new String[0];
}
@Override @Override
public void startSimulation(SimulationStatus status) throws SimulationException { public void startSimulation(SimulationStatus status) throws SimulationException {
// No-op // No-op

View File

@ -7,6 +7,25 @@ import net.sf.openrocket.simulation.exception.SimulationException;
public interface SimulationListener { public interface SimulationListener {
/**
* Get the name of this simulation listener. Ideally this should be localized, as
* it can be displayed in the UI.
*
* @return the name of this simulation listener.
*/
public String getName();
/**
* Get the menu position of this simulation listener. This should be an array
* of localized submenu names in descending order, or an empty array for positioning
* in the base menu.
*
* @return the menu position of this simulation listener.
*/
public String[] getMenuPosition();
/** /**
* Called when starting a simulation. * Called when starting a simulation.
* *

View File

@ -1,6 +1,7 @@
package net.sf.openrocket.startup; package net.sf.openrocket.startup;
import java.awt.GraphicsEnvironment; import java.awt.GraphicsEnvironment;
import java.util.Locale;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
@ -59,8 +60,8 @@ public class VersionHelper {
*/ */
static void checkOpenJDK() { static void checkOpenJDK() {
if (System.getProperty("java.runtime.name", "").toLowerCase().indexOf("icedtea") >= 0 || if (System.getProperty("java.runtime.name", "").toLowerCase(Locale.ENGLISH).indexOf("icedtea") >= 0 ||
System.getProperty("java.vm.name", "").toLowerCase().indexOf("openjdk") >= 0) { System.getProperty("java.vm.name", "").toLowerCase(Locale.ENGLISH).indexOf("openjdk") >= 0) {
String jreName = System.getProperty("java.vm.name", "(unknown)"); String jreName = System.getProperty("java.vm.name", "(unknown)");
String jreVersion = System.getProperty("java.runtime.version", "(unknown)"); String jreVersion = System.getProperty("java.runtime.version", "(unknown)");

View File

@ -1,5 +1,7 @@
package net.sf.openrocket.util; package net.sf.openrocket.util;
import java.util.Locale;
import net.sf.openrocket.l10n.Translator; import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.startup.Application; import net.sf.openrocket.startup.Application;
@ -141,14 +143,14 @@ public enum GeodeticComputationStrategy {
* Return the name of this geodetic computation method. * Return the name of this geodetic computation method.
*/ */
public String getName() { public String getName() {
return trans.get(name().toLowerCase() + ".name"); return trans.get(name().toLowerCase(Locale.ENGLISH) + ".name");
} }
/** /**
* Return a description of the geodetic computation methods. * Return a description of the geodetic computation methods.
*/ */
public String getDescription() { public String getDescription() {
return trans.get(name().toLowerCase() + ".desc"); return trans.get(name().toLowerCase(Locale.ENGLISH) + ".desc");
} }
@Override @Override

View File

@ -14,6 +14,7 @@ import java.net.URL;
import java.security.Permission; import java.security.Permission;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import net.sf.openrocket.util.BugException; import net.sf.openrocket.util.BugException;
@ -149,21 +150,21 @@ public class HttpURLConnectionMock extends HttpURLConnection {
@Override @Override
public void addRequestProperty(String key, String value) { public void addRequestProperty(String key, String value) {
assertFalse(connected); assertFalse(connected);
assertFalse(this.requestProperties.containsKey(key.toLowerCase())); assertFalse(this.requestProperties.containsKey(key.toLowerCase(Locale.ENGLISH)));
this.requestProperties.put(key.toLowerCase(), value); this.requestProperties.put(key.toLowerCase(Locale.ENGLISH), value);
} }
@Override @Override
public void setRequestProperty(String key, String value) { public void setRequestProperty(String key, String value) {
assertFalse(connected); assertFalse(connected);
this.requestProperties.put(key.toLowerCase(), value); this.requestProperties.put(key.toLowerCase(Locale.ENGLISH), value);
} }
@Override @Override
public String getRequestProperty(String key) { public String getRequestProperty(String key) {
return this.requestProperties.get(key.toLowerCase()); return this.requestProperties.get(key.toLowerCase(Locale.ENGLISH));
} }
@ -303,9 +304,6 @@ public class HttpURLConnectionMock extends HttpURLConnection {
private void assertNull(Object o) { private void assertNull(Object o) {
try { try {
org.junit.Assert.assertNull(o); org.junit.Assert.assertNull(o);
@ -351,19 +349,6 @@ public class HttpURLConnectionMock extends HttpURLConnection {
@Override @Override
public InputStream getErrorStream() { public InputStream getErrorStream() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();