Statistics
| Revision:

gvsig-raster / org.gvsig.raster / trunk / org.gvsig.raster / org.gvsig.raster.lib / org.gvsig.raster.lib.impl / src / main / java / org / gvsig / raster / impl / RasterDefaultImplLibrary.java @ 2126

History | View | Annotate | Download (8.36 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.impl;
23

    
24
import java.util.ArrayList;
25
import java.util.HashMap;
26
import java.util.List;
27

    
28
import javax.swing.ImageIcon;
29

    
30
import org.gvsig.fmap.dal.coverage.RasterLibrary;
31
import org.gvsig.fmap.dal.coverage.RasterLocator;
32
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
33
import org.gvsig.metadata.exceptions.MetadataException;
34
import org.gvsig.raster.impl.datastruct.BandListImpl;
35
import org.gvsig.raster.impl.datastruct.ColorItemImpl;
36
import org.gvsig.raster.impl.datastruct.DatasetBandImpl;
37
import org.gvsig.raster.impl.datastruct.ExtentImpl;
38
import org.gvsig.raster.impl.datastruct.Kernel;
39
import org.gvsig.raster.impl.datastruct.TransparencyRangeImpl;
40
import org.gvsig.raster.impl.datastruct.serializer.ColorTableRmfSerializer;
41
import org.gvsig.raster.impl.datastruct.serializer.HistogramRmfSerializer;
42
import org.gvsig.raster.impl.datastruct.serializer.NoDataRmfSerializer;
43
import org.gvsig.raster.impl.grid.filter.DefaultRasterFilterList;
44
import org.gvsig.raster.impl.grid.filter.band.ColorBalanceCMYManager;
45
import org.gvsig.raster.impl.grid.filter.band.ColorBalanceRGBManager;
46
import org.gvsig.raster.impl.grid.filter.band.ColorTableListManager;
47
import org.gvsig.raster.impl.grid.filter.band.HSLToRGBManager;
48
import org.gvsig.raster.impl.grid.filter.band.RGBToHSLManager;
49
import org.gvsig.raster.impl.grid.filter.band.ToLumSaManager;
50
import org.gvsig.raster.impl.grid.filter.convolution.ConvolutionListManager;
51
import org.gvsig.raster.impl.grid.filter.correction.MedianListManager;
52
import org.gvsig.raster.impl.grid.filter.correction.ModeManager;
53
import org.gvsig.raster.impl.grid.filter.enhancement.BrightnessContrastListManager;
54
import org.gvsig.raster.impl.grid.filter.enhancement.EnhancementStretchListManager;
55
import org.gvsig.raster.impl.grid.filter.enhancement.EqualizationManager;
56
import org.gvsig.raster.impl.grid.filter.pansharp.PanSharpeningListManager;
57
import org.gvsig.raster.impl.grid.filter.segmentation.FirstDerivativeListManager;
58
import org.gvsig.raster.impl.grid.filter.statistics.StatisticsListManager;
59
import org.gvsig.raster.impl.grid.render.DefaultRender;
60
import org.gvsig.raster.impl.grid.roi.VectorialROIImpl;
61
import org.gvsig.raster.impl.store.AbstractRasterDataStore;
62
import org.gvsig.raster.impl.store.DefaultRasterStore;
63
import org.gvsig.raster.impl.store.DefaultRemoteRasterStore;
64
import org.gvsig.raster.impl.store.ParamImpl;
65
import org.gvsig.raster.impl.store.ParamsImpl;
66
import org.gvsig.raster.impl.store.properties.DataStoreColorTable;
67
import org.gvsig.raster.impl.store.properties.DataStoreTransparency;
68
import org.gvsig.raster.impl.store.serializer.ColorInterpretationRmfSerializer;
69
import org.gvsig.raster.impl.store.serializer.GeoInfoRmfSerializer;
70
import org.gvsig.raster.impl.store.serializer.GeoPointListRmfSerializer;
71
import org.gvsig.raster.impl.store.serializer.ProjectionRmfSerializer;
72
import org.gvsig.raster.impl.store.serializer.ROIFileRmfSerializer;
73
import org.gvsig.raster.impl.store.serializer.StatisticsRmfSerializer;
74
import org.gvsig.raster.impl.store.serializer.TimeSeriesRmfSerializer;
75
import org.gvsig.raster.util.persistence.GenericPersistentObject;
76
import org.gvsig.raster.util.persistence.PersistencyFilterParam;
77
import org.gvsig.tools.ToolsLocator;
78
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
79
import org.gvsig.tools.library.AbstractLibrary;
80
import org.gvsig.tools.library.LibraryException;
81

    
82
/**
83
 * Library for default implementation initialization and configuration.
84
 * 
85
 * @author gvSIG team
86
 * @version $Id$
87
 */
88
public class RasterDefaultImplLibrary extends AbstractLibrary {
89
        public static ImageIcon                downloadingImg    = null;
90
        public static ImageIcon                crashImg          = null;
91
        public static HashMap<String, Buffer>  defaultImages     = new HashMap<String, Buffer>();
92
        
93
        public RasterDefaultImplLibrary() {
94
                registerAsImplementationOf(RasterLibrary.class);
95
        }
96

    
97
        /**
98
         * Ejecuta las acciones necesarias para arrancar la librer?a.
99
         */
100
        public static void wakeUp() {
101
                if (RasterLibrary.wakeup)
102
                        return;
103

    
104
                ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager();
105
                // Punto de extensi?n para registro de drivers de escritura
106
                extensionPoints.add("RasterWriter", "Raster Writer Classes");
107
                // Punto de extensi?n de los filtros
108
                extensionPoints.add("RasterFilter", "Raster Filter Classes");
109
                // Punto de extensi?n de los serializadores
110
                extensionPoints.add("Serializer", "Raster Serializer Classes");
111
                // Registro de clases por defecto
112
                extensionPoints.add("DefaultRasterProvider", "Default Raster Drivers");
113

    
114
                // Invoca las llamadas est?ticas de cada clase para registrarlas en los puntos de extensi?n
115
                BrightnessContrastListManager.register();
116
                FirstDerivativeListManager.register();
117
                MedianListManager.register();
118
                ConvolutionListManager.register();
119
                ColorTableListManager.register();
120
                StatisticsListManager.register();
121
                PanSharpeningListManager.register();
122
                RGBToHSLManager.register();
123
                HSLToRGBManager.register();
124
                ColorBalanceCMYManager.register();
125
                ColorBalanceRGBManager.register();
126
                ToLumSaManager.register();
127
                EnhancementStretchListManager.register();
128
                EqualizationManager.register();
129
                ModeManager.register();
130
                
131
                //////////////
132
                // EnhancementListManager.register();
133
                // RGBToCMYKManager.register();
134
                // Registrar los nuevos filtros del directorio
135
                // registerClasses();
136
                //////////////
137
                
138
                // Registro de serializadores
139
                ColorInterpretationRmfSerializer.register();
140
                GeoInfoRmfSerializer.register();
141
                GeoPointListRmfSerializer.register();
142
                ProjectionRmfSerializer.register();
143
                StatisticsRmfSerializer.register();
144
                ColorTableRmfSerializer.register();
145
                HistogramRmfSerializer.register();
146
                NoDataRmfSerializer.register();
147
                TimeSeriesRmfSerializer.register();
148
                ROIFileRmfSerializer.register();
149

    
150
                // Limpiamos el directorio temporal
151
                RasterLocator.getManager().getFileUtils().cleanUpTempFiles();
152
                // Crea el directorio de temporales
153
                RasterLocator.getManager().getFileUtils().getTemporalPath();
154
                RasterLibrary.wakeup = true;
155
        }
156

    
157
        protected void doInitialize() throws LibraryException {
158
        //Register the default GeometryManager
159
        RasterLocator.registerManager(DefaultRasterManager.class);
160
        wakeUp();
161
        }
162

    
163
    @Override
164
    protected void doPostInitialize() throws LibraryException {
165
            List<Throwable> exs = new ArrayList<Throwable>();
166
            
167
            try {
168
                        AbstractRasterDataStore.registerMetadataDefinition();
169
                } catch (MetadataException e) {
170
                        exs.add(e);
171
                }
172
            
173
            if (exs.size() > 0) {
174
                        throw new LibraryException(this.getClass(), exs);
175
                }
176
            
177
            BandListImpl.registerPersistence();
178
            DefaultRender.registerPersistence();
179
            DataStoreColorTable.registerPersistence();
180
            DefaultRasterStore.registerPersistence();
181
            DefaultRemoteRasterStore.registerPersistence();
182
            DataStoreColorTable.registerPersistence();
183
            ColorItemImpl.registerPersistence();
184
            DataStoreTransparency.registerPersistence();
185
            TransparencyRangeImpl.registerPersistence();
186
            DatasetBandImpl.registerPersistence();
187
            ExtentImpl.registerPersistence();
188
            DefaultRasterFilterList.registerPersistence();
189
            GenericPersistentObject.registerPersistence();
190
            
191
            Kernel.registerPersistence();
192
            PersistencyFilterParam.registerPersistence();
193
            ParamsImpl.registerPersistence();
194
            ParamImpl.registerPersistence();
195
            
196
            //uncomment to show tile downloading image
197
                //if(downloadingImg == null)
198
                        //downloadingImg = new ImageIcon(getClass().getResource("images/download.jpg"));
199
                if(crashImg == null)
200
                        crashImg = new ImageIcon(getClass().getResource("images/Download_Warning.png"));
201
    }
202

    
203
}