Changeset 6930 in josm
- Timestamp:
- 2014-03-24T20:27:00+01:00 (11 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
r6707 r6930 103 103 tree.updateTree(wms); 104 104 final JComboBox formats = new JComboBox(wms.getFormats().toArray()); 105 formats.setSelectedItem(wms.getPreferredFormats()); 105 106 formats.setToolTipText(tr("Select image format for WMS layer")); 106 107 -
trunk/src/org/openstreetmap/josm/gui/preferences/imagery/AddWMSLayerPanel.java
r6733 r6930 78 78 tree.updateTree(wms); 79 79 formats.setModel(new DefaultComboBoxModel(wms.getFormats().toArray())); 80 formats.setSelectedItem(wms.getPreferredFormats()); 80 81 } catch (MalformedURLException ex) { 81 82 JOptionPane.showMessageDialog(getParent(), tr("Invalid service URL."), -
trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java
r6650 r6930 12 12 import java.util.ArrayList; 13 13 import java.util.Collection; 14 import java.util.Collections; 14 15 import java.util.HashSet; 15 16 import java.util.List; … … 17 18 import java.util.regex.Pattern; 18 19 20 import javax.imageio.ImageIO; 19 21 import javax.xml.parsers.DocumentBuilder; 20 22 import javax.xml.parsers.DocumentBuilderFactory; … … 26 28 import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference; 27 29 import org.openstreetmap.josm.io.UTFInputStreamReader; 30 import org.openstreetmap.josm.tools.Predicate; 28 31 import org.openstreetmap.josm.tools.Utils; 29 32 import org.w3c.dom.Document; … … 63 66 64 67 public List<String> getFormats() { 65 return formats; 68 return Collections.unmodifiableList(formats); 69 } 70 71 public String getPreferredFormats() { 72 return formats.contains("image/jpeg") ? "image/jpeg" 73 : formats.contains("image/png") ? "image/png" 74 : formats.isEmpty() ? null 75 : formats.get(0); 66 76 } 67 77 … … 165 175 child = getChild(child, "GetMap"); 166 176 167 formats = new ArrayList<String>(Utils.transform(getChildren(child, "Format"), new Utils.Function<Element, String>() { 168 @Override 169 public String apply(Element x) { 170 return x.getTextContent(); 171 } 172 })); 177 formats = new ArrayList<String>(Utils.filter(Utils.transform(getChildren(child, "Format"), 178 new Utils.Function<Element, String>() { 179 @Override 180 public String apply(Element x) { 181 return x.getTextContent(); 182 } 183 } 184 ), new Predicate<String>() { 185 @Override 186 public boolean evaluate(String format) { 187 boolean isFormatSupported = isImageFormatSupported(format); 188 if (!isFormatSupported) { 189 Main.info("Skipping unsupported image format {0}", format); 190 } 191 return isFormatSupported; 192 } 193 } 194 )); 173 195 174 196 child = getChild(child, "DCPType"); … … 191 213 } 192 214 215 } 216 217 static boolean isImageFormatSupported(final String format) { 218 return ImageIO.getImageReadersByMIMEType(format).hasNext() 219 || (format.startsWith("image/tiff") || format.startsWith("image/geotiff")) && ImageIO.getImageReadersBySuffix("tiff").hasNext() // handles image/tiff image/tiff8 image/geotiff image/geotiff8 220 || format.startsWith("image/png") && ImageIO.getImageReadersBySuffix("png").hasNext() 221 || format.startsWith("image/svg") && ImageIO.getImageReadersBySuffix("svg").hasNext() 222 || format.startsWith("image/bmp") && ImageIO.getImageReadersBySuffix("bmp").hasNext(); 193 223 } 194 224
Note:
See TracChangeset
for help on using the changeset viewer.