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 @ 6336

History | View | Annotate | Download (4.75 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
import org.gvsig.fmap.crs.CRSFactory;
16
import org.gvsig.fmap.dal.DALLocator;
17
import org.gvsig.fmap.dal.DataManager;
18
import org.gvsig.fmap.dal.exception.InitializeException;
19
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
20
import org.gvsig.fmap.dal.exception.ReadException;
21
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
22
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProvider;
23
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProviderFactory;
24
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProviderParameters;
25
import org.gvsig.fmap.dal.raster.api.RasterStore;
26
import org.gvsig.fmap.geom.jts.primitive.Envelope2D;
27
import org.gvsig.fmap.geom.primitive.Envelope;
28
import org.gvsig.fmap.mapcontext.ViewPort;
29
import org.gvsig.fmap.mapcontext.raster.api.RasterLayer;
30
import org.gvsig.raster.lib.legend.api.ColorInterpretation;
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.tools.junit.AbstractLibraryAutoInitTestCase;
35
import org.gvsig.tools.task.Cancellable;
36

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

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

    
46
    }
47

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

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

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

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

    
73

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

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

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

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

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

    
102

    
103
    public class CancelDraw implements Cancellable {
104

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

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

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

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

    
140
}