Ticket #2370: localgpxfiles.patch

File localgpxfiles.patch, 8.3 KB (added by jonobennett, 17 years ago)
  • org/openstreetmap/josm/actions/OpenFileAction.java

    # This patch file was generated by NetBeans IDE
    # Following Index: paths are relative to: Z:\Projects\JOSM\src
    # This patch can be applied using context Tools: Patch action on respective folder.
    # It uses platform neutral UTF-8 encoding and \n newlines.
    # Above lines and this line are ignored by the patching process.
     
    116116            }
    117117            r = new GpxReader(is,file.getAbsoluteFile().getParentFile());
    118118            r.data.storageFile = file;
    119             GpxLayer gpxLayer = new GpxLayer(r.data, fn);
     119            GpxLayer gpxLayer = new GpxLayer(r.data, fn, true);
    120120            Main.main.addLayer(gpxLayer);
    121121            if (Main.pref.getBoolean("marker.makeautomarkers", true)) {
    122122                MarkerLayer ml = new MarkerLayer(r.data, tr("Markers from {0}", fn), file, gpxLayer);
     
    154154            NmeaReader r = new NmeaReader(new FileInputStream(file), file.getAbsoluteFile().getParentFile());
    155155            if(r.getNumberOfCoordinates()>0) {
    156156                r.data.storageFile = file;
    157                 GpxLayer gpxLayer = new GpxLayer(r.data, fn);
     157                GpxLayer gpxLayer = new GpxLayer(r.data, fn, true);
    158158                Main.main.addLayer(gpxLayer);
    159159                if (Main.pref.getBoolean("marker.makeautomarkers", true)) {
    160160                    MarkerLayer ml = new MarkerLayer(r.data, tr("Markers from {0}", fn), file, gpxLayer);
  • org/openstreetmap/josm/gui/layer/GpxLayer.java

     
    8282    private Color computeCacheColorUsed;
    8383    private colorModes computeCacheColored;
    8484    private int computeCacheColorTracksTune;
     85        private boolean isLocalFile;
    8586
    8687    public GpxLayer(GpxData d) {
    8788        super((String) d.attr.get("name"));
     
    9596        this.name = name;
    9697    }
    9798
     99        public GpxLayer(GpxData d, String name, boolean isLocal) {
     100                this(d);
     101                this.name = name;
     102                this.isLocalFile = isLocal;
     103        }
     104
    98105    @Override public Icon getIcon() {
    99106        return ImageProvider.get("layer", "gpx_small");
    100107    }
     
    389396        // don't draw lines if longer than x meters
    390397        int maxLineLength = Main.pref.getInteger("draw.rawgps.max-line-length", -1);
    391398        // draw line between points, global setting
    392         boolean lines = Main.pref.getBoolean("draw.rawgps.lines");
     399        boolean lines = (Main.pref.getBoolean("draw.rawgps.lines") || (Main.pref.getBoolean("draw.rawgps.lines.localfiles") && this.isLocalFile));
    393400        String linesKey = "draw.rawgps.lines.layer "+name;
    394401        // draw lines, per-layer setting
    395402        if (Main.pref.hasKey(linesKey))
  • org/openstreetmap/josm/gui/preferences/DrawingPreference.java

     
    2626
    2727public class DrawingPreference implements PreferenceSetting {
    2828
    29     private JCheckBox drawRawGpsLines = new JCheckBox(tr("Draw lines between raw gps points."));
     29    private ButtonGroup gpsLinesGroup;
     30        private JRadioButton drawRawGpsLinesAll = new JRadioButton(tr("All"));
     31    private JRadioButton drawRawGpsLinesLocal = new JRadioButton(tr("Local files"));
     32        private JRadioButton drawRawGpsLinesNone = new JRadioButton(tr("None"));
     33        private ActionListener drawRawGpsLinesActionListener;
    3034    private JTextField drawRawGpsMaxLineLength = new JTextField(8);
    3135    private JCheckBox forceRawGpsLines = new JCheckBox(tr("Force lines if no segments imported."));
    3236    private JCheckBox largeGpsPoints = new JCheckBox(tr("Draw large GPS points."));
     
    5357        panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
    5458
    5559        // drawRawGpsLines
    56         drawRawGpsLines.addActionListener(new ActionListener(){
     60                gpsLinesGroup = new ButtonGroup();
     61                gpsLinesGroup.add(drawRawGpsLinesNone);
     62                gpsLinesGroup.add(drawRawGpsLinesLocal);
     63                gpsLinesGroup.add(drawRawGpsLinesAll);
     64
     65                if(Main.pref.getBoolean("draw.rawgps.lines")) {
     66                        drawRawGpsLinesAll.setSelected(true);
     67                } else if (Main.pref.getBoolean("draw.rawgps.lines.localfiles")) {
     68                        drawRawGpsLinesLocal.setSelected(true);
     69                } else {
     70                        drawRawGpsLinesNone.setSelected(true);
     71                }
     72               
     73                panel.add(new JLabel(tr("Draw lines between raw GPS points")), GBC.eol().insets(20,0,0,0));
     74        panel.add(drawRawGpsLinesNone, GBC.eol().insets(40,0,0,0));
     75        panel.add(drawRawGpsLinesLocal, GBC.eol().insets(40,0,0,0));
     76        panel.add(drawRawGpsLinesAll, GBC.eol().insets(40,0,0,0));
     77
     78            drawRawGpsLinesActionListener = new ActionListener(){
    5779            public void actionPerformed(ActionEvent e) {
    58                 forceRawGpsLines.setEnabled(drawRawGpsLines.isSelected());
    59                 drawRawGpsMaxLineLength.setEnabled(drawRawGpsLines.isSelected());
    60                 drawGpsArrows.setEnabled(drawRawGpsLines.isSelected());
     80                forceRawGpsLines.setEnabled(!drawRawGpsLinesNone.isSelected());
     81                drawRawGpsMaxLineLength.setEnabled(!drawRawGpsLinesNone.isSelected());
     82                drawGpsArrows.setEnabled(!drawRawGpsLinesNone.isSelected() );
    6183                drawGpsArrowsFast.setEnabled(drawGpsArrows.isSelected() && drawGpsArrows.isEnabled());
    6284                drawGpsArrowsMinDist.setEnabled(drawGpsArrows.isSelected() && drawGpsArrows.isEnabled());
    6385            }
    64         });
    65         drawRawGpsLines.setSelected(Main.pref.getBoolean("draw.rawgps.lines"));
    66         drawRawGpsLines.setToolTipText(tr("If your gps device draws too few lines, select this to draw lines along your way."));
    67         panel.add(drawRawGpsLines, GBC.eol().insets(20,0,0,0));
     86        };
    6887
     88                drawRawGpsLinesNone.addActionListener(drawRawGpsLinesActionListener);
     89                drawRawGpsLinesLocal.addActionListener(drawRawGpsLinesActionListener);
     90                drawRawGpsLinesAll.addActionListener(drawRawGpsLinesActionListener);
     91
    6992        // drawRawGpsMaxLineLength
    7093        drawRawGpsMaxLineLength.setText(Integer.toString(Main.pref.getInteger("draw.rawgps.max-line-length", -1)));
    7194        drawRawGpsMaxLineLength.setToolTipText(tr("Maximum length (in meters) to draw lines. Set to '-1' to draw all lines."));
    72         drawRawGpsMaxLineLength.setEnabled(drawRawGpsLines.isSelected());
     95        drawRawGpsMaxLineLength.setEnabled(!drawRawGpsLinesNone.isSelected());
    7396        panel.add(new JLabel(tr("Maximum length (meters)")), GBC.std().insets(40,0,0,0));
    7497        panel.add(drawRawGpsMaxLineLength, GBC.eol().fill(GBC.HORIZONTAL).insets(5,0,0,5));
    7598
    7699        // forceRawGpsLines
    77100        forceRawGpsLines.setToolTipText(tr("Force drawing of lines if the imported data contain no line information."));
    78101        forceRawGpsLines.setSelected(Main.pref.getBoolean("draw.rawgps.lines.force"));
    79         forceRawGpsLines.setEnabled(drawRawGpsLines.isSelected());
     102        forceRawGpsLines.setEnabled(!drawRawGpsLinesNone.isSelected());
    80103        panel.add(forceRawGpsLines, GBC.eop().insets(40,0,0,0));
    81104
    82105        // drawGpsArrows
     
    88111        });
    89112        drawGpsArrows.setToolTipText(tr("Draw direction arrows for lines, connecting GPS points."));
    90113        drawGpsArrows.setSelected(Main.pref.getBoolean("draw.rawgps.direction"));
    91         drawGpsArrows.setEnabled(drawRawGpsLines.isSelected());
     114        drawGpsArrows.setEnabled(!drawRawGpsLinesNone.isSelected());
    92115        panel.add(drawGpsArrows, GBC.eop().insets(40,0,0,0));
    93116
    94117        // drawGpsArrowsFast
     
    220243    }
    221244
    222245    public boolean ok() {
    223         Main.pref.put("draw.rawgps.lines", drawRawGpsLines.isSelected());
     246        Main.pref.put("draw.rawgps.lines", drawRawGpsLinesAll.isSelected());
     247        Main.pref.put("draw.rawgps.lines.localfiles", drawRawGpsLinesLocal.isSelected());
    224248        Main.pref.put("draw.rawgps.max-line-length", drawRawGpsMaxLineLength.getText());
    225249        Main.pref.put("draw.rawgps.lines.force", forceRawGpsLines.isSelected());
    226250        Main.pref.put("draw.rawgps.direction", drawGpsArrows.isSelected());