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

History | View | Annotate | Download (8.2 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.store.AbstractRasterDataStore;
61
import org.gvsig.raster.impl.store.DefaultRasterStore;
62
import org.gvsig.raster.impl.store.DefaultRemoteRasterStore;
63
import org.gvsig.raster.impl.store.ParamImpl;
64
import org.gvsig.raster.impl.store.ParamsImpl;
65
import org.gvsig.raster.impl.store.properties.DataStoreColorTable;
66
import org.gvsig.raster.impl.store.properties.DataStoreTransparency;
67
import org.gvsig.raster.impl.store.serializer.ColorInterpretationRmfSerializer;
68
import org.gvsig.raster.impl.store.serializer.GeoInfoRmfSerializer;
69
import org.gvsig.raster.impl.store.serializer.GeoPointListRmfSerializer;
70
import org.gvsig.raster.impl.store.serializer.ProjectionRmfSerializer;
71
import org.gvsig.raster.impl.store.serializer.StatisticsRmfSerializer;
72
import org.gvsig.raster.impl.store.serializer.TimeSeriesRmfSerializer;
73
import org.gvsig.raster.util.persistence.GenericPersistentObject;
74
import org.gvsig.raster.util.persistence.PersistencyFilterParam;
75
import org.gvsig.tools.ToolsLocator;
76
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
77
import org.gvsig.tools.library.AbstractLibrary;
78
import org.gvsig.tools.library.LibraryException;
79

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

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

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

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

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

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

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

    
200
}