Changeset 286 in josm


Ignore:
Timestamp:
2007-07-11T23:05:56+02:00 (17 years ago)
Author:
imi
Message:
  • added saving/loading of download areas (DataSource)
Location:
src/org/openstreetmap/josm
Files:
8 edited

Legend:

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

    r242 r286  
    4747                        dlg.setSize(dlg.getWidth(),600);
    4848
    49                 dlg.setVisible(true);
    50                 if (pane.getValue() instanceof Integer && (Integer)pane.getValue() == JOptionPane.OK_OPTION) {
    51                         Main.pref.put("download.tab", Integer.toString(dialog.getSelectedTab()));
    52                         for (DownloadTask task : dialog.downloadTasks) {
    53                                 Main.pref.put("download."+task.getPreferencesSuffix(), task.getCheckBox().isSelected());
    54                                 if (task.getCheckBox().isSelected()) {
    55                                         task.download(this, dialog.minlat, dialog.minlon, dialog.maxlat, dialog.maxlon);
    56                                 }
    57                         }
    58                 }
     49                boolean finish = false;
     50        while (!finish) {
     51            dlg.setVisible(true);
     52                if (pane.getValue() instanceof Integer && (Integer)pane.getValue() == JOptionPane.OK_OPTION) {
     53                        Main.pref.put("download.tab", Integer.toString(dialog.getSelectedTab()));
     54                        for (DownloadTask task : dialog.downloadTasks) {
     55                                Main.pref.put("download."+task.getPreferencesSuffix(), task.getCheckBox().isSelected());
     56                                if (task.getCheckBox().isSelected()) {
     57                                        task.download(this, dialog.minlat, dialog.minlon, dialog.maxlat, dialog.maxlon);
     58                                        finish = true;
     59                                }
     60                        }
     61                } else
     62                        finish = true;
     63                if (!finish)
     64                        JOptionPane.showMessageDialog(Main.parent, tr("Please select at least one task to download"));
     65        }
    5966        }
    6067}
  • src/org/openstreetmap/josm/actions/OpenAction.java

    r247 r286  
    1919import org.openstreetmap.josm.Main;
    2020import org.openstreetmap.josm.data.osm.DataSet;
    21 import org.openstreetmap.josm.data.osm.DataSource;
    2221import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    2322import org.openstreetmap.josm.gui.layer.RawGpsLayer;
     
    8786                                if (ExtensionFileFilter.filters[ExtensionFileFilter.OSM].acceptName(fn)) {
    8887                                        dataSet = OsmReader.parseDataSet(new FileInputStream(file), null, Main.pleaseWaitDlg);
    89                                         DataSource src = new DataSource();
    90                                         src.sourceSpec = "File " + fn;
    91                                         dataSet.dataSources.add(src);
    9288                                } else if (ExtensionFileFilter.filters[ExtensionFileFilter.CSV].acceptName(fn)) {
    9389                                        JOptionPane.showMessageDialog(Main.parent, fn+": "+tr("CSV Data import for non-GPS data is not implemented yet."));
  • src/org/openstreetmap/josm/data/osm/DataSource.java

    r247 r286  
    44
    55public class DataSource {
    6 
    7         public Bounds sourceBounds;
    8         public String sourceSpec;
    9        
     6        public Bounds bounds;
     7        public String origin;
    108}
  • src/org/openstreetmap/josm/gui/download/DownloadDialog.java

    r242 r286  
    6565        public JTabbedPane tabpane = new JTabbedPane();
    6666       
    67         public DownloadDialog(int tabindex)
    68         {
     67        public DownloadDialog(int tabindex) {
    6968                setLayout(new GridBagLayout());
    7069               
  • src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

    r276 r286  
    148148                        // of drawing the outline, the outlying areas should perhaps be shaded.
    149149                        for (DataSource src : data.dataSources) {
    150                                 if (src.sourceBounds != null) {
    151                                         EastNorth en1 = Main.proj.latlon2eastNorth(src.sourceBounds.min);
    152                                         EastNorth en2 = Main.proj.latlon2eastNorth(src.sourceBounds.max);
     150                                if (src.bounds != null) {
     151                                        EastNorth en1 = Main.proj.latlon2eastNorth(src.bounds.min);
     152                                        EastNorth en2 = Main.proj.latlon2eastNorth(src.bounds.max);
    153153                                        Point p1 = mv.getPoint(en1);
    154154                                        Point p2 = mv.getPoint(en2);
  • src/org/openstreetmap/josm/io/BoundingBoxDownloader.java

    r269 r286  
    103103                final DataSet data = OsmReader.parseDataSet(in, null, Main.pleaseWaitDlg);
    104104                DataSource src = new DataSource();
    105                 src.sourceSpec = "Server";
    106                 src.sourceBounds = new Bounds(new LatLon(lat1, lon1), new LatLon(lat2, lon2));
     105                src.origin = Main.pref.get("osm-server.url")+"/"+Main.pref.get("osm-server.version", "0.4");
     106                src.bounds = new Bounds(new LatLon(lat1, lon1), new LatLon(lat2, lon2));
    107107                data.dataSources.add(src);
    108108                in.close();
  • src/org/openstreetmap/josm/io/OsmReader.java

    r283 r286  
    1616
    1717import org.openstreetmap.josm.Main;
     18import org.openstreetmap.josm.data.Bounds;
    1819import org.openstreetmap.josm.data.coor.LatLon;
    1920import org.openstreetmap.josm.data.osm.DataSet;
     21import org.openstreetmap.josm.data.osm.DataSource;
    2022import org.openstreetmap.josm.data.osm.Node;
    2123import org.openstreetmap.josm.data.osm.OsmPrimitive;
     
    6769        private Map<Long, Node> nodes = new HashMap<Long, Node>();
    6870
     71        // TODO: What the hack? Is this really from me? Please, clean this up!
    6972        private static class OsmPrimitiveData extends OsmPrimitive {
    7073                @Override public void visit(Visitor visitor) {}
     
    112115                                        if (!allowedVersions.contains(atts.getValue("version")))
    113116                                                throw new SAXException(tr("Unknown version")+": "+atts.getValue("version"));
     117                                } else if (qName.equals("bound")) {
     118                                        String bbox = atts.getValue("box");
     119                                        String origin = atts.getValue("origin");
     120                                        if (bbox != null) {
     121                                                DataSource src = new DataSource();
     122                                                String[] b = bbox.split(",");
     123                                                if (b.length == 4)
     124                                                        src.bounds = new Bounds(
     125                                                                        new LatLon(Double.parseDouble(b[0]),Double.parseDouble(b[1])),
     126                                                                        new LatLon(Double.parseDouble(b[2]),Double.parseDouble(b[3])));
     127                                                if (origin != null)
     128                                                        src.origin = origin;
     129                                                ds.dataSources.add(src);
     130                                        }
    114131                                } else if (qName.equals("node")) {
    115132                                        current = new Node(new LatLon(getDouble(atts, "lat"), getDouble(atts, "lon")));
  • src/org/openstreetmap/josm/io/OsmWriter.java

    r227 r286  
    77import org.openstreetmap.josm.Main;
    88import org.openstreetmap.josm.data.osm.DataSet;
     9import org.openstreetmap.josm.data.osm.DataSource;
    910import org.openstreetmap.josm.data.osm.Node;
    1011import org.openstreetmap.josm.data.osm.OsmPrimitive;
     
    7778                private boolean shouldWrite(OsmPrimitive osm) {
    7879                return osm.id != 0 || !osm.deleted;
     80        }
     81
     82                @Override public void header(PrintWriter out) {
     83                super.header(out);
     84                        for (DataSource s : ds.dataSources) {
     85                                out.print("  <bound box='"+
     86                                                s.bounds.min.lat()+","+
     87                                                s.bounds.min.lon()+","+
     88                                                s.bounds.max.lat()+","+
     89                                                s.bounds.max.lon()+"' ");
     90                                out.println("origin='"+XmlWriter.encode(s.origin)+"' />");
     91                        }
    7992        }
    8093        }
Note: See TracChangeset for help on using the changeset viewer.