Statistics
| Revision:

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
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
}