Changeset 12735 in josm for trunk/src


Ignore:
Timestamp:
2017-09-05T17:58:01+02:00 (7 years ago)
Author:
bastiK
Message:

see #15229 - move CoordinateFormat code out of LatLon class

Location:
trunk/src/org/openstreetmap/josm
Files:
8 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/Main.java

    r12718 r12735  
    3434import org.openstreetmap.josm.data.UndoRedoHandler;
    3535import org.openstreetmap.josm.data.cache.JCSCacheManager;
    36 import org.openstreetmap.josm.data.coor.CoordinateFormat;
     36import org.openstreetmap.josm.data.coor.conversion.CoordinateFormatManager;
     37import org.openstreetmap.josm.data.coor.conversion.DecimalDegreesCoordinateFormat;
     38import org.openstreetmap.josm.data.coor.conversion.ICoordinateFormat;
    3739import org.openstreetmap.josm.data.osm.DataSet;
    3840import org.openstreetmap.josm.data.osm.OsmPrimitive;
     
    724726    public static void preConstructorInit() {
    725727        // init default coordinate format
    726         try {
    727             CoordinateFormat.setCoordinateFormat(CoordinateFormat.valueOf(Main.pref.get("coordinates")));
    728         } catch (IllegalArgumentException iae) {
    729             Logging.trace(iae);
    730             CoordinateFormat.setCoordinateFormat(CoordinateFormat.DECIMAL_DEGREES);
    731         }
     728        ICoordinateFormat fmt = CoordinateFormatManager.getCoordinateFormat(Main.pref.get("coordinates"));
     729        if (fmt == null) {
     730            fmt = DecimalDegreesCoordinateFormat.INSTANCE;
     731        }
     732        CoordinateFormatManager.setCoordinateFormat(fmt);
    732733    }
    733734
  • trunk/src/org/openstreetmap/josm/data/coor/CoordinateFormat.java

    r11489 r12735  
    44import static org.openstreetmap.josm.tools.I18n.tr;
    55
     6import org.openstreetmap.josm.data.coor.conversion.CoordinateFormatManager;
     7import org.openstreetmap.josm.data.coor.conversion.DMSCoordinateFormat;
     8import org.openstreetmap.josm.data.coor.conversion.DecimalDegreesCoordinateFormat;
     9import org.openstreetmap.josm.data.coor.conversion.ICoordinateFormat;
     10import org.openstreetmap.josm.data.coor.conversion.NauticalCoordinateFormat;
     11import org.openstreetmap.josm.data.coor.conversion.ProjectedCoordinateFormat;
     12
    613/**
    714 * An enumeration  of coordinate formats
    815 * @since 1990
     16 * @deprecated use {@link CoordinateFormatManager}
    917 */
     18@Deprecated
    1019public enum CoordinateFormat {
    1120
     
    1322     * the decimal format 999.999
    1423     */
    15     DECIMAL_DEGREES(tr("Decimal Degrees")),
     24    DECIMAL_DEGREES(tr("Decimal Degrees"), DecimalDegreesCoordinateFormat.INSTANCE),
    1625
    1726    /**
    1827     * the degrees/minutes/seconds format 9 deg 99 min 99 sec
    1928     */
    20     DEGREES_MINUTES_SECONDS(tr("deg\u00B0 min'' sec\"")),
     29    DEGREES_MINUTES_SECONDS(tr("deg\u00B0 min'' sec\""), DMSCoordinateFormat.INSTANCE),
    2130
    2231    /**
    2332     * the nautical format
    2433     */
    25     NAUTICAL(tr("deg\u00B0 min'' (Nautical)")),
     34    NAUTICAL(tr("deg\u00B0 min'' (Nautical)"), NauticalCoordinateFormat.INSTANCE),
    2635
    2736    /**
    2837     * coordinates East/North
    2938     */
    30     EAST_NORTH(tr("Projected Coordinates"));
     39    EAST_NORTH(tr("Projected Coordinates"), ProjectedCoordinateFormat.INSTANCE);
    3140
    3241    private final String displayName;
     42    private final ICoordinateFormat migration;
    3343
    34     CoordinateFormat(String displayName) {
     44    CoordinateFormat(String displayName, ICoordinateFormat migration) {
    3545        this.displayName = displayName;
     46        this.migration = migration;
    3647    }
    3748
     
    4354    public String getDisplayName() {
    4455        return displayName;
     56    }
     57
     58    /**
     59     * Returns the corresponding {@link ICoordinateFormat} instance for
     60     * migration.
     61     * @return the corresponding {@link ICoordinateFormat} instance for
     62     * migration
     63     */
     64    public ICoordinateFormat getICoordinateFormat() {
     65        return migration;
    4566    }
    4667
  • trunk/src/org/openstreetmap/josm/data/coor/LatLon.java

    r12725 r12735  
    2525import org.openstreetmap.josm.Main;
    2626import org.openstreetmap.josm.data.Bounds;
     27import org.openstreetmap.josm.data.coor.conversion.DMSCoordinateFormat;
     28import org.openstreetmap.josm.data.coor.conversion.DecimalDegreesCoordinateFormat;
     29import org.openstreetmap.josm.data.coor.conversion.NauticalCoordinateFormat;
    2730import org.openstreetmap.josm.tools.Logging;
    2831import org.openstreetmap.josm.tools.Utils;
     
    6972    public static final LatLon SOUTH_POLE = new LatLon(-90, 0);
    7073
    71     private static DecimalFormat cDmsMinuteFormatter = new DecimalFormat("00");
    72     private static DecimalFormat cDmsSecondFormatter = new DecimalFormat(
    73             Main.pref == null ? "00.0" : Main.pref.get("latlon.dms.decimal-format", "00.0"));
    74     private static DecimalFormat cDmMinuteFormatter = new DecimalFormat(
    75             Main.pref == null ? "00.000" : Main.pref.get("latlon.dm.decimal-format", "00.000"));
    7674    /**
    7775     * The normal number format for server precision coordinates
     
    9088        cDdHighPecisionFormatter.applyPattern("###0.0##########");
    9189    }
    92 
    93     private static final String cDms60 = cDmsSecondFormatter.format(60.0);
    94     private static final String cDms00 = cDmsSecondFormatter.format(0.0);
    95     private static final String cDm60 = cDmMinuteFormatter.format(60.0);
    96     private static final String cDm00 = cDmMinuteFormatter.format(0.0);
    9790
    9891    /** Character denoting South, as string */
     
    217210     * @return The coordinate in degrees/minutes/seconds format
    218211     * @since 12561
    219      */
     212     * @deprecated use {@link DMSCoordinateFormat#degreesMinutesSeconds(double)}
     213     */
     214    @Deprecated
    220215    public static String degreesMinutesSeconds(double pCoordinate) {
    221 
    222         double tAbsCoord = Math.abs(pCoordinate);
    223         int tDegree = (int) tAbsCoord;
    224         double tTmpMinutes = (tAbsCoord - tDegree) * 60;
    225         int tMinutes = (int) tTmpMinutes;
    226         double tSeconds = (tTmpMinutes - tMinutes) * 60;
    227 
    228         String sDegrees = Integer.toString(tDegree);
    229         String sMinutes = cDmsMinuteFormatter.format(tMinutes);
    230         String sSeconds = cDmsSecondFormatter.format(tSeconds);
    231 
    232         if (cDms60.equals(sSeconds)) {
    233             sSeconds = cDms00;
    234             sMinutes = cDmsMinuteFormatter.format(tMinutes+1L);
    235         }
    236         if ("60".equals(sMinutes)) {
    237             sMinutes = "00";
    238             sDegrees = Integer.toString(tDegree+1);
    239         }
    240 
    241         return sDegrees + '\u00B0' + sMinutes + '\'' + sSeconds + '\"';
     216        return DMSCoordinateFormat.degreesMinutesSeconds(pCoordinate);
    242217    }
    243218
     
    247222     * @return The coordinate in degrees/minutes format
    248223     * @since 12537
    249      */
     224     * @deprecated use {@link NauticalCoordinateFormat#degreesMinutes(double)}
     225     */
     226    @Deprecated
    250227    public static String degreesMinutes(double pCoordinate) {
    251 
    252         double tAbsCoord = Math.abs(pCoordinate);
    253         int tDegree = (int) tAbsCoord;
    254         double tMinutes = (tAbsCoord - tDegree) * 60;
    255 
    256         String sDegrees = Integer.toString(tDegree);
    257         String sMinutes = cDmMinuteFormatter.format(tMinutes);
    258 
    259         if (sMinutes.equals(cDm60)) {
    260             sMinutes = cDm00;
    261             sDegrees = Integer.toString(tDegree+1);
    262         }
    263 
    264         return sDegrees + '\u00B0' + sMinutes + '\'';
     228        return NauticalCoordinateFormat.degreesMinutes(pCoordinate);
    265229    }
    266230
     
    302266     * @param d the coordinate format to use
    303267     * @return the formatted latitude
    304      */
     268     * @deprecated use {@link org.openstreetmap.josm.data.coor.format.ICoordinateFormat#latToString(ILatLon)
     269     */
     270    @Deprecated
    305271    public String latToString(CoordinateFormat d) {
    306         switch(d) {
    307         case DECIMAL_DEGREES: return cDdFormatter.format(y);
    308         case DEGREES_MINUTES_SECONDS: return degreesMinutesSeconds(y) + ((y < 0) ? SOUTH : NORTH);
    309         case NAUTICAL: return degreesMinutes(y) + ((y < 0) ? SOUTH : NORTH);
    310         case EAST_NORTH: return cDdFormatter.format(this.getEastNorth(Main.getProjection()).north());
    311         default: return "ERR";
    312         }
     272        return d.getICoordinateFormat().latToString(this);
    313273    }
    314274
     
    322282     * @param d the coordinate format to use
    323283     * @return the formatted longitude
    324      */
     284     * @deprecated use {@link org.openstreetmap.josm.data.coor.format.ICoordinateFormat#lonToString(ILatLon)
     285     */
     286    @Deprecated
    325287    public String lonToString(CoordinateFormat d) {
    326         switch(d) {
    327         case DECIMAL_DEGREES: return cDdFormatter.format(x);
    328         case DEGREES_MINUTES_SECONDS: return degreesMinutesSeconds(x) + ((x < 0) ? WEST : EAST);
    329         case NAUTICAL: return degreesMinutes(x) + ((x < 0) ? WEST : EAST);
    330         case EAST_NORTH: return cDdFormatter.format(this.getEastNorth(Main.getProjection()).east());
    331         default: return "ERR";
    332         }
     288        return d.getICoordinateFormat().lonToString(this);
    333289    }
    334290
     
    469425    public String toStringCSV(String separator) {
    470426        return Utils.join(separator, Arrays.asList(
    471                 latToString(CoordinateFormat.DECIMAL_DEGREES),
    472                 lonToString(CoordinateFormat.DECIMAL_DEGREES)
     427                DecimalDegreesCoordinateFormat.INSTANCE.latToString(this),
     428                DecimalDegreesCoordinateFormat.INSTANCE.lonToString(this)
    473429        ));
    474430    }
  • trunk/src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java

    r12663 r12735  
    2222
    2323import org.openstreetmap.josm.Main;
    24 import org.openstreetmap.josm.data.coor.CoordinateFormat;
    2524import org.openstreetmap.josm.data.coor.LatLon;
     25import org.openstreetmap.josm.data.coor.conversion.CoordinateFormatManager;
    2626import org.openstreetmap.josm.data.osm.history.HistoryNameFormatter;
    2727import org.openstreetmap.josm.data.osm.history.HistoryNode;
     
    187187            }
    188188            if (node.getCoor() != null) {
    189                 name.append(" \u200E(").append(node.getCoor().latToString(CoordinateFormat.getDefaultFormat())).append(", ")
    190                     .append(node.getCoor().lonToString(CoordinateFormat.getDefaultFormat())).append(')');
     189                name.append(" \u200E(").append(CoordinateFormatManager.getDefaultFormat().latToString(node)).append(", ")
     190                    .append(CoordinateFormatManager.getDefaultFormat().lonToString(node)).append(')');
    191191            }
    192192        }
     
    541541        if (coord != null) {
    542542            sb.append(" (")
    543             .append(coord.latToString(CoordinateFormat.getDefaultFormat()))
     543            .append(CoordinateFormatManager.getDefaultFormat().latToString(coord))
    544544            .append(", ")
    545             .append(coord.lonToString(CoordinateFormat.getDefaultFormat()))
     545            .append(CoordinateFormatManager.getDefaultFormat().lonToString(coord))
    546546            .append(')');
    547547        }
  • trunk/src/org/openstreetmap/josm/gui/MapStatus.java

    r12675 r12735  
    6060import org.openstreetmap.josm.data.SystemOfMeasurement;
    6161import org.openstreetmap.josm.data.SystemOfMeasurement.SoMChangeListener;
    62 import org.openstreetmap.josm.data.coor.CoordinateFormat;
    6362import org.openstreetmap.josm.data.coor.LatLon;
     63import org.openstreetmap.josm.data.coor.conversion.CoordinateFormatManager;
     64import org.openstreetmap.josm.data.coor.conversion.DMSCoordinateFormat;
     65import org.openstreetmap.josm.data.coor.conversion.ICoordinateFormat;
     66import org.openstreetmap.josm.data.coor.conversion.ProjectedCoordinateFormat;
    6467import org.openstreetmap.josm.data.osm.DataSet;
    6568import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
     
    210213    }
    211214
    212     /** The {@link CoordinateFormat} set in the previous update */
    213     private transient CoordinateFormat previousCoordinateFormat;
     215    /** The {@link ICoordinateFormat} set in the previous update */
     216    private transient ICoordinateFormat previousCoordinateFormat;
    214217    private final ImageLabel latText = new ImageLabel("lat",
    215             null, LatLon.SOUTH_POLE.latToString(CoordinateFormat.DEGREES_MINUTES_SECONDS).length(), PROP_BACKGROUND_COLOR.get());
     218            null, DMSCoordinateFormat.INSTANCE.latToString(LatLon.SOUTH_POLE).length(), PROP_BACKGROUND_COLOR.get());
    216219    private final ImageLabel lonText = new ImageLabel("lon",
    217             null, new LatLon(0, 180).lonToString(CoordinateFormat.DEGREES_MINUTES_SECONDS).length(), PROP_BACKGROUND_COLOR.get());
     220            null, DMSCoordinateFormat.INSTANCE.lonToString(new LatLon(0, 180)).length(), PROP_BACKGROUND_COLOR.get());
    218221    private final ImageLabel headingText = new ImageLabel("heading",
    219222            tr("The (compass) heading of the line segment being drawn."),
     
    763766        /** Icons for selecting {@link SystemOfMeasurement} */
    764767        private final Collection<JCheckBoxMenuItem> somItems = new ArrayList<>();
    765         /** Icons for selecting {@link CoordinateFormat}  */
     768        /** Icons for selecting {@link ICoordinateFormat}  */
    766769        private final Collection<JCheckBoxMenuItem> coordinateFormatItems = new ArrayList<>();
    767770
     
    787790                add(item);
    788791            }
    789             for (final CoordinateFormat format : CoordinateFormat.values()) {
     792            for (final ICoordinateFormat format : CoordinateFormatManager.getCoordinateFormats()) {
    790793                JCheckBoxMenuItem item = new JCheckBoxMenuItem(new AbstractAction(format.getDisplayName()) {
    791794                    @Override
    792795                    public void actionPerformed(ActionEvent e) {
    793                         CoordinateFormat.setCoordinateFormat(format);
     796                        CoordinateFormatManager.setCoordinateFormat(format);
    794797                    }
    795798                });
     
    811814                        item.setVisible(distText.equals(invoker));
    812815                    }
    813                     final String currentCorrdinateFormat = CoordinateFormat.getDefaultFormat().getDisplayName();
     816                    final String currentCorrdinateFormat = CoordinateFormatManager.getDefaultFormat().getDisplayName();
    814817                    for (JMenuItem item : coordinateFormatItems) {
    815818                        item.setSelected(currentCorrdinateFormat.equals(item.getText()));
     
    873876                // Do not update the view if ctrl is pressed.
    874877                if ((e.getModifiersEx() & MouseEvent.CTRL_DOWN_MASK) == 0) {
    875                     CoordinateFormat mCord = CoordinateFormat.getDefaultFormat();
     878                    ICoordinateFormat mCord = CoordinateFormatManager.getDefaultFormat();
    876879                    LatLon p = mv.getLatLon(e.getX(), e.getY());
    877                     latText.setText(p.latToString(mCord));
    878                     lonText.setText(p.lonToString(mCord));
     880                    latText.setText(mCord.latToString(p));
     881                    lonText.setText(mCord.lonToString(p));
    879882                    if (Objects.equals(previousCoordinateFormat, mCord)) {
    880883                        // do nothing
    881                     } else if (CoordinateFormat.EAST_NORTH.equals(mCord)) {
     884                    } else if (ProjectedCoordinateFormat.INSTANCE.equals(mCord)) {
    882885                        latText.setIcon("northing");
    883886                        lonText.setIcon("easting");
  • trunk/src/org/openstreetmap/josm/gui/dialogs/LatLonDialog.java

    r12678 r12735  
    2424
    2525import org.openstreetmap.josm.Main;
    26 import org.openstreetmap.josm.data.coor.CoordinateFormat;
    2726import org.openstreetmap.josm.data.coor.EastNorth;
    2827import org.openstreetmap.josm.data.coor.LatLon;
     28import org.openstreetmap.josm.data.coor.conversion.CoordinateFormatManager;
    2929import org.openstreetmap.josm.gui.ExtendedDialog;
    3030import org.openstreetmap.josm.gui.util.WindowGeometry;
     
    191191    public void setCoordinates(LatLon ll) {
    192192        LatLon llc = Optional.ofNullable(ll).orElse(LatLon.ZERO);
    193         tfLatLon.setText(llc.latToString(CoordinateFormat.getDefaultFormat()) + ' ' +
    194                          llc.lonToString(CoordinateFormat.getDefaultFormat()));
     193        tfLatLon.setText(CoordinateFormatManager.getDefaultFormat().latToString(llc) + ' ' +
     194                         CoordinateFormatManager.getDefaultFormat().lonToString(llc));
    195195        EastNorth en = Main.getProjection().latlon2eastNorth(llc);
    196196        tfEastNorth.setText(Double.toString(en.east()) + ' ' + Double.toString(en.north()));
  • trunk/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java

    r11620 r12735  
    2525
    2626import org.openstreetmap.josm.data.Bounds;
    27 import org.openstreetmap.josm.data.coor.CoordinateFormat;
    2827import org.openstreetmap.josm.data.coor.LatLon;
     28import org.openstreetmap.josm.data.coor.conversion.DecimalDegreesCoordinateFormat;
    2929import org.openstreetmap.josm.gui.widgets.JosmTextArea;
    3030import org.openstreetmap.josm.gui.widgets.JosmTextField;
     
    163163    private void updateBboxFields(Bounds area) {
    164164        if (area == null) return;
    165         latlon[0].setText(area.getMin().latToString(CoordinateFormat.DECIMAL_DEGREES));
    166         latlon[1].setText(area.getMin().lonToString(CoordinateFormat.DECIMAL_DEGREES));
    167         latlon[2].setText(area.getMax().latToString(CoordinateFormat.DECIMAL_DEGREES));
    168         latlon[3].setText(area.getMax().lonToString(CoordinateFormat.DECIMAL_DEGREES));
     165        latlon[0].setText(DecimalDegreesCoordinateFormat.INSTANCE.latToString(area.getMin()));
     166        latlon[1].setText(DecimalDegreesCoordinateFormat.INSTANCE.lonToString(area.getMin()));
     167        latlon[2].setText(DecimalDegreesCoordinateFormat.INSTANCE.latToString(area.getMax()));
     168        latlon[3].setText(DecimalDegreesCoordinateFormat.INSTANCE.lonToString(area.getMax()));
    169169        for (JosmTextField tf: latlon) {
    170170            resetErrorMessage(tf);
  • trunk/src/org/openstreetmap/josm/gui/history/CoordinateInfoViewer.java

    r11878 r12735  
    2020import org.openstreetmap.gui.jmapviewer.MapMarkerDot;
    2121import org.openstreetmap.gui.jmapviewer.tilesources.OsmTileSource;
    22 import org.openstreetmap.josm.data.coor.CoordinateFormat;
    2322import org.openstreetmap.josm.data.coor.LatLon;
     23import org.openstreetmap.josm.data.coor.conversion.DecimalDegreesCoordinateFormat;
    2424import org.openstreetmap.josm.data.osm.history.HistoryNode;
    2525import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive;
     
    308308
    309309            // display the coordinates
    310             lblLat.setText(coord != null ? coord.latToString(CoordinateFormat.DECIMAL_DEGREES) : tr("(none)"));
    311             lblLon.setText(coord != null ? coord.lonToString(CoordinateFormat.DECIMAL_DEGREES) : tr("(none)"));
     310            lblLat.setText(coord != null ? DecimalDegreesCoordinateFormat.INSTANCE.latToString(coord) : tr("(none)"));
     311            lblLon.setText(coord != null ? DecimalDegreesCoordinateFormat.INSTANCE.lonToString(coord) : tr("(none)"));
    312312
    313313            // update background color to reflect differences in the coordinates
  • trunk/src/org/openstreetmap/josm/gui/preferences/projection/ProjectionPreference.java

    r12674 r12735  
    2626import org.openstreetmap.josm.data.Bounds;
    2727import org.openstreetmap.josm.data.SystemOfMeasurement;
    28 import org.openstreetmap.josm.data.coor.CoordinateFormat;
     28import org.openstreetmap.josm.data.coor.conversion.CoordinateFormatManager;
     29import org.openstreetmap.josm.data.coor.conversion.ICoordinateFormat;
    2930import org.openstreetmap.josm.data.preferences.CollectionProperty;
    3031import org.openstreetmap.josm.data.preferences.StringProperty;
     
    288289     * Combobox with all projections available
    289290     */
    290     private final JosmComboBox<ProjectionChoice> projectionCombo = new JosmComboBox<>(
    291             projectionChoices.toArray(new ProjectionChoice[projectionChoices.size()]));
     291    private final JosmComboBox<ProjectionChoice> projectionCombo;
    292292
    293293    /**
    294294     * Combobox with all coordinate display possibilities
    295295     */
    296     private final JosmComboBox<CoordinateFormat> coordinatesCombo = new JosmComboBox<>(CoordinateFormat.values());
     296    private final JosmComboBox<ICoordinateFormat> coordinatesCombo;
    297297
    298298    private final JosmComboBox<String> unitsCombo = new JosmComboBox<>(unitsValuesTr);
     
    326326    private static final GBC projSubPrefPanelGBC = GBC.std().fill(GBC.BOTH).weight(1.0, 1.0);
    327327
     328    public ProjectionPreference() {
     329        this.projectionCombo = new JosmComboBox<>(
     330            projectionChoices.toArray(new ProjectionChoice[projectionChoices.size()]));
     331        this.coordinatesCombo = new JosmComboBox<>(
     332                CoordinateFormatManager.getCoordinateFormats().toArray(new ICoordinateFormat[0]));
     333    }
     334
    328335    @Override
    329336    public void addGui(PreferenceTabbedPane gui) {
     
    331338
    332339        for (int i = 0; i < coordinatesCombo.getItemCount(); ++i) {
    333             if (coordinatesCombo.getItemAt(i).name().equals(PROP_COORDINATES.get())) {
     340            if (coordinatesCombo.getItemAt(i).getId().equals(PROP_COORDINATES.get())) {
    334341                coordinatesCombo.setSelectedIndex(i);
    335342                break;
     
    399406        projectionName.setText(proj.toString());
    400407        Bounds b = proj.getWorldBoundsLatLon();
    401         CoordinateFormat cf = CoordinateFormat.getDefaultFormat();
    402         bounds.setText(b.getMin().lonToString(cf) + ", " + b.getMin().latToString(cf) + " : " +
    403                 b.getMax().lonToString(cf) + ", " + b.getMax().latToString(cf));
     408        ICoordinateFormat cf = CoordinateFormatManager.getDefaultFormat();
     409        bounds.setText(cf.lonToString(b.getMin()) + ", " + cf.latToString(b.getMin()) + " : " +
     410                cf.lonToString(b.getMax()) + ", " + cf.latToString(b.getMax()));
    404411        boolean showCode = true;
    405412        boolean showName = false;
     
    425432        setProjection(id, prefs, false);
    426433
    427         if (PROP_COORDINATES.put(((CoordinateFormat) coordinatesCombo.getSelectedItem()).name())) {
    428             CoordinateFormat.setCoordinateFormat((CoordinateFormat) coordinatesCombo.getSelectedItem());
     434        if (PROP_COORDINATES.put(((ICoordinateFormat) coordinatesCombo.getSelectedItem()).getId())) {
     435            CoordinateFormatManager.setCoordinateFormat((ICoordinateFormat) coordinatesCombo.getSelectedItem());
    429436        }
    430437
  • trunk/src/org/openstreetmap/josm/gui/widgets/BoundingBoxSelectionPanel.java

    r12304 r12735  
    1717
    1818import org.openstreetmap.josm.data.Bounds;
    19 import org.openstreetmap.josm.data.coor.CoordinateFormat;
    2019import org.openstreetmap.josm.data.coor.LatLon;
     20import org.openstreetmap.josm.data.coor.conversion.DecimalDegreesCoordinateFormat;
    2121import org.openstreetmap.josm.tools.GBC;
    2222import org.openstreetmap.josm.tools.OsmUrlToBounds;
     
    125125    private void updateBboxFields(Bounds area) {
    126126        if (area == null) return;
    127         tfLatLon[0].setText(area.getMin().latToString(CoordinateFormat.DECIMAL_DEGREES));
    128         tfLatLon[1].setText(area.getMin().lonToString(CoordinateFormat.DECIMAL_DEGREES));
    129         tfLatLon[2].setText(area.getMax().latToString(CoordinateFormat.DECIMAL_DEGREES));
    130         tfLatLon[3].setText(area.getMax().lonToString(CoordinateFormat.DECIMAL_DEGREES));
     127        tfLatLon[0].setText(DecimalDegreesCoordinateFormat.INSTANCE.latToString(area.getMin()));
     128        tfLatLon[1].setText(DecimalDegreesCoordinateFormat.INSTANCE.lonToString(area.getMin()));
     129        tfLatLon[2].setText(DecimalDegreesCoordinateFormat.INSTANCE.latToString(area.getMax()));
     130        tfLatLon[3].setText(DecimalDegreesCoordinateFormat.INSTANCE.lonToString(area.getMax()));
    131131    }
    132132
  • trunk/src/org/openstreetmap/josm/io/OsmWriter.java

    r12692 r12735  
    1313
    1414import org.openstreetmap.josm.data.DataSource;
    15 import org.openstreetmap.josm.data.coor.CoordinateFormat;
    1615import org.openstreetmap.josm.data.coor.LatLon;
     16import org.openstreetmap.josm.data.coor.conversion.DecimalDegreesCoordinateFormat;
    1717import org.openstreetmap.josm.data.osm.AbstractPrimitive;
    1818import org.openstreetmap.josm.data.osm.Changeset;
     
    194194        for (DataSource s : ds.getDataSources()) {
    195195            out.println("  <bounds minlat='"
    196                     + s.bounds.getMin().latToString(CoordinateFormat.DECIMAL_DEGREES)
     196                    + DecimalDegreesCoordinateFormat.INSTANCE.latToString(s.bounds.getMin())
    197197                    +"' minlon='"
    198                     + s.bounds.getMin().lonToString(CoordinateFormat.DECIMAL_DEGREES)
     198                    + DecimalDegreesCoordinateFormat.INSTANCE.lonToString(s.bounds.getMin())
    199199                    +"' maxlat='"
    200                     + s.bounds.getMax().latToString(CoordinateFormat.DECIMAL_DEGREES)
     200                    + DecimalDegreesCoordinateFormat.INSTANCE.latToString(s.bounds.getMax())
    201201                    +"' maxlon='"
    202                     + s.bounds.getMax().lonToString(CoordinateFormat.DECIMAL_DEGREES)
     202                    + DecimalDegreesCoordinateFormat.INSTANCE.lonToString(s.bounds.getMax())
    203203                    +"' origin='"+XmlWriter.encode(s.origin)+"' />");
    204204        }
     
    273273        out.print(" open='"+ (cs.isOpen() ? "true" : "false") +'\'');
    274274        if (cs.getMin() != null) {
    275             out.print(" min_lon='"+ cs.getMin().lonToString(CoordinateFormat.DECIMAL_DEGREES) +'\'');
    276             out.print(" min_lat='"+ cs.getMin().latToString(CoordinateFormat.DECIMAL_DEGREES) +'\'');
     275            out.print(" min_lon='"+ DecimalDegreesCoordinateFormat.INSTANCE.lonToString(cs.getMin()) +'\'');
     276            out.print(" min_lat='"+ DecimalDegreesCoordinateFormat.INSTANCE.latToString(cs.getMin()) +'\'');
    277277        }
    278278        if (cs.getMax() != null) {
    279             out.print(" max_lon='"+ cs.getMin().lonToString(CoordinateFormat.DECIMAL_DEGREES) +'\'');
    280             out.print(" max_lat='"+ cs.getMin().latToString(CoordinateFormat.DECIMAL_DEGREES) +'\'');
     279            out.print(" max_lon='"+ DecimalDegreesCoordinateFormat.INSTANCE.lonToString(cs.getMin()) +'\'');
     280            out.print(" max_lat='"+ DecimalDegreesCoordinateFormat.INSTANCE.latToString(cs.getMin()) +'\'');
    281281        }
    282282        out.println(">");
Note: See TracChangeset for help on using the changeset viewer.