Ignore:
Timestamp:
2012-03-12T22:03:36+01:00 (14 years ago)
Author:
donvip
Message:

opendata: various download improvements

Location:
applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/actions/DownloadDataTask.java

    r28050 r28054  
    1818import java.io.File;
    1919import java.util.concurrent.Future;
     20import java.util.regex.Pattern;
    2021
    2122import org.openstreetmap.josm.Main;
     
    2526import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    2627import org.openstreetmap.josm.io.AbstractReader;
     28import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
    2729import org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler;
    2830import org.openstreetmap.josm.plugins.opendata.core.datasets.DataSetUpdater;
     
    3234import org.openstreetmap.josm.plugins.opendata.core.modules.ModuleHandler;
    3335
    34 public class DownloadDataTask extends DownloadOsmTask {
     36public class DownloadDataTask extends DownloadOsmTask implements OdConstants {
    3537
    3638        private AbstractDataSetHandler handler;
     
    5456        @Override
    5557        public boolean acceptsUrl(String url) {
     58                this.handler = null;
    5659                for (Module module : ModuleHandler.moduleList) {
    5760                        for (AbstractDataSetHandler handler : module.getHandlers()) {
     
    6063                                        return true;
    6164                                }
     65                        }
     66                }
     67                for (String ext : new String[]{ZIP_EXT, CSV_EXT, KML_EXT, KMZ_EXT, XLS_EXT, ODS_EXT, SHP_EXT, MIF_EXT, TAB_EXT}) {
     68                        if (Pattern.compile(".*\\."+ext, Pattern.CASE_INSENSITIVE).matcher(url).matches()) {
     69                                return true;
    6270                        }
    6371                }
  • applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/AbstractDataSetHandler.java

    r28050 r28054  
    548548                return false;
    549549        }
     550
     551        private boolean setSkipXsdValidationInZipReading = false;
     552       
     553        public final void setSkipXsdValidationInZipReading(boolean skip) {
     554                setSkipXsdValidationInZipReading = skip;
     555        }
     556       
     557        public boolean skipXsdValidationInZipReading() {
     558                return setSkipXsdValidationInZipReading;
     559        }
    550560}
  • applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ZipReader.java

    r28050 r28054  
    119119                                        }
    120120                                        for (String ext : new String[] {
    121                                                         CSV_EXT, KML_EXT, KMZ_EXT, XLS_EXT, ODS_EXT, SHP_EXT, MIF_EXT, TAB_EXT, XML_EXT
     121                                                        CSV_EXT, KML_EXT, KMZ_EXT, XLS_EXT, ODS_EXT, SHP_EXT, MIF_EXT, TAB_EXT
    122122                                        }) {
    123123                                                if (entry.getName().toLowerCase().endsWith("."+ext)) {
     
    126126                                                        break;
    127127                                                }
     128                                        }
     129                                        // Special treatment for XML files (check supported XSD), unless handler explicitely skip it
     130                                        if (XML_FILE_FILTER.accept(file) && ((handler != null && handler.skipXsdValidationInZipReading())
     131                                                        || OdPlugin.getInstance().xmlImporter.acceptFile(file))) {
     132                                                candidates.add(file);
     133                                                System.out.println(entry.getName());
    128134                                        }
    129135                                } else if (!file.mkdir()) {
Note: See TracChangeset for help on using the changeset viewer.