Statistics
| Revision:

svn-gvsig-desktop / branches / org.gvsig.desktop-2018a / org.gvsig.desktop.library / org.gvsig.raster.legend / org.gvsig.raster.legend.imageio / src / main / java / org / gvsig / fmap / dal / file / imageio / legend / ImageIOGetLegend.java @ 43876

History | View | Annotate | Download (2.12 KB)

1
package org.gvsig.fmap.dal.file.imageio.legend;
2

    
3
import org.gvsig.fmap.dal.raster.RasterStore;
4
import org.gvsig.fmap.dal.spi.DataStoreProvider;
5
import org.gvsig.raster.lib.legend.api.RasterLegend;
6
import org.gvsig.raster.lib.legend.api.RasterLegendLocator;
7
import org.gvsig.raster.lib.legend.api.RasterLegendManager;
8
import org.gvsig.raster.lib.legend.api.colorinterpretation.ColorInterpretation;
9
import org.gvsig.tools.ToolsLocator;
10
import org.gvsig.tools.dynobject.DynClass;
11
import org.gvsig.tools.dynobject.DynMethod;
12
import org.gvsig.tools.dynobject.DynObject;
13
import org.gvsig.tools.dynobject.exception.DynMethodException;
14
import org.gvsig.tools.dynobject.exception.DynMethodNotSupportedException;
15

    
16

    
17
public class ImageIOGetLegend implements DynMethod {
18

    
19
    private static Integer code = null;
20

    
21

    
22
    static public void register(DynClass storeClass) {
23
        if (code != null) {
24
            return;
25
        }
26
        code = ToolsLocator.getDynObjectManager()
27
                .registerDynMethod(storeClass, new ImageIOGetLegend());
28

    
29
    }
30

    
31
    @Override
32
    public int getCode() throws DynMethodNotSupportedException {
33
        return code;
34
    }
35

    
36
    @Override
37
    public String getDescription() {
38
        return "ImageIO based Legend";
39
    }
40

    
41
    @Override
42
    public String getName() {
43
        return RasterStore.DYNMETHOD_GETLEGEND_NAME;
44
    }
45

    
46
    @Override
47
    public Object invoke(DynObject self, Object[] args)
48
            throws DynMethodException {
49
        try {
50
            DataStoreProvider provider=(DataStoreProvider)self;
51
             RasterLegendManager legendManager=RasterLegendLocator.getRasterLegendManager();
52

    
53
             ColorInterpretation colorInterpretation =(ColorInterpretation)provider.
54
                 invokeDynMethod(RasterStore.DYNMETHOD_GETCOLORINTERPRETATION_NAME, null);
55

    
56
             RasterLegend legend= legendManager.createLegend(colorInterpretation);
57

    
58
             return legend;
59

    
60
        } catch (DynMethodNotSupportedException e) {
61
            //FIXME
62
            throw new RuntimeException(e);
63
        }
64
    }
65

    
66
    @Override
67
    public Object clone() throws CloneNotSupportedException {
68
        return super.clone();
69
    }
70
}