Statistics
| Revision:

root / trunk / extensions / extRasterTools-SE / src / org / gvsig / rastertools / enhanced / ui / EnhancedListener.java @ 20061

History | View | Annotate | Download (19.1 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 */
19
package org.gvsig.rastertools.enhanced.ui;
20

    
21
import java.awt.event.ActionEvent;
22
import java.awt.event.ActionListener;
23
import java.io.File;
24
import java.util.ArrayList;
25

    
26
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
27
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
28
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
29
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
30
import org.gvsig.raster.IProcessActions;
31
import org.gvsig.raster.beans.canvas.GCanvasEvent;
32
import org.gvsig.raster.beans.canvas.IGCanvasListener;
33
import org.gvsig.raster.beans.canvas.layers.GraphicHistogram;
34
import org.gvsig.raster.beans.canvas.layers.functions.BaseFunction;
35
import org.gvsig.raster.beans.canvas.layers.functions.DensitySlicingLine;
36
import org.gvsig.raster.beans.canvas.layers.functions.LogaritmicExponentialLine;
37
import org.gvsig.raster.beans.canvas.layers.functions.SquareRootPowLine;
38
import org.gvsig.raster.beans.canvas.layers.functions.StraightLine;
39
import org.gvsig.raster.dataset.IRasterDataSource;
40
import org.gvsig.raster.dataset.Params;
41
import org.gvsig.raster.grid.filter.FilterTypeException;
42
import org.gvsig.raster.grid.filter.RasterFilterList;
43
import org.gvsig.raster.grid.filter.enhancement.EqualizationFilter;
44
import org.gvsig.raster.grid.filter.enhancement.LinearStretchEnhancementFilter;
45
import org.gvsig.raster.grid.filter.enhancement.LinearStretchParams;
46
import org.gvsig.raster.grid.filter.enhancement.LinearStretchParams.Stretch;
47
import org.gvsig.raster.hierarchy.IRasterRendering;
48
import org.gvsig.raster.util.RasterNotLoadException;
49
import org.gvsig.raster.util.RasterToolsUtil;
50
import org.gvsig.raster.util.process.FilterProcess;
51
import org.gvsig.rastertools.enhanced.graphics.HistogramGraphicBase;
52
import org.gvsig.rastertools.enhanced.graphics.HistogramGraphicBase.HistogramStatus;
53

    
54
import com.iver.andami.PluginServices;
55
/**
56
 * Gestor de eventos de los paneles de gr?ficas y controles.
57
 * 
58
 * 21/02/2008
59
 * @author Nacho Brodin nachobrodin@gmail.com
60
 */
61
public class EnhancedListener implements ActionListener, IGCanvasListener, ButtonsPanelListener, IProcessActions {
62
        private SelectorsPanel   selectorsPanel  = null;
63
        private GraphicsPanel    graphicsPanel   = null;
64
        private EnhancedDialog   enhancedDialog  = null;
65
        private PreviewFiltering filteredPreview = null;
66
        private EnhancedHistogramController  enhancedManager = null;
67
        
68
        /**
69
         * Constructor
70
         * @param selectorsPanel Panel con los selectores de opciones
71
         * @param graphicsPanel Panel con los gr?ficos
72
         * @param enhancedPanel Panel base con la previsualizaci?n
73
         * @param enhancedDialog Dialogo general
74
         * @param filteredPreview Preprocesado para la preview
75
         */
76
        public EnhancedListener(SelectorsPanel selectorsPanel, 
77
                                                        GraphicsPanel graphicsPanel, 
78
                                                        EnhancedDialog enhancedDialog, 
79
                                                        PreviewFiltering filteredPreview) {
80
                this.selectorsPanel = selectorsPanel;
81
                this.graphicsPanel = graphicsPanel;
82
                this.enhancedDialog = enhancedDialog;
83
                this.filteredPreview = filteredPreview;
84
                
85
                
86
                enhancedManager = new EnhancedHistogramController(graphicsPanel.getInputHistogram(), graphicsPanel.getOutputHistogram(), enhancedDialog);
87
                
88
                selectorsPanel.getHistogramType().addActionListener(this);
89
                selectorsPanel.getDrawType().addActionListener(this);
90
                selectorsPanel.getBand(null).addActionListener(this);
91
                selectorsPanel.getEnhancedType().addActionListener(this);
92
                graphicsPanel.getLevels().addActionListener(this);
93
                graphicsPanel.getRGB().addActionListener(this);
94
        }
95
        
96
        /*
97
         * (non-Javadoc)
98
         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
99
         */
100
        public void actionPerformed(ActionEvent e) {
101
                //Cambio del tipo de de dibujado del histograma
102
                if(e.getSource() == selectorsPanel.getDrawType()) {
103
                        if(((String)selectorsPanel.getDrawType().getSelectedItem()).equals("Fill")) {
104
                                graphicsPanel.getInputHistogram().setType(GraphicHistogram.TYPE_FILL);
105
                                graphicsPanel.getOutputHistogram().setType(GraphicHistogram.TYPE_FILL);
106
                        }
107
                        if(((String)selectorsPanel.getDrawType().getSelectedItem()).equals("Line")) {
108
                                graphicsPanel.getInputHistogram().setType(GraphicHistogram.TYPE_LINE);
109
                                graphicsPanel.getOutputHistogram().setType(GraphicHistogram.TYPE_LINE);
110
                        }
111
                        graphicsPanel.getInputHistogram().getCanvas().repaint();
112
                        graphicsPanel.getOutputHistogram().getCanvas().repaint();
113
                }
114

    
115
                // Cambio el tipo de visualizacion del histograma
116
                if (e.getSource() == selectorsPanel.getHistogramType()) {
117
                        if (((String) selectorsPanel.getHistogramType().getSelectedItem()).equals("Standard")) {
118
                                graphicsPanel.getOutputHistogram().setHistogramType(GraphicHistogram.VIEW_LINEAL);
119
                        }
120
                        if (((String) selectorsPanel.getHistogramType().getSelectedItem()).equals("Cumulative")) {
121
                                graphicsPanel.getOutputHistogram().setHistogramType(GraphicHistogram.VIEW_ACUMMULATED);
122
                        }
123
                        if (((String) selectorsPanel.getHistogramType().getSelectedItem()).equals("Logarithmic")) {
124
                                graphicsPanel.getOutputHistogram().setHistogramType(GraphicHistogram.VIEW_LOGARITHMIC);
125
                        }
126
                        if (((String) selectorsPanel.getHistogramType().getSelectedItem()).equals("Cumulative Logarithmic")) {
127
                                graphicsPanel.getOutputHistogram().setHistogramType(GraphicHistogram.VIEW_ACUMMULATEDLOG);
128
                        }
129
                        graphicsPanel.getOutputHistogram().getCanvas().repaint();
130
                }
131

    
132
                // Seleccion de modo RGB o normal
133
                if (e.getSource() == graphicsPanel.getRGB()) {
134
                        graphicsPanel.updateHistogram();
135
                        updatePreview();
136
                }
137
                
138
                //Cambio de banda
139
                if(e.getSource() == selectorsPanel.getBand(null)) {
140
                        if(((String)selectorsPanel.getBand(null).getSelectedItem()).equals("Red")) {
141
                                graphicsPanel.getInputHistogram().setHistogramDrawed(HistogramGraphicBase.RED);
142
                                graphicsPanel.getOutputHistogram().setHistogramDrawed(HistogramGraphicBase.RED);
143
                        }
144
                        if(((String)selectorsPanel.getBand(null).getSelectedItem()).equals("Green")) {
145
                                graphicsPanel.getInputHistogram().setHistogramDrawed(HistogramGraphicBase.GREEN);
146
                                graphicsPanel.getOutputHistogram().setHistogramDrawed(HistogramGraphicBase.GREEN);
147
                        }
148
                        if(((String)selectorsPanel.getBand(null).getSelectedItem()).equals("Blue")) {
149
                                graphicsPanel.getInputHistogram().setHistogramDrawed(HistogramGraphicBase.BLUE);
150
                                graphicsPanel.getOutputHistogram().setHistogramDrawed(HistogramGraphicBase.BLUE);
151
                        }
152

    
153
                        updateTypeSelected();
154
                        
155
                        HistogramStatus status = graphicsPanel.getOutputHistogram().getHistogramStatus(HistogramGraphicBase.DRAWED);
156

    
157
                        switch (status.getGraphicHistogram().getType()) {
158
                                case GraphicHistogram.TYPE_FILL:
159
                                        selectorsPanel.getDrawType().setSelectedItem("Fill");
160
                                        break;
161
                                default:
162
                                        selectorsPanel.getDrawType().setSelectedItem("Line");
163
                                        break;
164
                        }
165

    
166
                        switch (status.getGraphicHistogram().getTypeViewed()) {
167
                                case GraphicHistogram.VIEW_ACUMMULATED:
168
                                        selectorsPanel.getHistogramType().setSelectedItem("Cumulative");
169
                                        break;
170
                                case GraphicHistogram.VIEW_LOGARITHMIC:
171
                                        selectorsPanel.getHistogramType().setSelectedItem("Logarithmic");
172
                                        break;
173
                                case GraphicHistogram.VIEW_ACUMMULATEDLOG:
174
                                        selectorsPanel.getHistogramType().setSelectedItem("Cumulative Logarithmic");
175
                                        break;
176
                                default:
177
                                        selectorsPanel.getHistogramType().setSelectedItem("Standard");
178
                                        break;
179
                        }
180
                }
181
                
182
                //Cambio de operaci?n
183
                if(e.getSource() == selectorsPanel.getEnhancedType()) {
184
                        graphicsPanel.setLevelsEnabled(false);
185
                        
186
                        if(((String)selectorsPanel.getEnhancedType().getSelectedItem()).equals("Lineal")) {
187
                                graphicsPanel.getInputHistogram().setFunction(GraphicHistogram.FUNCTION_LINEAL);
188
                                updatePreview();
189
                        }
190
                        if(((String)selectorsPanel.getEnhancedType().getSelectedItem()).equals("Gaussian")) {
191

    
192
                        }
193
                        if(((String)selectorsPanel.getEnhancedType().getSelectedItem()).equals("Logaritmic")) {
194
                                graphicsPanel.getInputHistogram().setFunction(GraphicHistogram.FUNCTION_LOGARIT);
195
                                updatePreview();
196
                        }
197
                        if(((String)selectorsPanel.getEnhancedType().getSelectedItem()).equals("Exponential")) {
198
                                graphicsPanel.getInputHistogram().setFunction(GraphicHistogram.FUNCTION_EXPONENT);
199
                                updatePreview();
200
                        }
201
                        if(((String)selectorsPanel.getEnhancedType().getSelectedItem()).equals("Equalization")) {
202
                                int[] renderBands = enhancedDialog.getLayer().getRender().getRenderBands();
203
                                String values = "";
204
                                for (int i = 0; i < renderBands.length; i++) 
205
                                        values += renderBands[i] + " ";
206
                                values = values.trim();
207
                                Params params = new Params();
208
                                params.setParam("Histogram", graphicsPanel.getHistogram(), -1, null);
209
                                params.setParam("RenderBands", values, -1, null);
210
                                params.setParam("EcualizedBands", new int[]{0, 1, 2}, -1, null);
211
                                filteredPreview.addNewParam("equalization", params, EqualizationFilter.class);
212
                        }
213
                        if(((String)selectorsPanel.getEnhancedType().getSelectedItem()).equals("Square-root")) {
214
                                graphicsPanel.getInputHistogram().setFunction(GraphicHistogram.FUNCTION_SQUARE_ROOT);
215
                                updatePreview();
216
                        }
217
                        if(((String)selectorsPanel.getEnhancedType().getSelectedItem()).equals("Level-slice")) {
218
                                graphicsPanel.setLevelsEnabled(true);
219
                                graphicsPanel.getInputHistogram().setFunction(GraphicHistogram.FUNCTION_DENSITY);
220

    
221
                                // Establece el numero de niveles en el cuadro de texto
222
                                HistogramStatus status = graphicsPanel.getInputHistogram().getHistogramStatus(HistogramGraphicBase.DRAWED);
223
                                graphicsPanel.getLevels().setValue(new Long(((DensitySlicingLine) status.getBaseFunction()).getLevels()));
224
                                updatePreview();
225
                        }
226
                }
227
                
228
                //Cambio de tipo (estandar/acumulado)
229
                if(e.getSource() == selectorsPanel.getHistogramType()) {
230
                        if(((String)selectorsPanel.getHistogramType().getSelectedItem()).equals("Standard")) {
231
                                
232
                        }
233
                        if(((String)selectorsPanel.getHistogramType().getSelectedItem()).equals("Cumulative")) {
234
                                
235
                        }
236
                }
237
                
238
                //Cambio en el n?mero de niveles
239
                if(e.getSource() == graphicsPanel.getLevels()) {
240
                        Long lValue = (Long)graphicsPanel.getLevels().getValue();
241
                        int value = lValue.intValue();
242
                        if(value > 30 || value < 2) {
243
                                RasterToolsUtil.messageBoxInfo("range_wrong" + " [2-30]", null);
244
                                if(value > 30)
245
                                        value = 30;
246
                                if(value < 2)
247
                                        value = 2;
248
                        }
249
                        graphicsPanel.getLevels().setValue(new Long(value));
250
                        try {
251
                                graphicsPanel.getInputHistogram().setLevel(value);
252
                                updatePreview();
253
                        } catch (NumberFormatException exc) {
254
                                //No asignamos el nivel
255
                        }
256
                }
257
        }
258
        
259
        /**
260
         * Actualiza el combo de EnhancedType para que este seleccionado siempre el
261
         * item que corresponde con la grafica mostrada en ese momento
262
         */
263
        private void updateTypeSelected() {
264
                HistogramStatus status = graphicsPanel.getInputHistogram().getHistogramStatus(HistogramGraphicBase.DRAWED);
265

    
266
                if (status.getBaseFunction().getClass().equals(DensitySlicingLine.class))
267
                        selectorsPanel.setSelectedEnhancedType("Level-slice");
268

    
269
                if (status.getBaseFunction().getClass().equals(StraightLine.class))
270
                        selectorsPanel.setSelectedEnhancedType("Lineal");
271

    
272
                if (status.getBaseFunction().getClass().equals(EqualizationFilter.class))
273
                        selectorsPanel.setSelectedEnhancedType("Equalization");
274

    
275
                if (status.getBaseFunction().getClass().equals(SquareRootPowLine.class))
276
                        selectorsPanel.setSelectedEnhancedType("Square-root");
277

    
278
                if (status.getBaseFunction().getClass().equals(LogaritmicExponentialLine.class)) {
279
                        if (((StraightLine) status.getBaseFunction()).getValueFunction() >= 0)
280
                                selectorsPanel.setSelectedEnhancedType("Logaritmic");
281
                        else
282
                                selectorsPanel.setSelectedEnhancedType("Exponential");
283
                }
284
        }
285
        
286
        /**
287
         * En la primera carga se define cada banda en los histogramas, para dejarlo en
288
         * su estado logico.
289
         * @param stretch
290
         * @param band
291
         */
292
        private void firstLoadBand(Stretch stretch, int band) {
293
                boolean firstBand = ((band == HistogramGraphicBase.GRAY) || (band == HistogramGraphicBase.RED));
294

    
295
                graphicsPanel.getInputHistogram().setHistogramDrawed(band);
296
                
297
                BaseFunction baseFunction = null;
298
                HistogramStatus status;
299
                status = graphicsPanel.getInputHistogram().getHistogramStatus(band);
300
                if (status == null)
301
                        return;
302
                
303
                switch (stretch.functionType) {
304
                        case 0:
305
                                if (firstBand) {
306
                                        selectorsPanel.getEnhancedType().setSelectedItem("Lineal");
307
                                        graphicsPanel.setLevelsEnabled(false);
308
                                }
309
                                baseFunction = new StraightLine(status.getBaseFunction().getColor());
310
                                ((StraightLine) baseFunction).clearSquares();
311
                                for (int i = 0; i < stretch.stretchIn.length; i++) {
312
                                        ((StraightLine) baseFunction).addSquare(
313
                                                (stretch.stretchIn[i] - stretch.minValue) / (stretch.maxValue - stretch.minValue),
314
                                                stretch.stretchOut[i] / 255.0D);
315
                                }
316
                                break;
317
                        case 1:
318
                                if (firstBand) {
319
                                        if (stretch.valueFunction >= 0)
320
                                                selectorsPanel.getEnhancedType().setSelectedItem("Logaritmic");
321
                                        else
322
                                                selectorsPanel.getEnhancedType().setSelectedItem("Exponential");
323
                                        graphicsPanel.setLevelsEnabled(false);
324
                                }
325
                                baseFunction = new LogaritmicExponentialLine(status.getBaseFunction().getColor(), stretch.valueFunction);
326
                                break;
327
                        case 2:
328
                                if (firstBand) {
329
                                        selectorsPanel.getEnhancedType().setSelectedItem("Square-root");
330
                                        graphicsPanel.setLevelsEnabled(false);
331
                                }
332
                                baseFunction = new SquareRootPowLine(status.getBaseFunction().getColor(), stretch.valueFunction);
333
                                break;
334
                        case 3:
335
                                if (firstBand) {
336
                                        selectorsPanel.getEnhancedType().setSelectedItem("Level-slice");
337
                                        graphicsPanel.setLevelsEnabled(true);
338
                                }
339
                                baseFunction = new DensitySlicingLine(status.getBaseFunction().getColor(), (int) stretch.valueFunction);
340
                                break;
341
                }
342
                if (baseFunction != null) {
343
                        status.setBaseFunction(baseFunction);
344
                        graphicsPanel.getInputHistogram().setHistogramDrawed(band);
345
                }
346
        }
347
        
348
        /**
349
         * En la primera carga se han de establecer todos los histogramas de entrada
350
         * a sus valores correspondientes segun el filtro.
351
         */
352
        public void firstLoad() {
353
                RasterFilterList rasterFilterList = ((FLyrRasterSE) enhancedDialog.getLayer()).getRenderFilterList();
354

    
355
                LinearStretchEnhancementFilter filter = (LinearStretchEnhancementFilter) rasterFilterList.getByName(LinearStretchEnhancementFilter.names[0]);
356
                if (filter != null) {
357
                        LinearStretchParams stretch = filter.getStretchs();
358
                        
359
                        firstLoadBand(stretch.blue, HistogramGraphicBase.BLUE);
360
                        firstLoadBand(stretch.green, HistogramGraphicBase.GREEN);
361
                        firstLoadBand(stretch.red, HistogramGraphicBase.RED);
362
                        firstLoadBand(stretch.gray, HistogramGraphicBase.GRAY);
363
                        graphicsPanel.getRGB().setSelected(stretch.rgb);
364
                }
365
                graphicsPanel.getInputHistogram().repaint();
366
        }
367
        
368
        /**
369
         * Coge los datos que hay en los histogramas y los aplica a la vista previa
370
         */
371
        public void updatePreview() {
372
                enhancedManager.updatePreview();
373
                enhancedManager.updateHistogramOut();
374
        }
375

    
376
        /**
377
         * Coge los datos que hay en los histogramas y los aplica en el histograma de salida
378
         */
379
        private void updateHistogramOut() {
380
                updateTypeSelected();
381
                enhancedManager.updatePreview();
382
                enhancedManager.updateHistogramOut();
383
        }
384
        
385
        /*
386
         * (non-Javadoc)
387
         * @see org.gvsig.raster.beans.canvas.IGCanvasListener#actionDataChanged(org.gvsig.raster.beans.canvas.GCanvasEvent)
388
         */
389
        public void actionDataChanged(GCanvasEvent e) {
390
                if (e.getKey().equals("minmax")) {
391
                        updatePreview();
392
                        return;
393
                }
394
                if (e.getKey().equals("line")) {
395
                        updatePreview();
396
                        return;
397
                }
398
        }
399

    
400
        /*
401
         * (non-Javadoc)
402
         * @see org.gvsig.raster.beans.canvas.IGCanvasListener#actionDataDragged(org.gvsig.raster.beans.canvas.GCanvasEvent)
403
         */
404
        public void actionDataDragged(GCanvasEvent e) {
405
                if (e.getKey().equals("minmax")) {
406
                        updateHistogramOut();
407
                        return;
408
                }
409
                if (e.getKey().equals("line")) {
410
                        updateHistogramOut();
411
                        return;
412
                }
413
        }
414

    
415
        /*
416
         * (non-Javadoc)
417
         * @see org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener#actionButtonPressed(org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent)
418
         */
419
        public void actionButtonPressed(ButtonsPanelEvent e) {
420
                switch (e.getButton()) {
421
                        case ButtonsPanel.BUTTON_ACCEPT:
422
                                apply();
423
                                enhancedDialog.close();
424
                                break;
425
                        case ButtonsPanel.BUTTON_CANCEL:
426
                                cancel();
427
                                enhancedDialog.close();
428
                                break;
429
                        case ButtonsPanel.BUTTON_APPLY:
430
                                apply();
431
                                break;
432
                }
433
        }
434
        
435
        /**
436
         * Que acciones se ejecutaran al haber presionado el bot?n aceptar o aplicar
437
         */
438
        public void apply() {
439
                IRasterDataSource raster = ((FLyrRasterSE) enhancedDialog.getLayer()).getDataSource();
440
                if (raster == null)
441
                        return;
442

    
443
                String path = null;
444
                if (!enhancedDialog.getNewOrSaveLayerPanel().getRadioOnlyView().isSelected()) {
445
                        path = enhancedDialog.getNewOrSaveLayerPanel().getFileSelected();
446
                        if (path == null)
447
                                return;
448
                }
449

    
450
                //Rendering rendering = ((FLyrRasterSE) getFilterPanel().getLayer()).getRender();
451
                IRasterRendering rendering = (IRasterRendering) enhancedDialog.getLayer();
452

    
453
                // Array para guardar los filtros que se van a usar en forma de ParamStruct
454
                ArrayList listFilterUsed = enhancedDialog.getFilteredPreview().applyFilters(rendering);
455

    
456
                if (enhancedDialog.getNewOrSaveLayerPanel().getRadioOnlyView().isSelected()) {
457
                        try {
458
                                FilterProcess.addSelectedFilters(rendering.getRenderFilterList(), listFilterUsed);
459
                                ((FLyrRasterSE) enhancedDialog.getLayer()).setRenderFilterList(rendering.getRenderFilterList());
460
                                enhancedDialog.getLayer().getMapContext().invalidate();
461
                        } catch (FilterTypeException e) {
462
                                RasterToolsUtil.messageBoxError(PluginServices.getText(this, "error_adding_filters"), this, e);
463
                        }
464
                } else {
465
                        FilterProcess filterProcess = new FilterProcess();
466
                        filterProcess.setActions(this);
467
                        filterProcess.addParam("rendering", rendering);
468
                        filterProcess.addParam("filename", path);
469
                        filterProcess.addParam("rasterdatasource", raster);
470
                        filterProcess.addParam("listfilterused", listFilterUsed);
471
                        filterProcess.start();
472
                }
473
        }
474
        
475
        /**
476
         * Volvemos todo a la normalidad cuando se cancela
477
         */
478
        public void cancel() {
479
                if (enhancedDialog.getLayer() != null)
480
                        enhancedDialog.getLayer().getMapContext().invalidate();
481
        }
482
        
483

    
484
        /**
485
         * Acciones que se realizan al finalizar de crear los recortes de imagen.
486
         * Este m?todo es llamado por el thread TailRasterProcess al finalizar.
487
         */
488
        public void loadLayerInToc(String fileName) {
489
                if (!enhancedDialog.getNewOrSaveLayerPanel().getRadioNewLayer().isSelected())
490
                        return;
491
                if(!new File(fileName).exists())
492
                        return;
493
                try {
494
                        RasterToolsUtil.loadLayer(enhancedDialog.getViewName(), fileName, null);
495
                } catch (RasterNotLoadException e) {
496
                        RasterToolsUtil.messageBoxError("error_cargar_capa", this, e);
497
                }
498

    
499
                if(enhancedDialog != null)
500
                        enhancedDialog.getNewOrSaveLayerPanel().updateNewLayerText();
501
        }
502

    
503
        /*
504
         * (non-Javadoc)
505
         * @see org.gvsig.raster.IProcessActions#end(java.lang.Object)
506
         */
507
        public void end(Object param) {
508
                loadLayerInToc((String) param);
509
        }
510
        
511
        public void interrupted() {}
512
}