Statistics
| Revision:

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

History | View | Annotate | Download (7.24 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.rastertools.enhanced.graphics.HistogramGraphicBase;
32

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

    
113
                        }
114
                        if(((String)selector.getEnhancedType().getSelectedItem()).equals("Logaritmic")) {
115

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

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

    
122
                        }
123
                        if(((String)selector.getEnhancedType().getSelectedItem()).equals("Square-root")) {
124

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

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

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