Revision 2354 org.gvsig.raster.tools/trunk/templates/rasterTaskProjectTemplate/alg_with_preview_template/sources/app/ProjectTemplatePreview.java
ProjectTemplatePreview.java | ||
---|---|---|
3 | 3 |
import java.awt.Graphics2D; |
4 | 4 |
import java.awt.geom.Rectangle2D; |
5 | 5 |
import java.awt.image.BufferedImage; |
6 |
import java.util.ArrayList; |
|
6 | 7 |
import java.util.HashMap; |
8 |
import java.util.List; |
|
7 | 9 |
|
8 | 10 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
9 | 11 |
import org.gvsig.fmap.dal.coverage.dataset.Buffer; |
10 | 12 |
import org.gvsig.fmap.dal.coverage.datastruct.Extent; |
13 |
import org.gvsig.fmap.dal.coverage.exception.FilterTypeException; |
|
11 | 14 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
15 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilter; |
|
16 |
import org.gvsig.fmap.dal.coverage.grid.RasterFilterList; |
|
12 | 17 |
import org.gvsig.fmap.dal.coverage.grid.render.ImageDrawer; |
18 |
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation; |
|
19 |
import org.gvsig.fmap.dal.coverage.store.props.Transparency; |
|
13 | 20 |
import org.gvsig.gui.beans.imagenavigator.ImageUnavailableException; |
14 | 21 |
import org.gvsig.raster.fmap.layers.FLyrRaster; |
15 | 22 |
import org.gvsig.raster.projecttemplate.algorithm.ProjectTemplateProcess; |
... | ... | |
146 | 153 |
HashMap<String, Object> map = (HashMap<String, Object>)task.getResult(); |
147 | 154 |
Buffer buf = (Buffer)map.get(ProjectTemplateProcess.BUFFER); |
148 | 155 |
buf.setDataExtent(ext.toRectangle2D()); |
149 |
if(buf.getBandCount() == 1) { |
|
150 |
buf.replicateBand(0, 1); |
|
151 |
buf.replicateBand(0, 2); |
|
152 |
} |
|
156 |
|
|
157 |
/*ColorInterpretation ci = inputLyr.getDataStore().getColorInterpretation(); |
|
158 |
Transparency transparency = null; |
|
159 |
if(ci.isRGB() || ci.isRGBA()) { |
|
160 |
Integer alphaBandNumber = (Integer)map.get(ProjectTemplateProcess.ALPHA_BAND); |
|
161 |
transparency = RasterLocator.getManager().getDataStructFactory().createTransparency(buf.getBandCount()); |
|
162 |
transparency.setTransparencyBand(alphaBandNumber); |
|
163 |
transparency.activeTransparency(); |
|
164 |
}*/ |
|
165 |
|
|
153 | 166 |
ImageDrawer drawer = RasterLocator.getManager().createImageDrawerService(); |
154 | 167 |
drawer.setBuffer(buf); |
155 | 168 |
try { |
156 |
//drawer.addEnhanced(inputLyr.getDataStore().getStatistics(), true, 0.2); |
|
169 |
applyFiltersToPreview(drawer); |
|
170 |
|
|
157 | 171 |
return (BufferedImage)drawer.drawBufferOverImageObject(); |
158 | 172 |
} catch (ProcessInterruptedException e) { |
159 | 173 |
return null; |
160 | 174 |
} |
161 | 175 |
} |
162 | 176 |
|
177 |
/** |
|
178 |
* Adds filters to the preview. |
|
179 |
* @param drawer |
|
180 |
*/ |
|
181 |
private void applyFiltersToPreview(ImageDrawer drawer) { |
|
182 |
RasterFilterList filterList = inputLyr.getRender().getFilterList(); |
|
183 |
List<RasterFilter> list = new ArrayList<RasterFilter>(); |
|
184 |
if(filterList.lenght() > 0) { |
|
185 |
for (int i = 0; i < filterList.lenght(); i++) { |
|
186 |
RasterFilter rf = filterList.get(i); |
|
187 |
list.add(rf); |
|
188 |
} |
|
189 |
} |
|
190 |
try { |
|
191 |
drawer.addFilters(inputLyr.getDataStore().getStatistics(), list); |
|
192 |
} catch (FilterTypeException e) { |
|
193 |
logger.debug("The filters have not been applied", e); |
|
194 |
} |
|
195 |
} |
|
196 |
|
|
163 | 197 |
public Object getSource() { |
164 | 198 |
return null; |
165 | 199 |
} |
Also available in: Unified diff