Statistics
| Revision:

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

History | View | Annotate | Download (7.58 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

    
24
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
25
import org.gvsig.raster.beans.canvas.GCanvasEvent;
26
import org.gvsig.raster.beans.canvas.IGCanvasListener;
27
import org.gvsig.raster.beans.canvas.layers.GraphicHistogram;
28
import org.gvsig.raster.beans.canvas.layers.MinMaxLines;
29
import org.gvsig.raster.beans.previewbase.PreviewBasePanel;
30
import org.gvsig.raster.beans.previewbase.PreviewFiltering;
31
import org.gvsig.raster.dataset.Params;
32
import org.gvsig.raster.grid.filter.enhancement.EcualizationFilter;
33
import org.gvsig.rastertools.enhanced.graphics.HistogramGraphicBase;
34

    
35
/**
36
 * Gestor de eventos de los paneles de gr?ficas y controles.
37
 * 
38
 * 21/02/2008
39
 * @author Nacho Brodin nachobrodin@gmail.com
40
 */
41
public class EnhancedListener implements ActionListener, IGCanvasListener {
42
        private SelectorsPanel            selector            = null;
43
        private GraphicsPanel             graphic             = null;
44
        private PreviewBasePanel          enhancedPanel       = null;
45
        private EnhancedDialog            enhancedDialog      = null;
46
        private PreviewFiltering          filteredPreview     = null;
47
        
48
        
49
        /**
50
         * Constructor
51
         * @param selectors Panel con los selectores de opciones
52
         * @param graphic Panel con los gr?ficos
53
         * @param enhancedPanel Panel base con la previsualizaci?n
54
         * @param enhandedDialog Dialogo general
55
         * @param filteredPreview Preprocesado para la preview
56
         */
57
        public EnhancedListener(SelectorsPanel selector, 
58
                                                        GraphicsPanel graphic, 
59
                                                        PreviewBasePanel enhancedPanel, 
60
                                                        EnhancedDialog enhancedDialog, 
61
                                                        PreviewFiltering filteredPreview) {
62
                this.selector = selector;
63
                this.graphic = graphic;
64
                this.enhancedPanel = enhancedPanel;
65
                this.enhancedDialog = enhancedDialog;
66
                this.filteredPreview = filteredPreview;
67
                
68
                selector.getHistogramType().addActionListener(this);
69
                selector.getDrawType().addActionListener(this);
70
                selector.getBand(null).addActionListener(this);
71
                selector.getEnhancedType().addActionListener(this);
72
        }
73
        
74
        /*
75
         * (non-Javadoc)
76
         * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
77
         */
78
        public void actionPerformed(ActionEvent e) {
79
                //Cambio del tipo de de dibujado del histograma
80
                if(e.getSource() == selector.getDrawType()) {
81
                        if(((String)selector.getDrawType().getSelectedItem()).equals("Fill")) {
82
                                graphic.getInputHistogram().setType(GraphicHistogram.TYPE_FILL);
83
                                graphic.getOutputHistogram().setType(GraphicHistogram.TYPE_FILL);
84
                        }
85
                        if(((String)selector.getDrawType().getSelectedItem()).equals("Line")) {
86
                                graphic.getInputHistogram().setType(GraphicHistogram.TYPE_LINE);
87
                                graphic.getOutputHistogram().setType(GraphicHistogram.TYPE_LINE);
88
                        }
89
                        graphic.getInputHistogram().getCanvas().repaint();
90
                        graphic.getOutputHistogram().getCanvas().repaint();
91
                }
92
                
93
                //Cambio de banda
94
                if(e.getSource() == selector.getBand(null)) {
95
                        if(((String)selector.getBand(null).getSelectedItem()).equals("Red")) {
96
                                graphic.getInputHistogram().setHistogramDrawed(HistogramGraphicBase.RED);
97
                        }
98
                        if(((String)selector.getBand(null).getSelectedItem()).equals("Green")) {
99
                                graphic.getInputHistogram().setHistogramDrawed(HistogramGraphicBase.GREEN);
100
                        }
101
                        if(((String)selector.getBand(null).getSelectedItem()).equals("Blue")) {
102
                                graphic.getInputHistogram().setHistogramDrawed(HistogramGraphicBase.BLUE);
103
                        }
104
                }
105
                
106
                //Cambio de operaci?n
107
                if(e.getSource() == selector.getEnhancedType()) {
108
                        graphic.setClipPercentEnabled(false);
109
                        graphic.setLevelsEnabled(false);
110
                        
111
                        if(((String)selector.getEnhancedType().getSelectedItem()).equals("Lineal")) {
112
                                graphic.setClipPercentEnabled(true);
113
                        }
114
                        if(((String)selector.getEnhancedType().getSelectedItem()).equals("Gaussian")) {
115

    
116
                        }
117
                        if(((String)selector.getEnhancedType().getSelectedItem()).equals("Logaritmic")) {
118

    
119
                        }
120
                        if(((String)selector.getEnhancedType().getSelectedItem()).equals("Exponential")) {
121

    
122
                        }
123
                        if(((String)selector.getEnhancedType().getSelectedItem()).equals("Equalization")) {
124
                                Params params = new Params();
125
                                params.setParam("Histogram", graphic.getHistogram(), -1, null);
126
                                params.setParam("RenderBands", "0 1 2", -1, null);
127
                                filteredPreview.addNewParam("ecualization", params, EcualizationFilter.class);
128
                        }
129
                        if(((String)selector.getEnhancedType().getSelectedItem()).equals("Square-root")) {
130

    
131
                        }
132
                        if(((String)selector.getEnhancedType().getSelectedItem()).equals("Level-slice")) {
133
                                graphic.setLevelsEnabled(true);
134
                        }
135
                }
136
                
137
                //Cambio de tipo (estandar/acumulado)
138
                if(e.getSource() == selector.getHistogramType()) {
139
                        if(((String)selector.getHistogramType().getSelectedItem()).equals("Standard")) {
140
                                
141
                        }
142
                        if(((String)selector.getHistogramType().getSelectedItem()).equals("Cumulative")) {
143
                                
144
                        }
145
                }
146
                
147
                manageMainButtons(e);
148
        }
149
        
150
        /**
151
         * Gestiona los eventos de los botones principales (Aceptar, Aplicar, Cancelar)
152
         * @param e
153
         */
154
        private void manageMainButtons(ActionEvent e) {
155
                if(e.getSource() == enhancedPanel.getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT)) {
156
                        /*Params params = new Params();
157
                        params.setParam("TailTrim",
158
                                        new Double(Math.round(0 * 100.0)),
159
                                        Params.SLIDER,
160
                                        new String[]{ "0", "100", "0", "1", "25" });
161
                        params.setParam("Stretch",
162
                                        new Double[][] {{new Double(0), new Double(1269)}, {new Double(0), new Double(1525)}, {new Double(0), new Double(888)}},
163
                                        Params.CHOICE,
164
                                        null);
165
                        params.setParam("StretchRGB",
166
                                        new Integer[] {new Integer(255)},
167
                                        Params.CHOICE,
168
                                        null);
169
                        filteredPreview.addNewParam("param1", params, LinearStretchEnhancementFilter.class);*/
170
                }
171
                if(e.getSource() == enhancedPanel.getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY)) {
172
                        
173
                }
174
                if(e.getSource() == enhancedPanel.getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL)) {
175
                        enhancedDialog.close();
176
                }
177
        }
178

    
179
        /*
180
         * (non-Javadoc)
181
         * @see org.gvsig.raster.beans.canvas.IGCanvasListener#actionDataChanged(org.gvsig.raster.beans.canvas.GCanvasEvent)
182
         */
183
        public void actionDataChanged(GCanvasEvent e) {
184
                if (e.getKey().equals("minmax")) {
185
                        MinMaxLines lines = (MinMaxLines) e.getValue();
186
                        System.out.println("Parado: " + lines.getMinDistance() + " " + lines.getMaxDistance());
187
                        return;
188
                }
189
                if (e.getKey().equals("line")) {
190
                        System.out.println("Linea parada");
191
                        return;
192
                }
193
        }
194

    
195
        /*
196
         * (non-Javadoc)
197
         * @see org.gvsig.raster.beans.canvas.IGCanvasListener#actionDataDragged(org.gvsig.raster.beans.canvas.GCanvasEvent)
198
         */
199
        public void actionDataDragged(GCanvasEvent e) {
200
                if (e.getKey().equals("minmax")) {
201
                        MinMaxLines lines = (MinMaxLines) e.getValue();
202
                        System.out.println("Moviendo: " + lines.getMinDistance() + " " + lines.getMaxDistance());
203
                        return;
204
                }
205
                if (e.getKey().equals("line")) {
206
                        System.out.println("Moviendo linea");
207
                        return;
208
                }
209
        }
210
}