Changeset 295 in josm


Ignore:
Timestamp:
2007-07-24T11:23:01+02:00 (17 years ago)
Author:
imi
Message:
  • added "download to new layer" option
  • added missing color preferences when opening preferences dialog
Location:
src/org/openstreetmap/josm
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/actions/DownloadAction.java

    r286 r295  
    3434
    3535        public void actionPerformed(ActionEvent e) {
    36                 dialog = new DownloadDialog(Integer.parseInt(Main.pref.get("download.tab", "0")));
     36                dialog = new DownloadDialog();
    3737               
    3838                JPanel downPanel = new JPanel(new GridBagLayout());
     
    5050        while (!finish) {
    5151            dlg.setVisible(true);
     52            Main.pref.put("download.newlayer", dialog.newLayer.isSelected());
    5253                if (pane.getValue() instanceof Integer && (Integer)pane.getValue() == JOptionPane.OK_OPTION) {
    5354                        Main.pref.put("download.tab", Integer.toString(dialog.getSelectedTab()));
  • src/org/openstreetmap/josm/actions/OpenAction.java

    r290 r295  
    102102                throw new IllegalStateException();
    103103            if (gpsData != null && !gpsData.isEmpty())
    104                 Main.main.addLayer(new RawGpsLayer(gpsData, tr("Tracks from {0}", file.getName()), file));
     104                Main.main.addLayer(new RawGpsLayer(false, gpsData, tr("Tracks from {0}", file.getName()), file));
    105105            if (markerData != null && !markerData.isEmpty())
    106106                Main.main.addLayer(new MarkerLayer(markerData, tr ("Markers from {0}", file.getName()), file));
  • src/org/openstreetmap/josm/actions/SaveAction.java

    r290 r295  
    2424        }
    2525       
    26         public File getFile(OsmDataLayer layer) {
     26        @Override public File getFile(OsmDataLayer layer) {
    2727                if (layer.associatedFile != null)
    2828                        return layer.associatedFile;
  • src/org/openstreetmap/josm/actions/SaveAsAction.java

    r290 r295  
    2424        }
    2525       
    26         protected File getFile(OsmDataLayer layer) {
     26        @Override protected File getFile(OsmDataLayer layer) {
    2727                return openFileDialog();
    2828        }
  • src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java

    r237 r295  
    1212import org.openstreetmap.josm.gui.PleaseWaitRunnable;
    1313import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
     14import org.openstreetmap.josm.gui.layer.Layer;
    1415import org.openstreetmap.josm.gui.layer.RawGpsLayer;
    1516import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
     
    2324                private DownloadAction action;
    2425                private Collection<Collection<GpsPoint>> rawData;
     26                private final boolean newLayer;
    2527
    26                 public Task(BoundingBoxDownloader reader, DownloadAction action) {
     28                public Task(boolean newLayer, BoundingBoxDownloader reader, DownloadAction action) {
    2729                        super(tr("Downloading GPS data"));
    2830                        this.reader = reader;
    2931                        this.action = action;
     32                        this.newLayer = newLayer;
    3033                }
    3134
     
    3841                                return;
    3942                        String name = action.dialog.minlat + " " + action.dialog.minlon + " x " + action.dialog.maxlat + " " + action.dialog.maxlon;
    40                         Main.main.addLayer(new RawGpsLayer(rawData, name, null));
     43                        RawGpsLayer layer = new RawGpsLayer(true, rawData, name, null);
     44                        if (newLayer || findMergeLayer() == null)
     45                    Main.main.addLayer(layer);
     46                        else
     47                                findMergeLayer().mergeFrom(layer);
    4148                }
     49
     50                private Layer findMergeLayer() {
     51                        if (Main.map == null)
     52                                return null;
     53                Layer active = Main.map.mapView.getActiveLayer();
     54                if (active != null && active instanceof RawGpsLayer)
     55                        return active;
     56                for (Layer l : Main.map.mapView.getAllLayers())
     57                        if (l instanceof RawGpsLayer && ((RawGpsLayer)l).fromServer)
     58                                return l;
     59                return null;
     60        }
    4261
    4362                @Override protected void cancel() {
     
    5069
    5170        public void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon) {
    52                 Task task = new Task(new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon), action);
     71                Task task = new Task(action.dialog.newLayer.isSelected(), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon), action);
    5372                Main.worker.execute(task);
    5473        }
  • src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java

    r237 r295  
    2525                private BoundingBoxDownloader reader;
    2626                private DataSet dataSet;
     27                private boolean newLayer;
    2728
    28                 public Task(BoundingBoxDownloader reader) {
     29                public Task(boolean newLayer, BoundingBoxDownloader reader) {
    2930                        super(tr("Downloading data"));
    3031                        this.reader = reader;
     32                        this.newLayer = newLayer;
    3133                }
    3234
     
    4042                        if (dataSet.allPrimitives().isEmpty())
    4143                                errorMessage = tr("No data imported.");
    42                         Main.main.addLayer(new OsmDataLayer(dataSet, tr("Data Layer"), null));
     44                        OsmDataLayer layer = new OsmDataLayer(dataSet, tr("Data Layer"), null);
     45                        if (newLayer)
     46                                Main.main.addLayer(layer);
     47                        else
     48                                Main.main.editLayer().mergeFrom(layer);
    4349                }
    4450
     
    5157
    5258        public void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon) {
    53                 Task task = new Task(new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon));
     59                Task task = new Task(action.dialog.newLayer.isSelected(), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon));
    5460                Main.worker.execute(task);
    5561    }
  • src/org/openstreetmap/josm/data/Preferences.java

    r249 r295  
    11package org.openstreetmap.josm.data;
    22
    3 import static org.xnap.commons.i18n.I18n.marktr;
    4 
    5 import java.awt.Color;
    63import java.io.BufferedReader;
    74import java.io.File;
     
    2017
    2118import org.openstreetmap.josm.Main;
    22 import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor;
    23 import org.openstreetmap.josm.tools.ColorHelper;
    2419
    2520
     
    181176                properties.put("propertiesdialog.visible", "true");
    182177                properties.put("osm-server.url", "http://www.openstreetmap.org/api");
    183                 properties.put("color."+marktr("background"), ColorHelper.color2html(Color.black));
    184                 properties.put("color."+marktr("node"), ColorHelper.color2html(Color.red));
    185                 properties.put("color."+marktr("segment"), ColorHelper.color2html(SimplePaintVisitor.darkgreen));
    186                 properties.put("color."+marktr("way"), ColorHelper.color2html(SimplePaintVisitor.darkblue));
    187                 properties.put("color."+marktr("incomplete way"), ColorHelper.color2html(SimplePaintVisitor.darkerblue));
    188                 properties.put("color."+marktr("selected"), ColorHelper.color2html(Color.white));
    189                 properties.put("color."+marktr("gps point"), ColorHelper.color2html(Color.gray));
    190                 properties.put("color."+marktr("conflict"), ColorHelper.color2html(Color.gray));
    191                 properties.put("color."+marktr("scale"), ColorHelper.color2html(Color.white));
    192178                save();
    193179        }
  • src/org/openstreetmap/josm/gui/download/DownloadDialog.java

    r286 r295  
    5757
    5858        public final List<DownloadSelection> downloadSelections = new ArrayList<DownloadSelection>();
     59        public final JTabbedPane tabpane = new JTabbedPane();
     60        public final JCheckBox newLayer;
    5961       
    6062        public double minlon;
     
    6365        public double maxlat;
    6466       
    65         public JTabbedPane tabpane = new JTabbedPane();
    6667       
    67         public DownloadDialog(int tabindex) {
     68        public DownloadDialog() {
    6869                setLayout(new GridBagLayout());
    6970               
     
    103104                        boundingBoxChanged(null);
    104105                }
    105                
     106
     107                newLayer = new JCheckBox(tr("Download as new layer"), Main.pref.getBoolean("download.newlayer", true));
     108                add(newLayer, GBC.eol().insets(0,5,0,0));
     109
    106110                add(new JLabel(tr("Download Area")), GBC.eol().insets(0,5,0,0));
    107111                add(tabpane, GBC.eol().fill());
    108112               
    109113                try {
    110                         tabpane.setSelectedIndex(tabindex);
     114                        tabpane.setSelectedIndex(Integer.parseInt(Main.pref.get("download.tab", "0")));
    111115                } catch (Exception ex) {
    112                         // ignore
     116                        Main.pref.put("download.tab", "0");
    113117                }
    114                 //Dimension d = getPreferredSize();
    115                 //setPreferredSize(new Dimension((int)(d.width*1.5), d.height));
    116                 //wc.addInputFields(latlon, osmUrl, osmUrlRefresher);
    117118        }
    118119       
  • src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java

    r290 r295  
    103103         */
    104104        public final Collection<Collection<GpsPoint>> data;
    105 
    106         public RawGpsLayer(Collection<Collection<GpsPoint>> data, String name, File associatedFile) {
     105        public final boolean fromServer;
     106
     107        public RawGpsLayer(boolean fromServer, Collection<Collection<GpsPoint>> data, String name, File associatedFile) {
    107108                super(name);
     109                this.fromServer = fromServer;
    108110                this.associatedFile = associatedFile;
    109111                this.data = data;
  • src/org/openstreetmap/josm/gui/preferences/ColorPreference.java

    r269 r295  
    22
    33import static org.openstreetmap.josm.tools.I18n.tr;
     4import static org.xnap.commons.i18n.I18n.marktr;
    45
    56import java.awt.Color;
     
    2728
    2829import org.openstreetmap.josm.Main;
     30import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor;
    2931import org.openstreetmap.josm.tools.ColorHelper;
    3032import org.openstreetmap.josm.tools.GBC;
     
    3436        private DefaultTableModel tableModel;
    3537        private JTable colors;
    36         public static final String PREF_COLOR_PREFIX = "color.";
    37        
     38
    3839        /**
    3940         * Set the colors to be shown in the preference table. This method creates a table model if
     
    8990        public void addGui(final PreferenceDialog gui) {
    9091                // initial fill with colors from preferences:
    91                 Map<String,String> prefColorMap = new TreeMap<String, String>(Main.pref.getAllPrefix(PREF_COLOR_PREFIX));
     92                Map<String,String> prefColorMap = new TreeMap<String, String>(Main.pref.getAllPrefix("color."));
     93                fixColorPrefixes(prefColorMap);
    9294                Map<String,String> colorMap = new TreeMap<String, String>();
    9395                for(String key : prefColorMap.keySet()) {
    94                         colorMap.put(key.substring(PREF_COLOR_PREFIX.length()), prefColorMap.get(key));
     96                        colorMap.put(key.substring("color.".length()), prefColorMap.get(key));
    9597                }
    9698                setColorModel(colorMap);
     
    137139    }
    138140
     141        /**
     142         * Add all missing color entries.
     143         */
     144        private void fixColorPrefixes(Map<String, String> prefColorMap) {
     145                String[] cp = {
     146                        marktr("background"), ColorHelper.color2html(Color.black),
     147                        marktr("node"), ColorHelper.color2html(Color.red),
     148                        marktr("segment"), ColorHelper.color2html(SimplePaintVisitor.darkgreen),
     149                        marktr("way"), ColorHelper.color2html(SimplePaintVisitor.darkblue),
     150                        marktr("incomplete way"), ColorHelper.color2html(SimplePaintVisitor.darkerblue),
     151                        marktr("selected"), ColorHelper.color2html(Color.white),
     152                        marktr("gps point"), ColorHelper.color2html(Color.gray),
     153                        marktr("conflict"), ColorHelper.color2html(Color.gray),
     154                        marktr("scale"), ColorHelper.color2html(Color.white),
     155                        marktr("inactive"), ColorHelper.color2html(Color.darkGray),
     156                };
     157                for (int i = 0; i < cp.length/2; ++i)
     158                        if (!Main.pref.hasKey("color."+cp[i*2]))
     159                                Main.pref.put("color."+cp[i*2], cp[i*2+1]);
     160    }
     161
    139162        public void ok() {
    140163                for (int i = 0; i < colors.getRowCount(); ++i) {
    141164                        String name = (String)colors.getValueAt(i, 0);
    142165                        Color col = (Color)colors.getValueAt(i, 1);
    143                         Main.pref.put(PREF_COLOR_PREFIX + name, ColorHelper.color2html(col));
     166                        Main.pref.put("color." + name, ColorHelper.color2html(col));
    144167                }
    145168    }
Note: See TracChangeset for help on using the changeset viewer.