svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.raster / org.gvsig.raster.lib / org.gvsig.raster.lib.buffer.impl / src / main / java / org / gvsig / raster / lib / buffer / impl / ConvertedTypeBuffer.java @ 44831
History | View | Annotate | Download (2.19 KB)
1 | 44831 | jjdelcerro | package org.gvsig.raster.lib.buffer.impl; |
---|---|---|---|
2 | |||
3 | import java.awt.image.BufferedImage; |
||
4 | import java.util.ArrayList; |
||
5 | |||
6 | import org.slf4j.Logger; |
||
7 | import org.slf4j.LoggerFactory; |
||
8 | |||
9 | import org.gvsig.fmap.geom.primitive.Envelope; |
||
10 | import org.gvsig.raster.lib.buffer.api.Band; |
||
11 | import org.gvsig.raster.lib.buffer.api.Buffer; |
||
12 | import org.gvsig.raster.lib.buffer.api.BufferLocator; |
||
13 | import org.gvsig.raster.lib.buffer.api.BufferManager; |
||
14 | import org.gvsig.raster.lib.buffer.api.exceptions.BandException; |
||
15 | import org.gvsig.raster.lib.buffer.impl.exceptions.CreateBufferException; |
||
16 | import org.gvsig.tools.ToolsLocator; |
||
17 | import org.gvsig.tools.dispose.DisposeUtils; |
||
18 | import org.gvsig.tools.exception.BaseException; |
||
19 | |||
20 | |||
21 | /**
|
||
22 | * This is like a view over a raster buffer.
|
||
23 | * It's for rendering purposes only.
|
||
24 | *
|
||
25 | * @author fdiaz
|
||
26 | *
|
||
27 | */
|
||
28 | public class ConvertedTypeBuffer extends AbstractBuffer implements Buffer { |
||
29 | |||
30 | protected static final Logger logger = LoggerFactory.getLogger(ConvertedTypeBuffer.class); |
||
31 | |||
32 | Buffer buffer;
|
||
33 | int type;
|
||
34 | |||
35 | |||
36 | /**
|
||
37 | * @param buffer
|
||
38 | * @param envelope
|
||
39 | * @throws CreateBufferException
|
||
40 | */
|
||
41 | public ConvertedTypeBuffer(Buffer buffer, int type) throws CreateBufferException { |
||
42 | ToolsLocator.getDisposableManager().bind(buffer); |
||
43 | this.buffer = buffer;
|
||
44 | this.type = type;
|
||
45 | this.projection = buffer.getProjection();
|
||
46 | this.dimensions = buffer.getDimensions();
|
||
47 | this.bands = new ArrayList<Band>(); |
||
48 | try {
|
||
49 | createBands(this.buffer.getBands(), this.type); |
||
50 | } catch (Exception e) { |
||
51 | throw new CreateBufferException(e); |
||
52 | } |
||
53 | |||
54 | } |
||
55 | |||
56 | private void createBands(Band[] bands, int type) throws BandException { |
||
57 | BufferManager bufferManager = BufferLocator.getBufferManager(); |
||
58 | |||
59 | for (int i = 0; i < bands.length; i++) { |
||
60 | Band band = bufferManager.createConvertedTypeBand(this, bands[i], type);
|
||
61 | this.bands.add(band);
|
||
62 | band.addObserver(this);
|
||
63 | |||
64 | } |
||
65 | } |
||
66 | |||
67 | @Override
|
||
68 | public void doDispose() throws BaseException { |
||
69 | super.doDispose();
|
||
70 | DisposeUtils.dispose(buffer); |
||
71 | buffer=null;
|
||
72 | } |
||
73 | |||
74 | @Override
|
||
75 | public BufferedImage getBufferedImage() { |
||
76 | return null; |
||
77 | } |
||
78 | |||
79 | } |