Ignore:
Timestamp:
2013-09-25T18:34:06+02:00 (11 years ago)
Author:
oliverw
Message:

[josm_elevationprofile] Added zoom button; update/layout track combo correctly

Location:
applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ColoredElevationLayer.java

    r29960 r29961  
    5454    @Override
    5555    public Icon getIcon() {     
    56         return ImageProvider.get("layer", "elevation_small");
     56        return ImageProvider.get("layer", "elevation");
    5757    }
    5858
  • applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationProfilePlugin.java

    r29950 r29961  
    5757           
    5858            // TODO: Disable this view as long as it is not stable
    59             //MainMenu.add(Main.main.menu.viewMenu, action, false, 0);
     59            MainMenu.add(Main.main.menu.viewMenu, action, false, 0);
    6060        } catch (Exception e1) {
    6161            System.err.println("Init of ElevationProfilePlugin failed: " + e1);
  • applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/IElevationProfile.java

    r29955 r29961  
    1818import java.util.List;
    1919
     20import org.openstreetmap.josm.data.Bounds;
    2021import org.openstreetmap.josm.data.gpx.WayPoint;
    2122
     
    135136       
    136137        /**
     138         * Gets the coordinate bounds of the elevation profile.
     139         *
     140         * @return the bounds
     141         */
     142        public Bounds getBounds();
     143       
     144        /**
    137145         * Gets the children of the segment (maybe null).
    138146         */
  • applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gpx/ElevationProfileBase.java

    r29958 r29961  
    1919import java.util.List;
    2020
     21import org.openstreetmap.josm.data.Bounds;
    2122import org.openstreetmap.josm.data.gpx.WayPoint;
    2223import org.openstreetmap.josm.plugins.elevation.ElevationHelper;
     
    6465        private int gain;
    6566        private int lastEle;
     67        private Bounds bounds;
     68       
    6669        private static boolean ignoreZeroHeight = true;
    6770
     
    9295                this.name = name;
    9396                this.parent = parent;
     97               
    9498                setWayPoints(wayPoints);
    9599        }
    96100
     101        /**
     102         * Checks if zero elevation should be ignored or not.
     103         *
     104         * @return true, if is ignore zero height
     105         */
    97106        public static boolean isIgnoreZeroHeight() {
    98107                return ignoreZeroHeight;
    99108        }
    100109
     110        /**
     111         * Sets the ignore zero height.
     112         *
     113         * @param ignoreZeroHeight the new ignore zero height
     114         */
    101115        public static void setIgnoreZeroHeight(boolean ignoreZeroHeight) {
    102116                ElevationProfileBase.ignoreZeroHeight = ignoreZeroHeight;
     
    448462                return numWayPoints;// wayPoints != null ? wayPoints.size() : 0;
    449463        }
     464       
     465        /**
     466         * Gets the coordinate bounds of this profile. See {@link Bounds} for details.
     467         *
     468         * @return the bounds of this elevation profile
     469         */
     470        public Bounds getBounds() {
     471            return bounds;
     472        }
    450473
    451474        /**
     
    473496                }
    474497
     498                // update boundaries
     499                if (bounds == null) {
     500                    bounds = new Bounds(wp.getCoor());
     501                } else {
     502                    bounds.extend(wp.getCoor());
     503                }
     504               
    475505                int ele = (int) ElevationHelper.getElevation(wp);
    476506
  • applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java

    r29960 r29961  
    1818
    1919import java.awt.BorderLayout;
     20import java.awt.Dimension;
    2021import java.awt.FlowLayout;
    2122import java.awt.Font;
    2223import java.awt.GridLayout;
     24import java.awt.event.ActionEvent;
     25import java.awt.event.ActionListener;
    2326import java.awt.event.ComponentEvent;
    2427import java.awt.event.ComponentListener;
     
    2932
    3033import javax.swing.ComboBoxModel;
     34import javax.swing.JButton;
    3135import javax.swing.JComboBox;
    3236import javax.swing.JLabel;
     
    7579        private JLabel distLabel;
    7680        private JComboBox<IElevationProfile> trackCombo;
     81        private JButton zoomButton;
    7782       
    7883        /* Listener to the elevation model */
     
    8388         */
    8489        private ElevationProfileLayer profileLayer;
    85        
    8690
    8791        /**
     
    166170                trackPanel.add(lbTrack);
    167171               
    168                 trackCombo = new JComboBox<IElevationProfile>(new TrackModel());
     172                zoomButton = new JButton(tr("Zoom"));
     173                zoomButton.addActionListener(new ActionListener() {                 
     174                    @Override
     175                    public void actionPerformed(ActionEvent arg0) {
     176                        if (model != null) {
     177                                IElevationProfile profile = model.getCurrentProfile();
     178                                if (profile != null) {
     179                                    Main.map.mapView.zoomTo(profile.getBounds());
     180                                }
     181                        }
     182
     183                    }
     184                });
     185                zoomButton.setEnabled(false);
     186               
     187                trackCombo = new JComboBox<IElevationProfile>(new TrackModel());               
     188                trackCombo.setPreferredSize(new Dimension(200, 24)); // HACK!
     189                trackCombo.setEnabled(false); // we have no model on startup
     190               
    169191                trackPanel.add(trackCombo);
     192                trackPanel.add(zoomButton);
    170193
    171194                // assemble root panel
     
    246269         */
    247270        private void updateView() {
    248                 if (model == null) return;
     271                if (model == null) {
     272                    disableView();
     273                    return;
     274                }
    249275
    250276                IElevationProfile profile = model.getCurrentProfile();
    251 
    252277                if (profile != null) {
    253278                    // Show name of profile in title
     
    276301                    totalTimeLabel.setText(String.format("%d:%d h", hours, minutes));
    277302                    distLabel.setText(NavigatableComponent.getSystemOfMeasurement().getDistText(dist));
    278                     trackCombo.setEnabled(model.profileCount() > 1);               
     303                    trackCombo.setEnabled(model.profileCount() > 1);
     304                    trackCombo.setModel(new TrackModel());
     305                    zoomButton.setEnabled(true);
    279306                } else { // no elevation data, -> switch back to empty view
    280                     setTitle(String.format("%s: (No data)", tr("Elevation Profile")));
    281 
    282                     minHeightLabel.setText(EMPTY_DATA_STRING);
    283                     maxHeightLabel.setText(EMPTY_DATA_STRING);
    284                     avrgHeightLabel.setText(EMPTY_DATA_STRING);
    285                     elevationGainLabel.setText(EMPTY_DATA_STRING);
    286                     totalTimeLabel.setText(EMPTY_DATA_STRING);
    287                     distLabel.setText(EMPTY_DATA_STRING);
    288                     trackCombo.setEnabled(false);
     307                    disableView();
    289308                }
    290309               
    291310                fireModelChanged();
    292311                repaint();         
     312        }
     313
     314        private void disableView() {
     315            setTitle(String.format("%s: (No data)", tr("Elevation Profile")));
     316
     317            minHeightLabel.setText(EMPTY_DATA_STRING);
     318            maxHeightLabel.setText(EMPTY_DATA_STRING);
     319            avrgHeightLabel.setText(EMPTY_DATA_STRING);
     320            elevationGainLabel.setText(EMPTY_DATA_STRING);
     321            totalTimeLabel.setText(EMPTY_DATA_STRING);
     322            distLabel.setText(EMPTY_DATA_STRING);
     323            trackCombo.setEnabled(false);
     324            zoomButton.setEnabled(false);
    293325        }
    294326
Note: See TracChangeset for help on using the changeset viewer.