Revision 1847 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/icontheme/BaseIconTheme.java

View differences:

BaseIconTheme.java
24 24
package org.gvsig.tools.swing.impl.icontheme;
25 25

  
26 26
import java.awt.Image;
27
import java.awt.image.BufferedImage;
27 28
import java.io.File;
28 29
import java.io.IOException;
29 30
import java.io.InputStream;
......
41 42

  
42 43
import org.apache.commons.io.FileUtils;
43 44
import org.apache.commons.lang3.StringUtils;
45
import org.gvsig.tools.swing.api.SimpleImage;
46
import org.gvsig.tools.swing.api.ToolsSwingLocator;
44 47
import org.slf4j.Logger;
45 48
import org.slf4j.LoggerFactory;
46 49

  
47 50
import org.gvsig.tools.swing.icontheme.IconTheme;
51
import org.gvsig.tools.swing.impl.DefaultSimpleImage;
48 52

  
49 53
/**
50 54
 * <p>
......
68 72
    class DefaultIcon implements Icon {
69 73

  
70 74
        private ImageIcon image;
75
        private ImageIcon scaledImage;
71 76
        private final URL resource;
72 77
        private final String name;
73 78
        private final String group;
......
75 80

  
76 81
        DefaultIcon(String provider, String group, String name, ImageIcon image, URL resource) {
77 82
            this.image = image;
83
            this.scaledImage = this.image;
84
            if (this.image != null ) {
85
                double scaleFactor = ToolsSwingLocator.getIconThemeManager().getScaleFactor();
86
                if (scaleFactor != 1) {
87
                    SimpleImage simpleImage = new DefaultSimpleImage(this.image);
88
                    simpleImage = simpleImage.resize(scaleFactor);
89
                    this.scaledImage = new ImageIcon(simpleImage.getBufferedImage());
90
                }
91
            }
78 92
            this.resource = resource;
79 93
            this.group = group;
80 94
            this.name = name;
......
106 120

  
107 121
        @Override
108 122
        public ImageIcon getImageIcon() {
109
            if (this.image != null) {
110
                return this.image;
123
            if (this.image == null) {
124
                try {
125
                    this.image = new ImageIcon((URL) this.resource);
126
                    double scaleFactor = ToolsSwingLocator.getIconThemeManager().getScaleFactor();
127
                    if (scaleFactor != 1) {
128
                        SimpleImage simpleImage = new DefaultSimpleImage(this.image);
129
                        simpleImage = simpleImage.resize(scaleFactor);
130
                        this.scaledImage = new ImageIcon(simpleImage.getBufferedImage());
131
                    } else {
132
                        this.scaledImage = this.image;
133
                    }
134
                } catch (Exception ex) {
135
                    return null;
136
                }
111 137
            }
112
            try {
113
                this.image = new ImageIcon((URL) this.resource);
114
            } catch (Exception ex) {
115
                return null;
116
            }
117
            return this.image;
138
            return this.scaledImage;
118 139
        }
119 140

  
120 141
        @Override

Also available in: Unified diff