Changeset 11570 in josm for trunk/src/org


Ignore:
Timestamp:
2017-02-16T22:21:43+01:00 (7 years ago)
Author:
stoecker
Message:

add date field to imagery definition, allow to select mirror layers in settings

Location:
trunk/src/org/openstreetmap/josm
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java

    r11527 r11570  
    188188    /** country code of the imagery (for country specific imagery) */
    189189    private String countryCode = "";
     190    /**
     191      * creation date of the imagery (in the form YYYY-MM-DD;YYYY-MM-DD, where
     192      * DD and MM as well as a second date are optional)
     193      * @since 11570
     194      */
     195    private String date;
    190196    /** mirrors of different type for this entry */
    191197    private List<ImageryInfo> mirrors;
     
    204210    public static class ImageryPreferenceEntry {
    205211        @pref String name;
     212        @pref String d;
    206213        @pref String id;
    207214        @pref String type;
     
    216223        @pref String terms_of_use_url;
    217224        @pref String country_code = "";
     225        @pref String date;
    218226        @pref int max_zoom;
    219227        @pref int min_zoom;
     
    253261            attribution_text = i.attributionText;
    254262            attribution_url = i.attributionLinkURL;
     263            date = i.date;
    255264            logo_image = i.attributionImage;
    256265            logo_url = i.attributionImageURL;
     
    408417        attributionImage = e.logo_image;
    409418        attributionImageURL = e.logo_url;
     419        date = e.date;
    410420        termsOfUseText = e.terms_of_use_text;
    411421        termsOfUseURL = e.terms_of_use_url;
     
    448458        this.termsOfUseURL = i.termsOfUseURL;
    449459        this.countryCode = i.countryCode;
     460        this.date = i.date;
    450461        this.icon = i.icon;
    451462        this.description = i.description;
     
    495506                Objects.equals(this.termsOfUseURL, other.termsOfUseURL) &&
    496507                Objects.equals(this.countryCode, other.countryCode) &&
     508                Objects.equals(this.date, other.date) &&
    497509                Objects.equals(this.icon, other.icon) &&
    498510                Objects.equals(this.description, other.description) &&
     
    831843     */
    832844    public String getToolTipText() {
     845        String res = getName();
     846        boolean html = false;
     847        String date = getDate();
     848        if (date != null && !date.isEmpty()) {
     849            res += "<br>" + tr("Date of imagery: {0}", date);
     850            html = true;
     851        }
    833852        String desc = getDescription();
    834853        if (desc != null && !desc.isEmpty()) {
    835             return "<html>" + getName() + "<br>" + desc + "</html>";
    836         }
    837         return getName();
     854            res += "<br>" + desc;
     855            html = true;
     856        }
     857        if (html) {
     858            res = "<html>" + res + "</html>";
     859        }
     860        return res;
    838861    }
    839862
     
    868891    public void setCountryCode(String countryCode) {
    869892        this.countryCode = countryCode;
     893    }
     894
     895    /**
     896     * Returns the date information.
     897     * @return The date (in the form YYYY-MM-DD;YYYY-MM-DD, where
     898     * DD and MM as well as a second date are optional)
     899     * @since 11570
     900     */
     901    public String getDate() {
     902        return date;
     903    }
     904
     905    /**
     906     * Sets the date information.
     907     * @param date The date information
     908     * @since 11570
     909     */
     910    public void setDate(String date) {
     911        this.date = date;
    870912    }
    871913
     
    11351177       List<ImageryInfo> l = new ArrayList<>();
    11361178       if (mirrors != null) {
     1179           int num = 1;
    11371180           for (ImageryInfo i : mirrors) {
    11381181               ImageryInfo n = new ImageryInfo(this);
     
    11491192                   n.setTileSize(i.getTileSize());
    11501193               }
     1194               if(n.id != null) {
     1195                   n.id = n.id + "_mirror"+num;
     1196               }
     1197               if(num > 1) {
     1198                   n.name = tr("{0} mirror server {1}", n.name, num);
     1199                   n.origName += " mirror server " + num;
     1200               } else {
     1201                   n.name = tr("{0} mirror server", n.name);
     1202                   n.origName += " mirror server";
     1203               }
    11511204               l.add(n);
     1205               ++num;
    11521206           }
    11531207       }
  • trunk/src/org/openstreetmap/josm/data/imagery/ImageryLayerInfo.java

    r11528 r11570  
    3333
    3434    public static final ImageryLayerInfo instance = new ImageryLayerInfo();
     35    /** List of all usable layers */
    3536    private final List<ImageryInfo> layers = new ArrayList<>();
     37    /** List of layer ids of all usable layers */
    3638    private final Map<String, ImageryInfo> layerIds = new HashMap<>();
     39    /** List of all available default layers */
    3740    private static final List<ImageryInfo> defaultLayers = new ArrayList<>();
     41    /** List of all available default layers (including mirrors) */
     42    private static final List<ImageryInfo> allDefaultLayers = new ArrayList<>();
     43    /** List of all layer ids of available default layers (including mirrors) */
    3844    private static final Map<String, ImageryInfo> defaultLayerIds = new HashMap<>();
    3945
     
    164170        protected void finish() {
    165171            defaultLayers.clear();
     172            allDefaultLayers.clear();
    166173            defaultLayers.addAll(newLayers);
     174            for (ImageryInfo layer : newLayers) {
     175                allDefaultLayers.add(layer);
     176                for (ImageryInfo sublayer : layer.getMirrors()) {
     177                    allDefaultLayers.add(sublayer);
     178                }
     179            }
    167180            defaultLayerIds.clear();
    168181            Collections.sort(defaultLayers);
    169             buildIdMap(defaultLayers, defaultLayerIds);
     182            Collections.sort(allDefaultLayers);
     183            buildIdMap(allDefaultLayers, defaultLayerIds);
    170184            updateEntriesFromDefaults();
    171185            buildIdMap(layers, layerIds);
     
    305319    }
    306320
     321    /**
     322     * List of usable layers
     323     * @return unmodifiable list containing usable layers
     324     */
    307325    public List<ImageryInfo> getLayers() {
    308326        return Collections.unmodifiableList(layers);
    309327    }
    310328
     329    /**
     330     * List of available default layers
     331     * @return unmodifiable list containing available default layers
     332     */
    311333    public List<ImageryInfo> getDefaultLayers() {
    312334        return Collections.unmodifiableList(defaultLayers);
     335    }
     336
     337    /**
     338     * List of all available default layers (including mirrors)
     339     * @return unmodifiable list containing available default layers
     340     * @since 11570
     341     */
     342    public List<ImageryInfo> getAllDefaultLayers() {
     343        return Collections.unmodifiableList(allDefaultLayers);
    313344    }
    314345
  • trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java

    r11183 r11570  
    326326            mod = activeTable.getColumnModel();
    327327            mod.getColumn(1).setPreferredWidth(800);
    328             mod.getColumn(1).setCellRenderer(new ImageryURLTableCellRenderer(layerInfo.getDefaultLayers()));
     328            mod.getColumn(1).setCellRenderer(new ImageryURLTableCellRenderer(layerInfo.getAllDefaultLayers()));
    329329            mod.getColumn(0).setPreferredWidth(200);
    330330
     
    742742             */
    743743            public ImageryInfo getRow(int row) {
    744                 return layerInfo.getDefaultLayers().get(row);
     744                return layerInfo.getAllDefaultLayers().get(row);
    745745            }
    746746
    747747            @Override
    748748            public int getRowCount() {
    749                 return layerInfo.getDefaultLayers().size();
     749                return layerInfo.getAllDefaultLayers().size();
    750750            }
    751751
    752752            @Override
    753753            public Object getValueAt(int row, int column) {
    754                 ImageryInfo info = layerInfo.getDefaultLayers().get(row);
     754                ImageryInfo info = layerInfo.getAllDefaultLayers().get(row);
    755755                switch (column) {
    756756                case 0:
  • trunk/src/org/openstreetmap/josm/io/imagery/ImageryReader.java

    r11518 r11570  
    190190                        "country-code",
    191191                        "icon",
     192                        "date",
    192193                        "tile-size",
    193194                        "valid-georeference",
     
    358359                    entry.setDescription(lang, accumulator.toString());
    359360                    break;
     361                case "date":
     362                    entry.setDate(accumulator.toString());
     363                    break;
    360364                case "id":
    361365                    entry.setId(accumulator.toString());
Note: See TracChangeset for help on using the changeset viewer.