Revision 27442 trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/MainListener.java

View differences:

MainListener.java
21 21
import java.awt.event.ActionEvent;
22 22
import java.awt.event.ActionListener;
23 23

  
24
import javax.swing.event.ChangeEvent;
25
import javax.swing.event.ChangeListener;
26

  
27 24
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
28 25
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
29 26
import org.gvsig.gui.beans.slidertext.listeners.SliderEvent;
......
51 48
 * 12/06/2008
52 49
 * @author Nacho Brodin nachobrodin@gmail.com
53 50
 */
54
public class MainListener implements ActionListener, ChangeListener, IProcessActions  {
51
public class MainListener implements ActionListener, IProcessActions  {
55 52
	private MainPanel                        panel                    = null;
56 53
	private FLyrRasterSE                     lyr                      = null;
57 54
	
......
83 80
		this.clipList.setProcessActions(this);
84 81
		this.vectList.setProcessActions(this);
85 82
		this.stretchList.setProcessActions(this);
86
		
83
		tabIndexSelected = 0;
87 84
	}
88 85
	
89 86
	/**
......
92 89
	 */
93 90
	private void setDataView(MainPanel prepPanel) {
94 91
		this.panel = prepPanel;
95
		panel.getNextPrevPanel().getNext().addActionListener(this);
96
		panel.getNextPrevPanel().getPrev().addActionListener(this);
97
		panel.getNextPrevPanel().getNext().setEnabled(true);
98
		panel.getPreviewBasePanel().getTabbedPane().addChangeListener(this);
99
		panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY).addActionListener(this);
100
		panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT).addActionListener(this);
92
		panel.getPreviewBasePanel().getButtonsPanel().getButton(13).addActionListener(this);
93
		panel.getPreviewBasePanel().getButtonsPanel().getButton(14).addActionListener(this);
101 94
		panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL).addActionListener(this);
102 95
	}
103 96
		
......
125 118
		if(!panel.isEnableValueChangedEvent())
126 119
			return;
127 120
		
128
		tabIndexSelected = panel.getPreviewBasePanel().getTabbedPane().getSelectedIndex();
129
		
130 121
		//Bot?n de pantalla siguiente
131
		if(e.getSource() == panel.getNextPrevPanel().getNext()) {
132
			panel.getPreviewBasePanel().getTabbedPane().setSelectedIndex(++tabIndexSelected);
122
		if(e.getSource() == panel.getPreviewBasePanel().getButtonsPanel().getButton(13)) {
123
			if(tabIndexSelected < (panel.getPanelCount() - 1)) {
124
				panel.getPreviewBasePanel().setUniquePanel(panel.getPanel(++tabIndexSelected));
125
				panel.getPreviewBasePanel().getButtonsPanel().getButton(14).setEnabled(true);
126
				if(tabIndexSelected == (panel.getPanelCount() - 1)) 
127
					panel.getPreviewBasePanel().getButtonsPanel().getButton(13).setText("finalizar");
128
			} else { //Finalizar
129
				vectList.setProcessSource(gray);
130
				vectList.apply();
131
				if(dialog != null) {
132
					dialog.close();
133
					return;
134
				}
135
			}
133 136
		}
134 137
		
135 138
		//Bot?n de pantalla anterior		
136
		if(e.getSource() == panel.getNextPrevPanel().getPrev()) {
137
			panel.getPreviewBasePanel().getTabbedPane().setSelectedIndex(--tabIndexSelected);
139
		if(e.getSource() == panel.getPreviewBasePanel().getButtonsPanel().getButton(14)) {
140
			if(tabIndexSelected > 0) {
141
				panel.getPreviewBasePanel().setUniquePanel(panel.getPanel(--tabIndexSelected));
142
				panel.getPreviewBasePanel().getButtonsPanel().getButton(13).setText("siguiente");
143
				if(tabIndexSelected == 0) 
144
					panel.getPreviewBasePanel().getButtonsPanel().getButton(14).setEnabled(false);
145
			}
138 146
		}
139
		
140
		//Aplicar
141
		if(e.getSource() == panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY)) {
142
			vectList.setProcessSource(gray);
143
			vectList.apply();
144
		}
145
		
146
		//Aceptar
147
		if(e.getSource() == panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT)) {
148
			vectList.setProcessSource(gray);
149
			vectList.apply();
150
			if(dialog != null)
151
				dialog.close();
152
		}
153
		
147
				
154 148
		//Cancelar
155 149
		if(e.getSource() == panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL)) {
156 150
			if(dialog != null)
157 151
				dialog.close();
158 152
		}
159
	}
160
	
161
	/**
162
	 * Acciones realizadas cuando se varia la selecci?n de Tab
163
	 */
164
	private void changeTabActions() {
165
		//Mostrar u ocultar botones
166
		tabIndexSelected = panel.getPreviewBasePanel().getTabbedPane().getSelectedIndex();
167
		if(tabIndexSelected >= (panel.getPreviewBasePanel().getTabbedPane().getTabCount() - 1))
168
			panel.getNextPrevPanel().getNext().setEnabled(false);
169
		if(tabIndexSelected < (panel.getPreviewBasePanel().getTabbedPane().getTabCount() - 1))
170
			panel.getNextPrevPanel().getNext().setEnabled(true);
171
		if(tabIndexSelected <= 0)
172
			panel.getNextPrevPanel().getPrev().setEnabled(false);
173
		if(tabIndexSelected > 0)
174
			panel.getNextPrevPanel().getPrev().setEnabled(true);
153

  
154
		clipProcess();
155
		grayScaleProcess();
156
		stretchProcess();
175 157
		
176 158
		//Mostrar u ocultar preview
177
		if(tabIndexSelected == 0)
159
		if(tabIndexSelected == 0) {
178 160
			prevRender.setShowPreview(false);
179
		else
161
			panel.getPreviewBasePanel().refreshPreview();
162
		} else
180 163
			prevRender.setShowPreview(true);
181 164
		
165
		//panel.getPreviewBasePanel().refreshPreview();
166
	}
167
	
168
	/**
169
	 * Lanza el proceso de recorte
170
	 */
171
	private void clipProcess() {
182 172
		//Generaci?n de recorte
183 173
		if(tabIndexSelected == 1) {
184 174
			if(clip != null) 
185 175
				if(!RasterToolsUtil.messageBoxYesOrNot("clip_raster_again", this)) {
176
					prevRender.setShowPreview(true);
186 177
					panel.getPreviewBasePanel().refreshPreview();
187 178
					return;
188 179
				}
......
190 181
			clipList.setProcessSource(lyr);
191 182
			clipList.apply();
192 183
		}
193
		
184
	}
185
	
186
	/**
187
	 * Lanza el proceso de conversi?n a escala de grises
188
	 */
189
	private void grayScaleProcess() {
194 190
		//Generaci?n de raster preprocesado con escala de grises y posterizaci?n
195
		if(tabIndexSelected == 2 && panel.getPreviewBasePanel().getUserPanels().get(1) instanceof GrayConversionPanel) {
191
		if(tabIndexSelected == 2 && panel.getPanel(1) instanceof GrayConversionPanel) {
196 192
			if(gray != null) 
197 193
				if(!RasterToolsUtil.messageBoxYesOrNot("filter_raster_again", this)) {
194
					prevRender.setShowPreview(true);
198 195
					panel.getPreviewBasePanel().refreshPreview();
199 196
					return;
200 197
				}
201 198
			grayConvList.setProcessSource(clip);
202 199
			grayConvList.apply();
203 200
		}
204
		
201
	}
202
	
203
	/**
204
	 * Lanza el proceso de generaci?n de tramos
205
	 */
206
	private void stretchProcess() {
205 207
		//Generaci?n de tramos
206
		if(tabIndexSelected == 2 && panel.getPreviewBasePanel().getUserPanels().get(1) instanceof StretchPanel) {
208
		if(tabIndexSelected == 2 && panel.getPanel(1) instanceof StretchPanel) {
207 209
			if(gray != null) 
208 210
				if(!RasterToolsUtil.messageBoxYesOrNot("filter_raster_again", this)) {
211
					prevRender.setShowPreview(true);
209 212
					panel.getPreviewBasePanel().refreshPreview();
210 213
					return;
211 214
				}
212 215
			stretchList.setProcessSource(clip);
213 216
			stretchList.apply();
214 217
		}
215
				
216
		panel.getPreviewBasePanel().refreshPreview();
217 218
	}
218 219
			
219 220
	/*
......
232 233

  
233 234
	/*
234 235
	 * (non-Javadoc)
235
	 * @see javax.swing.event.ChangeListener#stateChanged(javax.swing.event.ChangeEvent)
236
	 */
237
	public void stateChanged(ChangeEvent e) {
238
		changeTabActions();
239
	}
240

  
241
	/*
242
	 * (non-Javadoc)
243 236
	 * @see org.gvsig.raster.IProcessActions#end(java.lang.Object)
244 237
	 */
245 238
	public void end(Object param) {
246 239
		if(param instanceof Object[] && ((Object[])param).length == 2) {
247 240
			if(((Object[])param)[0] instanceof ClipProcess) {
248 241
				clip = (FLyrRasterSE)((Object[])param)[1]; 
242
				if(grayConvList != null)
243
					grayConvList.refreshPreview();
244
				if(stretchList != null)
245
					stretchList.refreshPreview();
249 246
			}
250 247
			if(((Object[])param)[0] instanceof GrayConversionProcess ||
251 248
			   ((Object[])param)[0] instanceof StretchProcess) {

Also available in: Unified diff