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

see #15229 - move CoordinateFormat code out of LatLon class

Location:
trunk/src/org/openstreetmap/josm/gui
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.