Statistics
| Revision:

gvsig-raster / org.gvsig.raster / branches / org.gvsig.raster.2.4 / org.gvsig.raster / org.gvsig.fmap.mapcontext.raster / org.gvsig.fmap.mapcontext.raster.impl / src / test / java / org / gvsig / fmap / mapcontext / raster / impl / DefaultRasterLayerTest.java @ 6900

History | View | Annotate | Download (4.77 KB)

1
package org.gvsig.fmap.mapcontext.raster.impl;
2

    
3

    
4
import java.awt.Dimension;
5
import java.awt.Graphics2D;
6
import java.awt.image.BufferedImage;
7
import java.io.File;
8
import java.io.IOException;
9
import java.net.URISyntaxException;
10
import java.net.URL;
11

    
12
import javax.imageio.ImageIO;
13

    
14
import org.cresques.cts.IProjection;
15

    
16
import org.gvsig.fmap.crs.CRSFactory;
17
import org.gvsig.fmap.dal.DALLocator;
18
import org.gvsig.fmap.dal.DataManager;
19
import org.gvsig.fmap.dal.exception.InitializeException;
20
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
21
import org.gvsig.fmap.dal.exception.ReadException;
22
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
23
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProvider;
24
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProviderFactory;
25
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProviderParameters;
26
import org.gvsig.fmap.dal.raster.api.RasterStore;
27
import org.gvsig.fmap.geom.jts.primitive.Envelope2D;
28
import org.gvsig.fmap.geom.primitive.Envelope;
29
import org.gvsig.fmap.mapcontext.ViewPort;
30
import org.gvsig.fmap.mapcontext.raster.api.RasterLayer;
31
import org.gvsig.raster.lib.legend.api.RasterLegend;
32
import org.gvsig.raster.lib.legend.api.RasterLegendLocator;
33
import org.gvsig.raster.lib.legend.api.RasterLegendManager;
34
import org.gvsig.raster.lib.legend.api.colorinterpretation.ColorInterpretation;
35
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
36
import org.gvsig.tools.task.Cancellable;
37

    
38
/**
39
 * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
40
 *
41
 */
42
public class DefaultRasterLayerTest extends AbstractLibraryAutoInitTestCase {
43

    
44
    @Override
45
    protected void doSetUp() throws Exception {
46

    
47
    }
48

    
49
    /**
50
     * Tests to create a rasterLayer
51
     */
52
    public void testCreateLayer() {
53
        IProjection projection = CRSFactory.getCRS("EPSG:25830");
54
        final URL url = this.getClass().getResource("/pathcv.png");
55

    
56
        //The store is created
57
        DataManager dataManager = DALLocator.getDataManager();
58
        try {
59
            File file=new File(url.toURI());
60
            JimiRasterStoreProviderFactory jimiFactory=
61
                (JimiRasterStoreProviderFactory)dataManager.getStoreProviderFactory(JimiRasterStoreProvider.NAME);
62
            JimiRasterStoreProviderParameters params = jimiFactory.createJimiParameters();
63
            params.setFile(file);
64
            params.setCRS(projection);
65

    
66
            RasterStore store=null;
67
            store = (RasterStore) dataManager.openStore(JimiRasterStoreProvider.NAME,params);
68

    
69
            RasterLegendManager legendManager=RasterLegendLocator.getRasterLegendManager();
70
            ColorInterpretation colorInterpretation =
71
                legendManager.createColorInterpretation(ColorInterpretation.RGB);
72
            RasterLegend legend= legendManager.createLegend(colorInterpretation);
73

    
74

    
75
            RasterLayer layer=new DefaultRasterLayer(store, legend);
76
            assertNotNull(layer);
77

    
78
            //589 x 467
79
            //1178 x 934
80
            //294 x 233
81
            BufferedImage image = new BufferedImage(589, 467, BufferedImage.TYPE_INT_ARGB);
82
            ViewPort viewPort = new ViewPort(projection);
83
            Envelope envelope = new Envelope2D(-100, -100, 1000, 1000);
84
            viewPort.setEnvelope(envelope);
85
//            viewPort.setEnvelope(layer.getFullEnvelope());
86
            viewPort.setImageSize(new Dimension(589, 467));
87
            viewPort.refreshExtent();
88

    
89
            layer.draw(image, (Graphics2D)image.getGraphics(), viewPort, new CancelDraw(), 1.0);
90

    
91
            try {
92
                File output = File.createTempFile("test", ".png");
93
                ImageIO.write(image, "png", output);
94
            } catch (IOException e) {
95
                fail("Exception happened: "+e.getMessage());
96
            }
97

    
98
        } catch (InitializeException | URISyntaxException | ReadException | ValidateDataParametersException | ProviderNotRegisteredException e) {
99
            fail("Exception happened: "+e.getMessage());
100
        }
101
    }
102

    
103

    
104
    public class CancelDraw implements Cancellable {
105

    
106
        /**
107
         * <p>
108
         * Determines if the drawing task must be canceled or not.
109
         * </p>
110
         *
111
         * @see #isCanceled()
112
         * @see #setCanceled(boolean)
113
         */
114
        private boolean cancel = false;
115

    
116
        /**
117
         * Creates a new <code>CancelDraw</code> object.
118
         */
119
        public CancelDraw() {
120
        }
121

    
122
        /*
123
         * (non-Javadoc)
124
         *
125
         * @see com.iver.utiles.swing.threads.Cancellable#setCanceled(boolean)
126
         */
127
        public void setCanceled(boolean b) {
128
            cancel = b;
129
        }
130

    
131
        /*
132
         * (non-Javadoc)
133
         *
134
         * @see com.iver.utiles.swing.threads.Cancellable#isCanceled()
135
         */
136
        public boolean isCanceled() {
137
            return cancel;
138
        }
139
    }
140

    
141
}