Changeset 12732 in josm
- Timestamp:
- 2017-09-05T02:24:38+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/tools/HiDPISupport.java
r12724 r12732 24 24 * 25 25 * Gives access to the class <code>BaseMultiResolutionImage</code> via reflection, 26 * in case it is on classpath. This is to be expected for Java 9, but not for Java 8 27 * runtime. 26 * in case it is on classpath. This is to be expected for Java 9, but not for Java 8 runtime. 28 27 * 29 28 * @since 12722 … … 66 65 public static Image getMultiResolutionImage(List<Image> imgs) { 67 66 CheckParameterUtil.ensure(imgs, "imgs", "not empty", ls -> !ls.isEmpty()); 68 if (getBaseMultiResolutionImageConstructor().isPresent()) {69 Constructor<? extends Image> c = getBaseMultiResolutionImageConstructor().get();67 Optional<Constructor<? extends Image>> baseMrImageConstructor = getBaseMultiResolutionImageConstructor(); 68 if (baseMrImageConstructor.isPresent()) { 70 69 try { 71 return c.newInstance((Object) imgs.toArray(new Image[0]));70 return baseMrImageConstructor.get().newInstance((Object) imgs.toArray(new Image[0])); 72 71 } catch (InstantiationException | IllegalAccessException | InvocationTargetException ex) { 73 72 Logging.error("Unexpected error while instantiating object of class BaseMultiResolutionImage: " + ex); … … 80 79 * Wrapper for the method <code>java.awt.image.BaseMultiResolutionImage#getBaseImage()</code>. 81 80 * <p> 82 * Will return the argument <code>img</code> unchanged, if it is not a multi-resolution 83 * image. 81 * Will return the argument <code>img</code> unchanged, if it is not a multi-resolution image. 84 82 * @param img the image 85 83 * @return if <code>img</code> is a <code>java.awt.image.BaseMultiResolutionImage</code>, … … 87 85 */ 88 86 public static Image getBaseImage(Image img) { 89 if (!getBaseMultiResolutionImageClass().isPresent() || !getResolutionVariantsMethod().isPresent()) { 87 Optional<Class<? extends Image>> baseMrImageClass = getBaseMultiResolutionImageClass(); 88 Optional<Method> resVariantsMethod = getResolutionVariantsMethod(); 89 if (!baseMrImageClass.isPresent() || !resVariantsMethod.isPresent()) { 90 90 return img; 91 91 } 92 if ( getBaseMultiResolutionImageClass().get().isInstance(img)) {92 if (baseMrImageClass.get().isInstance(img)) { 93 93 try { 94 94 @SuppressWarnings("unchecked") 95 List<Image> imgVars = (List ) getResolutionVariantsMethod().get().invoke(img);95 List<Image> imgVars = (List<Image>) resVariantsMethod.get().invoke(img); 96 96 if (!imgVars.isEmpty()) { 97 97 return imgVars.get(0); … … 107 107 * Wrapper for the method <code>java.awt.image.MultiResolutionImage#getResolutionVariants()</code>. 108 108 * <p> 109 * Will return the argument as a singleton list, in case it is not a multi-resolution 110 * image. 109 * Will return the argument as a singleton list, in case it is not a multi-resolution image. 111 110 * @param img the image 112 111 * @return if <code>img</code> is a <code>java.awt.image.BaseMultiResolutionImage</code>, … … 115 114 */ 116 115 public static List<Image> getResolutionVariants(Image img) { 117 if (!getBaseMultiResolutionImageClass().isPresent() || !getResolutionVariantsMethod().isPresent()) { 116 Optional<Class<? extends Image>> baseMrImageClass = getBaseMultiResolutionImageClass(); 117 Optional<Method> resVariantsMethod = getResolutionVariantsMethod(); 118 if (!baseMrImageClass.isPresent() || !resVariantsMethod.isPresent()) { 118 119 return Collections.singletonList(img); 119 120 } 120 if ( getBaseMultiResolutionImageClass().get().isInstance(img)) {121 if (baseMrImageClass.get().isInstance(img)) { 121 122 try { 122 123 @SuppressWarnings("unchecked") 123 List<Image> imgVars = (List ) getResolutionVariantsMethod().get().invoke(img);124 List<Image> imgVars = (List<Image>) resVariantsMethod.get().invoke(img); 124 125 if (!imgVars.isEmpty()) { 125 126 return imgVars; … … 205 206 try { 206 207 @SuppressWarnings("unchecked") 207 Class<? extends Image> c = (Class) Class.forName("java.awt.image.BaseMultiResolutionImage"); 208 Class<? extends Image> c = (Class<? extends Image>) Class.forName("java.awt.image.BaseMultiResolutionImage"); 208 209 baseMultiResolutionImageClass = Optional.ofNullable(c); 209 210 } catch (ClassNotFoundException ex) {
Note:
See TracChangeset
for help on using the changeset viewer.