gvsig-raster / org.gvsig.raster.tools / branches / org.gvsig.raster.tools_dataaccess_refactoring / org.gvsig.raster.tools.app.basic / src / main / java / org / gvsig / raster / tools / app / basic / RasterExtension.java @ 2385
History | View | Annotate | Download (25.1 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.tools.app.basic; |
23 |
|
24 |
import java.util.ArrayList; |
25 |
import java.util.prefs.Preferences; |
26 |
|
27 |
import org.gvsig.andami.IconThemeHelper; |
28 |
import org.gvsig.andami.PluginServices; |
29 |
import org.gvsig.andami.plugins.Extension; |
30 |
import org.gvsig.andami.plugins.IExtensionQueryByAction; |
31 |
import org.gvsig.andami.ui.mdiManager.IWindow; |
32 |
import org.gvsig.app.ApplicationLocator; |
33 |
import org.gvsig.app.ApplicationManager; |
34 |
import org.gvsig.app.project.documents.view.ViewDocument; |
35 |
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel; |
36 |
import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction; |
37 |
import org.gvsig.app.project.documents.view.toc.ITocItem; |
38 |
import org.gvsig.fmap.dal.coverage.RasterLibrary; |
39 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
40 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
41 |
import org.gvsig.fmap.mapcontext.MapContext; |
42 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
43 |
import org.gvsig.fmap.mapcontext.layers.FLayers; |
44 |
import org.gvsig.raster.algorithm.RasterBaseAlgorithmLibrary; |
45 |
import org.gvsig.raster.fmap.FmapRasterLibrary; |
46 |
import org.gvsig.raster.fmap.layers.DefaultFLyrRaster; |
47 |
import org.gvsig.raster.fmap.layers.FLyrRaster; |
48 |
import org.gvsig.raster.mainplugin.config.Configuration; |
49 |
import org.gvsig.raster.mainplugin.config.ConfigurationEvent; |
50 |
import org.gvsig.raster.mainplugin.config.ConfigurationListener; |
51 |
import org.gvsig.raster.tools.app.basic.raster.gui.preference.RasterPreferences; |
52 |
import org.gvsig.raster.tools.app.basic.raster.gui.wizard.PrepareDataStoreParametersRaw; |
53 |
import org.gvsig.raster.tools.app.basic.raster.gui.wizard.PrepareDataStoreParametersVTR; |
54 |
import org.gvsig.raster.tools.app.basic.raster.gui.wizard.PrepareLayerAskCoordinates; |
55 |
import org.gvsig.raster.tools.app.basic.raster.gui.wizard.PrepareLayerAskWritableDirectory; |
56 |
import org.gvsig.raster.tools.app.basic.raster.process.ClippingProcess; |
57 |
import org.gvsig.raster.tools.app.basic.tool.analysisview.ViewRasterAnalysisTocMenuEntry; |
58 |
import org.gvsig.raster.tools.app.basic.tool.clip.ClippingTocMenuEntry; |
59 |
import org.gvsig.raster.tools.app.basic.tool.colortable.ColorTableTocMenuEntry; |
60 |
import org.gvsig.raster.tools.app.basic.tool.colortable.ui.library.RasterColorTablesFactory; |
61 |
import org.gvsig.raster.tools.app.basic.tool.enhanced.EnhancedTocMenuEntry; |
62 |
import org.gvsig.raster.tools.app.basic.tool.filter.FilterTocMenuEntry; |
63 |
import org.gvsig.raster.tools.app.basic.tool.geolocation.GeoLocationTocMenuEntry; |
64 |
import org.gvsig.raster.tools.app.basic.tool.histogram.HistogramTocMenuEntry; |
65 |
import org.gvsig.raster.tools.app.basic.tool.infobypoint.InfoByRasterPointTocMenuEntry; |
66 |
import org.gvsig.raster.tools.app.basic.tool.layerdatatype.LayerDatatypeTocMenuEntry; |
67 |
import org.gvsig.raster.tools.app.basic.tool.multiresolution.ZoomResolutionLevelTocMenuEntry; |
68 |
import org.gvsig.raster.tools.app.basic.tool.overview.OverviewsTocMenuEntry; |
69 |
import org.gvsig.raster.tools.app.basic.tool.properties.panel.EnhancedPanel; |
70 |
import org.gvsig.raster.tools.app.basic.tool.properties.panel.GeneralPanel; |
71 |
import org.gvsig.raster.tools.app.basic.tool.properties.panel.InfoPanel; |
72 |
import org.gvsig.raster.tools.app.basic.tool.properties.panel.TransparencyPanel; |
73 |
import org.gvsig.raster.tools.app.basic.tool.rasterresolution.ZoomPixelCursorTocMenuEntry; |
74 |
import org.gvsig.raster.tools.app.basic.tool.roi.ROIManagerTocMenuEntry; |
75 |
import org.gvsig.raster.tools.app.basic.tool.saveas.SaveAsTocMenuEntry; |
76 |
import org.gvsig.raster.tools.app.basic.tool.saveviewtoraster.SaveViewToRasterTocMenuEntry; |
77 |
import org.gvsig.raster.tools.app.basic.tool.selectrasterlayer.SelectLayerTocMenuEntry; |
78 |
import org.gvsig.raster.tools.app.basic.tool.setviewprojection.SetViewProjectionTocMenuEntry; |
79 |
import org.gvsig.raster.tools.app.basic.tool.viewexport.SaveViewToImageTocMenuEntry; |
80 |
import org.gvsig.raster.tools.app.basic.toolbox.ToolboxRasterToolsLoader; |
81 |
import org.gvsig.tools.ToolsLocator; |
82 |
import org.gvsig.tools.extensionpoint.ExtensionBuilder; |
83 |
import org.gvsig.tools.extensionpoint.ExtensionPoint; |
84 |
import org.gvsig.tools.extensionpoint.ExtensionPointManager; |
85 |
|
86 |
|
87 |
/**
|
88 |
* Extensi?n que adapta a FMap y gvSIG la nueva implementaci?n de raster. Para
|
89 |
* el cuadro de Propiedades de visualizaci?n de raster contiene el contenedor
|
90 |
* base se registran la entrada del men? del TOC y los paneles en el cuadro.
|
91 |
* Para la parte de FMap contiene una nueva capa raster y los drivers
|
92 |
* necesarios.
|
93 |
*
|
94 |
* @author Nacho Brodin (nachobrodin@gmail.com)
|
95 |
*/
|
96 |
public class RasterExtension extends Extension implements ConfigurationListener, IExtensionQueryByAction { |
97 |
public static final String CLIPPING_PROCESS_LABEL = ClippingProcess.PROCESS_LABEL; |
98 |
|
99 |
/**
|
100 |
* Indica si en el panel de preferencias se refresca automaticamente la vista
|
101 |
* para mostrar los cambios
|
102 |
*/
|
103 |
public static boolean autoRefreshView = true; |
104 |
|
105 |
/**
|
106 |
* Indica si se debe preguntar las coordenadas al cargar una capa que no las
|
107 |
* tenga
|
108 |
*/
|
109 |
public static boolean askCoordinates = false; |
110 |
private ExtensionPoint genericToolBarMenuExtensionPoint = null; |
111 |
|
112 |
public void execute(String actionCommand) { |
113 |
//Las entradas en GenericToolBarModule est?n registradas con la misma etiqueta que la del actionCommand
|
114 |
//De esta forma pueden recuperarse los TocMenuEntry del punto de extensi?n y ejecutar la acci?n a
|
115 |
//trav?s de este.
|
116 |
ExtensionBuilder ext = getGenericToolBarMenuExtensionPoint().get(actionCommand).getBuilder(); |
117 |
if(ext != null && ext instanceof AbstractTocContextMenuAction) { |
118 |
IWindow w = PluginServices.getMDIManager().getActiveWindow(); |
119 |
if(w instanceof AbstractViewPanel) { |
120 |
FLayers lyrs = ((AbstractViewPanel)w).getMapControl().getMapContext().getLayers(); |
121 |
FLayer[] actives = lyrs.getActives();
|
122 |
((AbstractTocContextMenuAction)ext).execute(null, actives);
|
123 |
} |
124 |
} |
125 |
} |
126 |
|
127 |
public void initialize() { |
128 |
// Asignamos la configuracion global a FlyrRasterSE
|
129 |
DefaultFLyrRaster.setConfiguration(Configuration.getSingleton());
|
130 |
|
131 |
Configuration.addValueChangedListener(this); |
132 |
loadConfigurationValues(); |
133 |
|
134 |
registerIcons(); |
135 |
|
136 |
FmapRasterLibrary fmapRaster = new FmapRasterLibrary();
|
137 |
fmapRaster.initialize(); |
138 |
|
139 |
Preferences prefs = Preferences.userRoot().node("gvsig.foldering"); |
140 |
prefs.put("DataFolder", System.getProperty("user.home")); |
141 |
ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager(); |
142 |
|
143 |
// Creaci?n del punto de extensi?n para registrar paneles en el cuadro de propiedades.
|
144 |
if (!extensionPoints.has("RasterSEPropertiesDialog")) { |
145 |
ExtensionPoint point = extensionPoints.add("RasterSEPropertiesDialog");
|
146 |
point.setDescription("Raster Properties registrable panels (register instances of javax.swing.JPanel)");
|
147 |
} |
148 |
|
149 |
// A?adimos la configuracion de Raster a gvSIG
|
150 |
|
151 |
ExtensionPoint point = extensionPoints.get("AplicationPreferences");
|
152 |
point.append("RasterPreferences", "", RasterPreferences.class); |
153 |
|
154 |
// A?adimos paneles al cuadro de propiedades.
|
155 |
point = extensionPoints.get("RasterSEPropertiesDialog");
|
156 |
point.append("info", "", InfoPanel.class); |
157 |
point.append("transparencia", "", TransparencyPanel.class); |
158 |
point.append("realce", "", EnhancedPanel.class); |
159 |
point.append("general_panel", "", GeneralPanel.class); |
160 |
|
161 |
// A?adimos las entradas del men? del toc de raster
|
162 |
point = extensionPoints.get("View_TocActions");
|
163 |
//point.append("RasterSEProperties", "Raster Properties", RasterPropertiesTocMenuEntry.getSingleton());
|
164 |
point.append("SaveAs", "Save as raster layer", SaveAsTocMenuEntry.getSingleton()); |
165 |
point.append("ZoomPixelCursor", "zoom to pixel resolution", ZoomPixelCursorTocMenuEntry.getSingleton()); |
166 |
point.append("ROI", "ROIs for a raster layer", ROIManagerTocMenuEntry.getSingleton()); |
167 |
point.append("Color table", "Color table for a raster layer", ColorTableTocMenuEntry.getSingleton()); |
168 |
point.append("Histogram", "Histogram of a raster layer", HistogramTocMenuEntry.getSingleton()); |
169 |
point.append("Overviews", "Build overviews", OverviewsTocMenuEntry.getSingleton()); |
170 |
|
171 |
ApplicationManager appGvSigMan = ApplicationLocator.getManager(); |
172 |
|
173 |
appGvSigMan.registerPrepareOpenDataStoreParameters(new PrepareLayerAskWritableDirectory());
|
174 |
appGvSigMan.registerPrepareOpenDataStoreParameters(new PrepareDataStoreParametersRaw());
|
175 |
appGvSigMan.registerPrepareOpenDataStoreParameters(new PrepareDataStoreParametersVTR());
|
176 |
|
177 |
appGvSigMan.registerPrepareOpenLayer(new PrepareLayerAskCoordinates());
|
178 |
|
179 |
appGvSigMan.registerColorTablesFactory(new RasterColorTablesFactory());
|
180 |
|
181 |
registerMenuElements(); |
182 |
registerProcesses(); |
183 |
} |
184 |
|
185 |
private void registerProcesses() { |
186 |
RasterBaseAlgorithmLibrary.register(CLIPPING_PROCESS_LABEL, ClippingProcess.class); |
187 |
ClippingProcess.registerParameters(); |
188 |
} |
189 |
|
190 |
/**
|
191 |
* Registra los iconos a utilizar en andami.
|
192 |
*/
|
193 |
private void registerIcons() { |
194 |
//Actions
|
195 |
IconThemeHelper.registerIcon("action", "menu-layer-icon", this); |
196 |
IconThemeHelper.registerIcon("action", "menu-process-icon", this); |
197 |
IconThemeHelper.registerIcon("action", "menu-transgeo-icon", this); |
198 |
IconThemeHelper.registerIcon("action", "menu-raster-export", this); |
199 |
|
200 |
IconThemeHelper.registerIcon("action", "layer-modify-roi", this); |
201 |
IconThemeHelper.registerIcon("action", "layer-histogram", this); |
202 |
IconThemeHelper.registerIcon("action", "layer-color-table", this); |
203 |
IconThemeHelper.registerIcon("action", "layer-modify-overviews", this); |
204 |
IconThemeHelper.registerIcon("action", "layer-properties-raster", this); |
205 |
IconThemeHelper.registerIcon("action", "layer-filter-raster", this); |
206 |
IconThemeHelper.registerIcon("action", "layer-enhanced", this); |
207 |
IconThemeHelper.registerIcon("action", "view-raster-analysis", this); |
208 |
IconThemeHelper.registerIcon("action", "view-select-raster-layer", this); |
209 |
IconThemeHelper.registerIcon("action", "layer-geolocalization", this); |
210 |
IconThemeHelper.registerIcon("action", "tools-raster-reproject", this); |
211 |
IconThemeHelper.registerIcon("action", "view-export-georeferenced-raster", this); |
212 |
IconThemeHelper.registerIcon("action", "layer-saveas", this); |
213 |
IconThemeHelper.registerIcon("action", "layer-clip-raster", this); |
214 |
IconThemeHelper.registerIcon("action", "layer-zoom-res-level", this); |
215 |
IconThemeHelper.registerIcon("action", "layer-info-by-pixel", this); |
216 |
IconThemeHelper.registerIcon("action", "layer-vectorization", this); |
217 |
IconThemeHelper.registerIcon("action", "view-export-image", this); |
218 |
|
219 |
//Cursor
|
220 |
IconThemeHelper.registerIcon("cursor", "zoom-pixel-cursor", this); |
221 |
IconThemeHelper.registerIcon("cursor", "hor-arrow-cursor", this); |
222 |
IconThemeHelper.registerIcon("cursor", "ver-arrow-cursor", this); |
223 |
IconThemeHelper.registerIcon("cursor", "inclder-arrow-cursor", this); |
224 |
IconThemeHelper.registerIcon("cursor", "inclizq-arrow-cursor", this); |
225 |
IconThemeHelper.registerIcon("cursor", "shear-y-cursor", this); |
226 |
IconThemeHelper.registerIcon("cursor", "shear-x-cursor", this); |
227 |
IconThemeHelper.registerIcon("cursor", "rotate-cursor", this); |
228 |
IconThemeHelper.registerIcon("cursor", "rot-inf-der-cursor", this); |
229 |
IconThemeHelper.registerIcon("cursor", "rot-inf-izq-cursor", this); |
230 |
IconThemeHelper.registerIcon("cursor", "rot-sup-der-cursor", this); |
231 |
IconThemeHelper.registerIcon("cursor", "rot-sup-izq-cursor", this); |
232 |
IconThemeHelper.registerIcon("cursor", "point-select-cursor", this); |
233 |
IconThemeHelper.registerIcon("cursor", "hand-cursor", this); |
234 |
IconThemeHelper.registerIcon("cursor", "rectangle-select-cursor", this); |
235 |
IconThemeHelper.registerIcon("cursor", "not-valid-cursor", this); |
236 |
IconThemeHelper.registerIcon("cursor", "line-cursor", this); |
237 |
IconThemeHelper.registerIcon("cursor", "polygon-cursor", this); |
238 |
IconThemeHelper.registerIcon("cursor", "point-cursor", this); |
239 |
|
240 |
//Other
|
241 |
IconThemeHelper.registerIcon(null, "forward-icon", this); |
242 |
IconThemeHelper.registerIcon(null, "backward-icon", this); |
243 |
IconThemeHelper.registerIcon(null, "blank-icon", this); |
244 |
IconThemeHelper.registerIcon(null, "addlayer-icon", this); |
245 |
IconThemeHelper.registerIcon(null, "delall-icon", this); |
246 |
IconThemeHelper.registerIcon(null, "back-icon", this); |
247 |
IconThemeHelper.registerIcon(null, "next-icon", this); |
248 |
IconThemeHelper.registerIcon(null, "undo-icon", this); |
249 |
IconThemeHelper.registerIcon(null, "pixel-increase", this); |
250 |
IconThemeHelper.registerIcon(null, "pref-raster-icon", this); |
251 |
IconThemeHelper.registerIcon(null, "back-icon", this); |
252 |
IconThemeHelper.registerIcon(null, "next-icon", this); |
253 |
IconThemeHelper.registerIcon(null, "undo-icon", this); |
254 |
//IconThemeHelper.registerIcon(null, "save-raster", this);
|
255 |
IconThemeHelper.registerIcon(null, "pixel-increase", this); |
256 |
//IconThemeHelper.registerIcon(null, "select-raster", this);
|
257 |
IconThemeHelper.registerIcon(null, "pref-raster-icon", this); |
258 |
IconThemeHelper.registerIcon(null, "reset-icon", this); |
259 |
IconThemeHelper.registerIcon(null, "tfwload-icon", this); |
260 |
IconThemeHelper.registerIcon(null, "centerraster-icon", this); |
261 |
IconThemeHelper.registerIcon(null, "increase-icon", this); |
262 |
IconThemeHelper.registerIcon(null, "decrease-icon", this); |
263 |
IconThemeHelper.registerIcon(null, "selectzoomarea-icon", this); |
264 |
IconThemeHelper.registerIcon(null, "prevzoom-icon", this); |
265 |
IconThemeHelper.registerIcon(null, "fullview-icon", this); |
266 |
IconThemeHelper.registerIcon(null, "exporttoascii-icon", this); |
267 |
IconThemeHelper.registerIcon(null, "exporttocsv-icon", this); |
268 |
IconThemeHelper.registerIcon(null, "importfromcsv-icon", this); |
269 |
IconThemeHelper.registerIcon(null, "exit-icon", this); |
270 |
IconThemeHelper.registerIcon(null, "options-icon", this); |
271 |
IconThemeHelper.registerIcon(null, "add-icon", this); |
272 |
IconThemeHelper.registerIcon(null, "centerpoint-icon", this); |
273 |
IconThemeHelper.registerIcon(null, "selectrgb-icon", this); |
274 |
IconThemeHelper.registerIcon(null, "focus-icon", this); |
275 |
IconThemeHelper.registerIcon(null, "point-icon", this); |
276 |
IconThemeHelper.registerIcon(null, "line-icon", this); |
277 |
IconThemeHelper.registerIcon(null, "polygon-icon", this); |
278 |
IconThemeHelper.registerIcon(null, "import-icon", this); |
279 |
IconThemeHelper.registerIcon(null, "round-icon", this); |
280 |
//IconThemeHelper.registerIcon(null, "rois-icon", this);
|
281 |
IconThemeHelper.registerIcon(null, "fullextent-icon", this); |
282 |
IconThemeHelper.registerIcon(null, "selecttool-icon", this); |
283 |
IconThemeHelper.registerIcon(null, "forward-icon", this); |
284 |
IconThemeHelper.registerIcon(null, "backward-icon", this); |
285 |
IconThemeHelper.registerIcon(null, "datatype-icon", this); |
286 |
IconThemeHelper.registerIcon(null, "setviewprojection-raster-icon", this); |
287 |
IconThemeHelper.registerIcon(null, "gvsig-icon", this); |
288 |
IconThemeHelper.registerIcon(null, "gvsig-icon16x16", this); |
289 |
} |
290 |
|
291 |
public void registerMenuElements() { |
292 |
// Creaci?n del punto de extensi?n para registrar paneles en el cuadro de propiedades.
|
293 |
ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager(); |
294 |
ExtensionPoint point = extensionPoints.get("GenericToolBarGroup");
|
295 |
point.setDescription("Punto de extension para los grupos de menus del GenericToolBarPanel");
|
296 |
|
297 |
point = extensionPoints.get("GenericToolBarMenu");
|
298 |
point.setDescription("Punto de extension para los submenus del GenericToolBarPanel");
|
299 |
//point.append("RasterProperties", "", RasterPropertiesTocMenuEntry.getSingleton());
|
300 |
point.append("SelectLayer", "", SelectLayerTocMenuEntry.getSingleton()); |
301 |
point.append("HistogramPanel", "", HistogramTocMenuEntry.getSingleton()); |
302 |
point.append("ViewColorTable", "",ColorTableTocMenuEntry.getSingleton()); |
303 |
if(RasterLocator.getManager().isOverviewBuilderSupported())
|
304 |
point.append("Overviews", "", OverviewsTocMenuEntry.getSingleton()); |
305 |
point.append("RoisManager", "", ROIManagerTocMenuEntry.getSingleton()); |
306 |
point.append("ViewRasterAnalysis", "", ViewRasterAnalysisTocMenuEntry.getSingleton()); |
307 |
point.append("ZoomResolutionLevel", "", ZoomResolutionLevelTocMenuEntry.getSingleton()); |
308 |
|
309 |
point.append("SaveAs", "", SaveAsTocMenuEntry.getSingleton()); |
310 |
point.append("ClippingPanel", "", ClippingTocMenuEntry.getSingleton()); |
311 |
point.append("SaveViewToRaster", "", SaveViewToRasterTocMenuEntry.getSingleton()); |
312 |
point.append("SaveViewToImageRaster", "", SaveViewToImageTocMenuEntry.getSingleton()); |
313 |
|
314 |
point.append("FilterPanel", "", FilterTocMenuEntry.getSingleton()); |
315 |
point.append("EnhancedPanel", "", EnhancedTocMenuEntry.getSingleton()); |
316 |
point.append("InfoByPoint", "", InfoByRasterPointTocMenuEntry.getSingleton()); |
317 |
point.append("LayerDatatype", "", LayerDatatypeTocMenuEntry.getSingleton()); |
318 |
|
319 |
point.append("GeoLocation", "", GeoLocationTocMenuEntry.getSingleton()); |
320 |
point.append("SetProjection", "", SetViewProjectionTocMenuEntry.getSingleton()); |
321 |
|
322 |
} |
323 |
|
324 |
public boolean isEnabled() { |
325 |
org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager().getActiveWindow(); |
326 |
if (f == null) |
327 |
return false; |
328 |
if (f instanceof AbstractViewPanel) { |
329 |
FLayers lyrs = ((AbstractViewPanel)f).getMapControl().getMapContext().getLayers(); |
330 |
for (int i = 0; i < lyrs.getLayersCount(); i++) |
331 |
if (lyrs.getLayer(i) instanceof FLyrRaster) |
332 |
return true; |
333 |
} |
334 |
return false; |
335 |
} |
336 |
|
337 |
/**
|
338 |
* Mostramos el control si hay alguna capa cargada.
|
339 |
*/
|
340 |
public boolean isVisible() { |
341 |
org.gvsig.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager().getActiveWindow(); |
342 |
if (f == null) |
343 |
return false; |
344 |
|
345 |
if (f instanceof AbstractViewPanel) { |
346 |
FLayers lyrs = ((AbstractViewPanel)f).getMapControl().getMapContext().getLayers(); |
347 |
if (lyrs.getLayersCount() > 0) |
348 |
return true; |
349 |
} |
350 |
|
351 |
return false; |
352 |
} |
353 |
|
354 |
/**
|
355 |
* Carga los valores de configuracion iniciales
|
356 |
*/
|
357 |
private void loadConfigurationValues() { |
358 |
autoRefreshView = Configuration.getValue("general_auto_preview", Boolean.TRUE).booleanValue(); |
359 |
askCoordinates = Configuration.getValue("general_ask_coordinates", Boolean.FALSE).booleanValue(); |
360 |
RasterLibrary.defaultNumberOfClasses = Configuration.getValue("general_defaultNumberOfClasses", Integer.valueOf(RasterLibrary.defaultNumberOfClasses)).intValue(); |
361 |
RasterLibrary.cacheSize = Configuration.getValue("cache_size", Long.valueOf(RasterLibrary.cacheSize)).longValue(); |
362 |
RasterLibrary.pageSize = Configuration.getValue("cache_pagesize", Double.valueOf(RasterLibrary.pageSize)).doubleValue(); |
363 |
RasterLibrary.pagsPerGroup = Configuration.getValue("cache_pagspergroup", Integer.valueOf(RasterLibrary.pagsPerGroup)).intValue(); |
364 |
RasterLibrary.blockHeight = Configuration.getValue("cache_blockheight", Integer.valueOf(RasterLibrary.blockHeight)).intValue(); |
365 |
//RasterLibrary.defaultNoDataValue = Configuration.getValue("nodata_value", Double.valueOf(RasterLibrary.defaultNoDataValue)).doubleValue();
|
366 |
} |
367 |
|
368 |
@SuppressWarnings("deprecation") |
369 |
public void actionConfigurationChanged(ConfigurationEvent e) { |
370 |
if (e.getKey().equals("nodata_transparency_enabled")) { |
371 |
boolean noDataTransparent = ((Boolean) e.getValue()).booleanValue(); |
372 |
IWindow[] f = PluginServices.getMDIManager().getAllWindows();
|
373 |
if (f == null) |
374 |
return;
|
375 |
for (int i = 0; i < f.length; i++) |
376 |
if (f[i] instanceof AbstractViewPanel) { |
377 |
AbstractViewPanel vista = (AbstractViewPanel) f[i]; |
378 |
ViewDocument model = vista.getModel(); |
379 |
MapContext map = model.getMapContext(); |
380 |
FLayers lyrs = map.getLayers(); |
381 |
|
382 |
ArrayList<FLayer> list = RasterToolsUtil.getRasterLayerList(lyrs, null); |
383 |
for (int j = 0; j < list.size(); j++) |
384 |
if(list.get(j) instanceof FLyrRaster) |
385 |
((RasterDataStore)((FLyrRaster)list.get(j)).getDataStore()).getNoDataValue().setNoDataTransparent(noDataTransparent); |
386 |
} |
387 |
|
388 |
return;
|
389 |
} |
390 |
|
391 |
if (e.getKey().equals("general_auto_preview")) { |
392 |
if(e.getValue() instanceof String) |
393 |
autoRefreshView = new Boolean((String) e.getValue()).booleanValue(); |
394 |
if(e.getValue() instanceof Boolean) |
395 |
autoRefreshView = ((Boolean) e.getValue()).booleanValue();
|
396 |
return;
|
397 |
} |
398 |
|
399 |
if (e.getKey().equals("general_ask_coordinates")) { |
400 |
if(e.getValue() instanceof String) |
401 |
askCoordinates = new Boolean((String) e.getValue()).booleanValue(); |
402 |
if(e.getValue() instanceof Boolean) |
403 |
askCoordinates = ((Boolean) e.getValue()).booleanValue();
|
404 |
return;
|
405 |
} |
406 |
|
407 |
if (e.getKey().equals("general_defaultNumberOfClasses")) { |
408 |
if(e.getValue() instanceof String) |
409 |
try {
|
410 |
RasterLibrary.defaultNumberOfClasses = new Integer( |
411 |
(String) e.getValue()).intValue();
|
412 |
} catch (NumberFormatException exc) { |
413 |
//Valor por defecto en el n?mero de clases
|
414 |
} |
415 |
|
416 |
if(e.getValue() instanceof Integer) |
417 |
RasterLibrary.defaultNumberOfClasses = ((Integer) e.getValue()).intValue();
|
418 |
return;
|
419 |
} |
420 |
|
421 |
if (e.getKey().equals("cache_size")) { |
422 |
if(e.getValue() instanceof String) |
423 |
try {
|
424 |
RasterLibrary.cacheSize = new Long((String) e.getValue()).longValue(); |
425 |
} catch (NumberFormatException exc) { |
426 |
//Valor por defecto en la cache
|
427 |
} |
428 |
if(e.getValue() instanceof Long) |
429 |
RasterLibrary.cacheSize = ((Long) e.getValue()).longValue();
|
430 |
return;
|
431 |
} |
432 |
|
433 |
if (e.getKey().equals("cache_pagesize")) { |
434 |
if(e.getValue() instanceof String) |
435 |
try {
|
436 |
RasterLibrary.pageSize = new Double((String) e.getValue()) |
437 |
.doubleValue(); |
438 |
} catch (NumberFormatException exc) { |
439 |
//Valor por defecto en la cache
|
440 |
} |
441 |
|
442 |
if(e.getValue() instanceof Double) |
443 |
RasterLibrary.pageSize = ((Double) e.getValue()).doubleValue();
|
444 |
return;
|
445 |
} |
446 |
|
447 |
if (e.getKey().equals("cache_pagspergroup")) { |
448 |
if(e.getValue() instanceof String) |
449 |
try {
|
450 |
RasterLibrary.pagsPerGroup = new Integer((String) e |
451 |
.getValue()).intValue(); |
452 |
} catch (NumberFormatException exc) { |
453 |
//Valor por defecto en la cache
|
454 |
} |
455 |
|
456 |
if(e.getValue() instanceof Integer) |
457 |
RasterLibrary.pagsPerGroup = ((Integer) e.getValue()).intValue();
|
458 |
return;
|
459 |
} |
460 |
|
461 |
if (e.getKey().equals("cache_blockheight")) { |
462 |
if(e.getValue() instanceof String) |
463 |
try {
|
464 |
RasterLibrary.blockHeight = new Integer((String) e |
465 |
.getValue()).intValue(); |
466 |
} catch (NumberFormatException exc) { |
467 |
//Valor por defecto en la cache
|
468 |
} |
469 |
if(e.getValue() instanceof Integer) |
470 |
RasterLibrary.blockHeight = ((Integer) e.getValue()).intValue();
|
471 |
return;
|
472 |
} |
473 |
|
474 |
/*if (e.getKey().equals("nodata_value")) {
|
475 |
if(e.getValue() instanceof String)
|
476 |
try {
|
477 |
RasterLibrary.defaultNoDataValue = new Double((String) e
|
478 |
.getValue()).doubleValue();
|
479 |
} catch (NumberFormatException exc) {
|
480 |
//Valor por defecto en valor nodata
|
481 |
}
|
482 |
|
483 |
if(e.getValue() instanceof Double)
|
484 |
RasterLibrary.defaultNoDataValue = ((Double) e.getValue()).doubleValue();
|
485 |
return;
|
486 |
}*/
|
487 |
|
488 |
} |
489 |
|
490 |
public void execute(ITocItem item, FLayer[] selectedItems) { |
491 |
this.execute("SELECTIMAGE"); |
492 |
} |
493 |
|
494 |
public void postInitialize() { |
495 |
super.postInitialize();
|
496 |
new ToolboxRasterToolsLoader().registerTool();
|
497 |
} |
498 |
|
499 |
public boolean canQueryByAction() { |
500 |
return true; |
501 |
} |
502 |
|
503 |
public boolean isEnabled(String action) { |
504 |
//Las entradas en GenericToolBarModule est?n registradas con la misma etiqueta que el actionCommand
|
505 |
//De esta forma pueden recuperarse los TocMenuEntry del punto de extensi?n y ejecutar isEnable a
|
506 |
//trav?s de este.
|
507 |
if(getGenericToolBarMenuExtensionPoint() != null && getGenericToolBarMenuExtensionPoint().get(action) != null) { |
508 |
ExtensionBuilder ext = getGenericToolBarMenuExtensionPoint().get(action).getBuilder(); |
509 |
if(ext != null && ext instanceof AbstractTocContextMenuAction) { |
510 |
IWindow w = PluginServices.getMDIManager().getActiveWindow(); |
511 |
if(w instanceof AbstractViewPanel) { |
512 |
FLayers lyrs = ((AbstractViewPanel)w).getMapControl().getMapContext().getLayers(); |
513 |
FLayer[] actives = lyrs.getActives();
|
514 |
return ((AbstractTocContextMenuAction)ext).isEnabled(null, actives); |
515 |
} |
516 |
} |
517 |
} |
518 |
return false; |
519 |
} |
520 |
|
521 |
public boolean isVisible(String action) { |
522 |
//Las entradas en GenericToolBarModule est?n registradas con la misma etiqueta que el actionCommand
|
523 |
//De esta forma pueden recuperarse los TocMenuEntry del punto de extensi?n y ejecutar isVisible a
|
524 |
//trav?s de este.
|
525 |
if(getGenericToolBarMenuExtensionPoint() != null && getGenericToolBarMenuExtensionPoint().get(action) != null) { |
526 |
ExtensionBuilder ext = getGenericToolBarMenuExtensionPoint().get(action).getBuilder(); |
527 |
if(ext != null && ext instanceof AbstractTocContextMenuAction) { |
528 |
IWindow w = PluginServices.getMDIManager().getActiveWindow(); |
529 |
if(w instanceof AbstractViewPanel) { |
530 |
FLayers lyrs = ((AbstractViewPanel)w).getMapControl().getMapContext().getLayers(); |
531 |
FLayer[] actives = lyrs.getActives();
|
532 |
return ((AbstractTocContextMenuAction)ext).isVisible(null, actives); |
533 |
} |
534 |
} |
535 |
} |
536 |
return false; |
537 |
} |
538 |
|
539 |
public ExtensionPoint getGenericToolBarMenuExtensionPoint() {
|
540 |
if(genericToolBarMenuExtensionPoint == null) { |
541 |
ExtensionPointManager extensionPoints = ToolsLocator.getExtensionPointManager(); |
542 |
genericToolBarMenuExtensionPoint = extensionPoints.get("GenericToolBarMenu");
|
543 |
} |
544 |
return genericToolBarMenuExtensionPoint;
|
545 |
} |
546 |
} |