Revision 27442

View differences:

trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/NextPrevPanel.java
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.vectorizacion;
20

  
21
import java.awt.FlowLayout;
22

  
23
import javax.swing.JButton;
24

  
25
import org.gvsig.raster.util.BasePanel;
26

  
27
/**
28
 * Panel con los controles de siguiente y anterior panel.
29
 * 
30
 * 09/06/2008
31
 * @author Nacho Brodin nachobrodin@gmail.com
32
 */
33
public class NextPrevPanel extends BasePanel {
34
	private static final long    serialVersionUID   = 1L;
35
	private JButton              next               = null;
36
	private JButton              prev               = null;
37
		
38
	/**
39
	 *Inicializa componentes gr?ficos y traduce
40
	 */
41
	public NextPrevPanel() {
42
		init();
43
		translate();
44
	}
45
	
46
	/*
47
	 * (non-Javadoc)
48
	 * @see org.gvsig.raster.util.BasePanel#init()
49
	 */
50
	protected void init() {
51
		FlowLayout fl = new FlowLayout();
52
		setLayout(fl);
53
		add(getPrev(), fl);
54
		add(getNext(), fl);
55
	}
56
	
57
	/*
58
	 * (non-Javadoc)
59
	 * @see org.gvsig.raster.util.BasePanel#translate()
60
	 */
61
	protected void translate() {
62
		getNext().setText(getText(this, "next"));
63
		getPrev().setText(getText(this, "prev"));
64
	}
65
	
66
	/**
67
	 * Obtiene el bot?n de siguiente 
68
	 * @return JButton
69
	 */
70
	public JButton getNext() {
71
		if(next == null) {
72
			next = new JButton();
73
			next.setEnabled(false);
74
		}
75
		return next;
76
	}
77
		
78
	/**
79
	 * Obtiene el bot?n de siguiente 
80
	 * @return JButton
81
	 */
82
	public JButton getPrev() {
83
		if(prev == null) {
84
			prev = new JButton();
85
			prev.setEnabled(false);
86
		}
87
		return prev;
88
	}
89
}
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/process/ContourLinesProcess.java
28 28
import org.gvsig.raster.grid.Grid;
29 29
import org.gvsig.raster.grid.GridException;
30 30
import org.gvsig.raster.grid.GridExtent;
31
import org.gvsig.raster.process.RasterTask;
32
import org.gvsig.raster.process.RasterTaskQueue;
31 33
import org.gvsig.raster.util.RasterToolsUtil;
32 34

  
33 35
import com.hardcode.gdbms.driver.exceptions.InitializeWriterException;
......
35 37
import com.hardcode.gdbms.engine.values.ValueFactory;
36 38
import com.iver.cit.gvsig.exceptions.visitors.StartWriterVisitorException;
37 39
import com.iver.cit.gvsig.exceptions.visitors.StopWriterVisitorException;
40
import com.iver.cit.gvsig.exceptions.visitors.VisitorException;
38 41
import com.iver.cit.gvsig.fmap.core.DefaultFeature;
39 42
import com.iver.cit.gvsig.fmap.core.FPolyline2D;
40 43
import com.iver.cit.gvsig.fmap.core.FShape;
......
146 149
	 */
147 150
	public void process() throws InterruptedException {
148 151
		GridExtent ge = null;
152
		insertLineLog("Contour Lines");
149 153
		if(extent != null)
150 154
			ge = new GridExtent(extent, lyr.getCellSize());
155
		
151 156
		try {
152 157
			grid = new Grid(lyr.getDataSource(), new int[]{0}, ge);
153

  
154 158
			if( min <= max && distance > 0 ) {
155 159
				if( min < grid.getMinValue() )
156 160
					min += distance * (int)((grid.getMinValue() - min) / distance);
......
167 171
			RasterToolsUtil.messageBoxError("error_loading_grid", this, e);
168 172
		} catch (StopWriterVisitorException e) {
169 173
			RasterToolsUtil.messageBoxError("error_closing_grid", this, e);
170
		} catch (Exception e) {
171
			RasterToolsUtil.messageBoxError("error_closing_grid", this, e);
174
		} catch (VisitorException e) {
175
			RasterToolsUtil.messageBoxError("", this, e);
172 176
		} finally {
173
			if(externalActions != null)
174
				externalActions.end(fileName);
177
			if (incrementableTask != null) {
178
				incrementableTask.processFinalize();
179
				incrementableTask = null;
180
			}
175 181
		}
182
		if(externalActions != null)
183
			externalActions.end(fileName);
176 184
	}
177 185
	
178
	private void createContours(double dMin, double dMax, double dDistance) throws Exception {
186
	private void createContours(double dMin, double dMax, double dDistance) throws InterruptedException, GridException, VisitorException {
179 187
		int x, y;
180 188
		int i;
181 189
		int ID;
182 190
		int iNX,iNY;
183 191
		double dZ;
184 192
		double dValue = 0;
193
		RasterTask task = RasterTaskQueue.get(Thread.currentThread().toString());
185 194

  
186 195
		iNX = grid.getNX();
187 196
		iNY = grid.getNY();
......
191 200

  
192 201
		if( dDistance <= 0 )
193 202
			dDistance= 1;
194

  
195
		double increment = (25 / (double)iNY);
203
		
204
		percent = 0;
196 205
		for(dZ = dMin, ID = 0; dZ <= dMax; dZ += dDistance) {
206
			double increment = (25 / (double)(iNY * (((dMax - dMin) / dDistance) + 1)));
197 207
			for(y = 0; y < iNY - 1; y++) {
198 208
				percent += increment;
199 209
				for(x = 0; x < iNX - 1; x++) {
......
207 217
						m_Col[y][x]	= (char) (grid.getCellValue(y + 1, x) >= dZ ? 1 : 0);
208 218
					}
209 219
				}
220
				if(task.getEvent() != null)
221
					task.manageEvent(task.getEvent());
210 222
			}
211 223

  
212
			increment = (75 / (double)iNY);
224
			increment = (75 / (double)(iNY * (((dMax - dMin) / dDistance) + 1)));
213 225
			for(y = 0; y < iNY - 1; y++) {
214 226
				percent += increment;
215 227
				for(x = 0; x < iNX - 1; x++) {
......
225 237
						m_Col[y][x]	= 0;
226 238
					}
227 239
				}
240
				if(task.getEvent() != null)
241
					task.manageEvent(task.getEvent());
228 242
			}
229 243
		}
230 244
	}
231 245

  
232
	private void findContour(int x, int y, double z, boolean doRow, int ID) throws Exception {
246
	private void findContour(int x, int y, double z, boolean doRow, int ID) throws GridException, InterruptedException, VisitorException {
233 247
		boolean doContinue = true;
234 248
		boolean bIsFirstPoint = true;
235 249
		int	zx	= doRow ? x + 1 : x;
......
433 447
		return RasterToolsUtil.getText(this, "vectorization");
434 448
	}
435 449
	
436
	public void addShape(FShape shape, Value[] value)  throws Exception {
450
	public void addShape(FShape shape, Value[] value) throws VisitorException  {
437 451
		if (shape == null) 
438 452
			return;
439 453
		IGeometry geom = ShapeFactory.createGeometry(shape);
440 454
		addGeometry(geom, value);
441 455
	}
442 456

  
443
	public void addGeometry(IGeometry geom, Value[] value) throws Exception {
457
	public void addGeometry(IGeometry geom, Value[] value) throws VisitorException {
444 458
		DefaultFeature feat = new DefaultFeature(geom, value, Integer.toString(m_iGeometry));
445 459
		IRowEdited editFeat = new DefaultRowEdited(feat, IRowEdited.STATUS_MODIFIED, m_iGeometry);
446 460
		m_iGeometry++;
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/process/PotraceProcess.java
26 26
import org.cresques.cts.ProjectionPool;
27 27
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
28 28
import org.gvsig.raster.RasterProcess;
29
import org.gvsig.raster.dataset.io.RasterDriverException;
30
import org.gvsig.raster.process.RasterTask;
31
import org.gvsig.raster.process.RasterTaskQueue;
29 32
import org.gvsig.raster.util.RasterToolsUtil;
30 33
import org.gvsig.raster.vectorization.VectorizationBinding;
31 34
import org.gvsig.rastertools.vectorizacion.fmap.BezierPathX;
32 35

  
36
import com.hardcode.gdbms.driver.exceptions.InitializeWriterException;
33 37
import com.hardcode.gdbms.engine.values.Value;
34 38
import com.hardcode.gdbms.engine.values.ValueFactory;
39
import com.iver.cit.gvsig.exceptions.visitors.VisitorException;
35 40
import com.iver.cit.gvsig.fmap.core.DefaultFeature;
36 41
import com.iver.cit.gvsig.fmap.core.FPolyline2D;
37 42
import com.iver.cit.gvsig.fmap.core.FShape;
......
94 99
	 */
95 100
	public void process() throws InterruptedException {
96 101
		try {
102
			insertLineLog("Potrace");
97 103
			generatePotrace();
98
		} catch (Exception e) {
104
		} catch (VisitorException e) {
99 105
			RasterToolsUtil.messageBoxError("error_closing_grid", this, e);
106
		} catch (InitializeWriterException e) {
107
			RasterToolsUtil.messageBoxError("error_closing_grid", this, e);
108
		} catch (RasterDriverException e) {
109
			RasterToolsUtil.messageBoxError("error_closing_grid", this, e);
100 110
		} finally {
101
			if (externalActions != null)
102
				externalActions.end(fileName);
111
			if (incrementableTask != null) {
112
				incrementableTask.processFinalize();
113
				incrementableTask = null;
114
			}
103 115
		}
116
		if (externalActions != null)
117
			externalActions.end(fileName);
104 118
	}
105 119

  
106 120
	/**
......
109 123
	 * @param lyr
110 124
	 * @param fileOut
111 125
	 * @param bezierPoints
126
	 * @throws RasterDriverException 
127
	 * @throws InterruptedException 
128
	 * @throws VisitorException 
129
	 * @throws InitializeWriterException 
112 130
	 * @throws Exception 
113 131
	 */
114
	public void generatePotrace() throws Exception {
132
	public void generatePotrace() throws InterruptedException, RasterDriverException, VisitorException, InitializeWriterException {
115 133
		VectorizationBinding binding = new VectorizationBinding(lyr.getBufferFactory());
116 134
		binding.setPolicy(policy);
117 135
		binding.setDespeckle(despeckle);
......
169 187
		writer.postProcess();
170 188
	}
171 189

  
172
	public void addShape(FShape shape, Value[] value)  throws Exception {
190
	public void addShape(FShape shape, Value[] value) throws VisitorException {
173 191
		if (shape == null) 
174 192
			return;
175 193
		IGeometry geom = ShapeFactory.createGeometry(shape);
176 194
		addGeometry(geom, value);
177 195
	}
178 196
	
179
	public void addGeometry(IGeometry geom, Value[] value) throws Exception {
197
	public void addGeometry(IGeometry geom, Value[] value) throws VisitorException {
180 198
		DefaultFeature feat = new DefaultFeature(geom, value, Integer.toString(m_iGeometry));
181 199
		IRowEdited editFeat = new DefaultRowEdited(feat, IRowEdited.STATUS_MODIFIED, m_iGeometry);
182 200
		m_iGeometry++;
......
190 208
		return ptSrc;
191 209
	}
192 210
	
193
	private void showPotrace(double[] potraceX, int trozos) throws Exception {
211
	private void showPotrace(double[] potraceX, int trozos) throws InterruptedException, VisitorException {
212
		RasterTask task = RasterTaskQueue.get(Thread.currentThread().toString());
194 213
		BezierPathX pathX = new BezierPathX(trozos);
195 214

  
215
		double increment = (100 / (double)potraceX.length);
196 216
		int cont = 1;
197 217
		while (true) {
198 218
			if ((cont >= potraceX.length) || (cont >= potraceX[0]))
......
201 221
				case 0: // MoveTo
202 222
					pathX.moveTo(getTransformPixel(potraceX[cont + 1], potraceX[cont + 2]));
203 223
					cont += 3;
224
					percent += (increment * 3);
204 225
					break;
205 226
				case 1: // LineTo
206 227
					pathX.lineTo(getTransformPixel(potraceX[cont + 1], potraceX[cont + 2]));
207 228
					cont += 3;
229
					percent += (increment * 3);
208 230
					break;
209 231
				case 2: // CurveTo
210 232
					pathX.curveTo(getTransformPixel(potraceX[cont + 1], potraceX[cont + 2]), getTransformPixel(potraceX[cont + 3], potraceX[cont + 4]), getTransformPixel(potraceX[cont + 5], potraceX[cont + 6]));
211 233
					cont += 7;
234
					percent += (increment * 7);
212 235
					break;
213 236
				case 3: // closePath
214 237
					FPolyline2D line =  new FPolyline2D(pathX);
215 238
					addShape(line, values);
216 239
					pathX = new BezierPathX(trozos);
217 240
					cont ++;
241
					percent += increment;
218 242
					break;
219 243
			}
244
			if(task.getEvent() != null)
245
				task.manageEvent(task.getEvent());
220 246
		}
221 247
	}
222 248
	
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/MainPanel.java
25 25
import javax.swing.JPanel;
26 26

  
27 27
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
28
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
28 29
import org.gvsig.raster.beans.previewbase.IPreviewRenderProcess;
29 30
import org.gvsig.raster.beans.previewbase.PreviewBasePanel;
30 31
import org.gvsig.raster.util.BasePanel;
......
46 47
	private FLyrRasterSE                lyr                = null;
47 48
	//Lista de paneles en el Tab de PreviewBasePanel
48 49
	private ArrayList                   panels             = new ArrayList();
49
	
50
	private NextPrevPanel               nextPrevPanel      = null;
51
	
50
		
52 51
	/**
53 52
	 * Constructor.
54 53
	 * @param lyr Capa para la preview
......
82 81
	protected void init() {
83 82
		setLayout(new BorderLayout());
84 83
		add(getPreviewBasePanel(), BorderLayout.CENTER);
84
		getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY).setVisible(false);
85
		getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT).setVisible(false);
86
		getPreviewBasePanel().getButtonsPanel().addButton("anterior", 14);
87
		getPreviewBasePanel().getButtonsPanel().addButton("siguiente", 13);
85 88
	}
86 89
	
87 90
	/*
......
97 100
	 */
98 101
	public PreviewBasePanel getPreviewBasePanel() {
99 102
		if (previewBasePanel == null) {
100
			previewBasePanel = new PreviewBasePanel(panels, null, getNextPrevPanel(), renderProcess, lyr);
103
			ArrayList list = new ArrayList();
104
			list.add(panels.get(0));
105
			previewBasePanel = new PreviewBasePanel(list, null, null, renderProcess, lyr);
101 106
			previewBasePanel.setPreviewSize(new Dimension(230, 215));
102 107
		}
103 108
		return previewBasePanel;
104 109
	}
105 110
	
106 111
	/**
107
	 * Obtiene el panel con los botones siguiente y anterior
108
	 * @return NextPrevPanel
112
	 * Obtiene el panel de la posici?n indicada en el par?metro
113
	 * @param position
114
	 * @return JPanel
109 115
	 */
110
	public NextPrevPanel getNextPrevPanel() {
111
		if(nextPrevPanel == null)
112
			nextPrevPanel = new NextPrevPanel();
113
		return nextPrevPanel;
116
	public JPanel getPanel(int position) {
117
		return (JPanel)panels.get(position);
114 118
	}
115 119
	
116 120
	/**
121
	 * Obtiene el n?mero de paneles de la serie
122
	 * @return 
123
	 */
124
	public int getPanelCount() {
125
		return panels.size();
126
	}
127
		
128
	/**
117 129
	 * Obtiene el panel con los paneles de selecci?n de coordenadas para
118 130
	 * el recorte.
119 131
	 * @return ClipPanel
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/filter/GrayConversionListener.java
129 129
	 * usarse la funcionalidad de forma independiente por lo que habr? que
130 130
	 * comprobar si existe antes del refresco.
131 131
	 */
132
	private void refreshPreview() {
133
		if(previewPanel != null)
132
	public void refreshPreview() {
133
		if(previewPanel != null) {
134
			/*while(RasterTaskQueue.getProcessCount() > 0)
135
				try {
136
					Thread.sleep(500);
137
				} catch (InterruptedException e) {
138
				}*/
134 139
			previewPanel.refreshPreview();
140
		}
135 141
	}
136 142
	
137 143
	/*
......
213 219
		} catch (FilterTypeException e) {
214 220
			RasterToolsUtil.messageBoxError("error_filtering", null, e);
215 221
		}
216
		refreshPreview();
222
		//refreshPreview();
217 223
	}
218 224
	
219 225
	/**
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/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) {
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/stretch/StretchListener.java
117 117
	 * usarse la funcionalidad de forma independiente por lo que habr? que
118 118
	 * comprobar si existe antes del refresco.
119 119
	 */
120
	private void refreshPreview() {
121
		if(previewPanel != null)
120
	public void refreshPreview() {
121
		if(previewPanel != null) {
122
			/*while(RasterTaskQueue.getProcessCount() > 0)
123
				try {
124
					Thread.sleep(500);
125
				} catch (InterruptedException e) {
126
				}*/
122 127
			previewPanel.refreshPreview();
128
		}
123 129
	}
124 130
	
125 131
	/*
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/VectorizationTocMenuEntry.java
238 238
		
239 239
		//7-Creamos el dialogo 
240 240
		MainDialog dialog = new MainDialog(620, 468, lyr.getName(), mainPanel);
241
		vectListener.setDialog(dialog);
241 242
		RasterToolsUtil.addWindow(dialog);
242 243
	}
243 244

  

Also available in: Unified diff