Revision 27629

View differences:

branches/v2_0_0_prep/extensions/extRasterTools-SE/src/org/gvsig/raster/beans/previewbase/PreviewBasePanel.java
127 127
		setLayout(new BorderLayout(8, 8));
128 128

  
129 129
		JPanel panelLeft = new JPanel();
130
		panelLeft.setPreferredSize(new Dimension(390,0));
130
		panelLeft.setPreferredSize(new Dimension(390, 0));
131 131
		panelLeft.setLayout(new BorderLayout(8, 8));
132 132
		if(userPanel != null) {
133 133
			if(userPanel.size() == 1)
134 134
				panelLeft.add(getPanelWithoutTabs(), BorderLayout.CENTER);
135
			if(userPanel.size() > 1)
135
			else if(userPanel.size() > 1)
136 136
				panelLeft.add(getTabbedPane(), BorderLayout.CENTER);
137 137
		}
138 138
		if(generalPanel != null)
......
157 157

  
158 158
		add(jSplitPane1, BorderLayout.CENTER);
159 159
	}
160
	
161
	/**
162
	 * Asigna el panel de la posici?n 0 del array. Este panel es el que se utiliza
163
	 * cuando no hay un JTabbedPane
164
	 * @param panel
165
	 */
166
	public void setUniquePanel(JPanel panel) {
167
		userPanel.clear();
168
		userPanel.add(panel);
169
		mainPanel = panel;
170
		((JSplitPane)getContent().getComponent(0)).setLeftComponent(mainPanel);
171
		getContent().updateUI();
172
	}
160 173

  
161 174
	/**
162 175
	 * Obtiene el componente con los tabs donde se a?aden las pesta?as del usuario.
......
178 191
	 */
179 192
	public JPanel getPanelWithoutTabs() {
180 193
		if (mainPanel == null) {
181
			if(((IUserPanelInterface)userPanel.get(0)) instanceof JPanel)
182
				mainPanel = ((JPanel)userPanel.get(0));
183
			else
194
			if(((IUserPanelInterface)userPanel.get(0)) instanceof JPanel) {
195
				mainPanel = ((IUserPanelInterface)userPanel.get(0)).getPanel();
196
			} else
184 197
				mainPanel = new JPanel();
185 198
		}
186 199
		return mainPanel;
branches/v2_0_0_prep/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.mapcontext.layers.FLayer;
28 25
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
29 26
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
......
50 47
 * 12/06/2008
51 48
 * @author Nacho Brodin nachobrodin@gmail.com
52 49
 */
53
public class MainListener implements ActionListener, ChangeListener, IProcessActions  {
50
public class MainListener implements ActionListener, IProcessActions  {
54 51
	private MainPanel                        panel                    = null;
55 52
	private FLyrRasterSE                     lyr                      = null;
56 53
	
......
82 79
		this.clipList.setProcessActions(this);
83 80
		this.vectList.setProcessActions(this);
84 81
		this.stretchList.setProcessActions(this);
85
		
82
		tabIndexSelected = 0;
86 83
	}
87 84
	
88 85
	/**
......
91 88
	 */
92 89
	private void setDataView(MainPanel prepPanel) {
93 90
		this.panel = prepPanel;
94
		panel.getNextPrevPanel().getNext().addActionListener(this);
95
		panel.getNextPrevPanel().getPrev().addActionListener(this);
96
		panel.getNextPrevPanel().getNext().setEnabled(true);
97
		panel.getPreviewBasePanel().getTabbedPane().addChangeListener(this);
98
		panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY).addActionListener(this);
99
		panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT).addActionListener(this);
91
		panel.getPreviewBasePanel().getButtonsPanel().getButton(13).addActionListener(this);
92
		panel.getPreviewBasePanel().getButtonsPanel().getButton(14).addActionListener(this);
100 93
		panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL).addActionListener(this);
101 94
	}
102 95
		
......
124 117
		if(!panel.isEnableValueChangedEvent())
125 118
			return;
126 119
		
127
		tabIndexSelected = panel.getPreviewBasePanel().getTabbedPane().getSelectedIndex();
128
		
129 120
		//Bot?n de pantalla siguiente
130
		if(e.getSource() == panel.getNextPrevPanel().getNext()) {
131
			panel.getPreviewBasePanel().getTabbedPane().setSelectedIndex(++tabIndexSelected);
121
		if(e.getSource() == panel.getPreviewBasePanel().getButtonsPanel().getButton(13)) {
122
			if(tabIndexSelected < (panel.getPanelCount() - 1)) {
123
				panel.getPreviewBasePanel().setUniquePanel(panel.getPanel(++tabIndexSelected));
124
				panel.getPreviewBasePanel().getButtonsPanel().getButton(14).setEnabled(true);
125
				if(tabIndexSelected == (panel.getPanelCount() - 1)) 
126
					panel.getPreviewBasePanel().getButtonsPanel().getButton(13).setText("finalizar");
127
			} else { //Finalizar
128
				vectList.setProcessSource(gray);
129
				vectList.apply();
130
				if(dialog != null) {
131
					dialog.close();
132
					return;
133
				}
134
			}
132 135
		}
133 136
		
134 137
		//Bot?n de pantalla anterior		
135
		if(e.getSource() == panel.getNextPrevPanel().getPrev()) {
136
			panel.getPreviewBasePanel().getTabbedPane().setSelectedIndex(--tabIndexSelected);
138
		if(e.getSource() == panel.getPreviewBasePanel().getButtonsPanel().getButton(14)) {
139
			if(tabIndexSelected > 0) {
140
				panel.getPreviewBasePanel().setUniquePanel(panel.getPanel(--tabIndexSelected));
141
				panel.getPreviewBasePanel().getButtonsPanel().getButton(13).setText("siguiente");
142
				if(tabIndexSelected == 0) 
143
					panel.getPreviewBasePanel().getButtonsPanel().getButton(14).setEnabled(false);
144
			}
137 145
		}
138
		
139
		//Aplicar
140
		if(e.getSource() == panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY)) {
141
			vectList.setProcessSource(gray);
142
			vectList.apply();
143
		}
144
		
145
		//Aceptar
146
		if(e.getSource() == panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT)) {
147
			vectList.setProcessSource(gray);
148
			vectList.apply();
149
			if(dialog != null)
150
				dialog.close();
151
		}
152
		
146
				
153 147
		//Cancelar
154 148
		if(e.getSource() == panel.getPreviewBasePanel().getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL)) {
155 149
			if(dialog != null)
156 150
				dialog.close();
157 151
		}
158
	}
159
	
160
	/**
161
	 * Acciones realizadas cuando se varia la selecci?n de Tab
162
	 */
163
	private void changeTabActions() {
164
		//Mostrar u ocultar botones
165
		tabIndexSelected = panel.getPreviewBasePanel().getTabbedPane().getSelectedIndex();
166
		if(tabIndexSelected >= (panel.getPreviewBasePanel().getTabbedPane().getTabCount() - 1))
167
			panel.getNextPrevPanel().getNext().setEnabled(false);
168
		if(tabIndexSelected < (panel.getPreviewBasePanel().getTabbedPane().getTabCount() - 1))
169
			panel.getNextPrevPanel().getNext().setEnabled(true);
170
		if(tabIndexSelected <= 0)
171
			panel.getNextPrevPanel().getPrev().setEnabled(false);
172
		if(tabIndexSelected > 0)
173
			panel.getNextPrevPanel().getPrev().setEnabled(true);
152

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

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

  
240
	/*
241
	 * (non-Javadoc)
242 235
	 * @see org.gvsig.raster.IProcessActions#end(java.lang.Object)
243 236
	 */
244 237
	public void end(Object param) {
245 238
		if(param instanceof Object[] && ((Object[])param).length == 2) {
246 239
			if(((Object[])param)[0] instanceof ClipProcess) {
247 240
				clip = (FLyrRasterSE)((Object[])param)[1]; 
241
				if(grayConvList != null)
242
					grayConvList.refreshPreview();
243
				if(stretchList != null)
244
					stretchList.refreshPreview();
248 245
			}
249 246
			if(((Object[])param)[0] instanceof GrayConversionProcess ||
250 247
			   ((Object[])param)[0] instanceof StretchProcess) {
branches/v2_0_0_prep/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
	/*
branches/v2_0_0_prep/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/process/PotraceProcess.java
27 27
import org.gvsig.fmap.dal.DALLocator;
28 28
import org.gvsig.fmap.dal.DataManager;
29 29
import org.gvsig.fmap.dal.DataTypes;
30
import org.gvsig.fmap.dal.exception.DataException;
30 31
import org.gvsig.fmap.dal.feature.EditableFeature;
31 32
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
32 33
import org.gvsig.fmap.dal.feature.EditableFeatureType;
......
39 40
import org.gvsig.fmap.geom.GeometryLocator;
40 41
import org.gvsig.fmap.geom.GeometryManager;
41 42
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
42
import org.gvsig.fmap.geom.util.UtilFunctions;
43
import org.gvsig.fmap.geom.exception.CreateGeometryException;
43 44
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
44 45
import org.gvsig.raster.RasterProcess;
46
import org.gvsig.raster.dataset.io.RasterDriverException;
47
import org.gvsig.raster.process.RasterTask;
48
import org.gvsig.raster.process.RasterTaskQueue;
45 49
import org.gvsig.raster.util.RasterToolsUtil;
46 50
import org.gvsig.raster.vectorization.VectorizationBinding;
47
import org.gvsig.rastertools.rasterresolution.ZoomPixelCursorListener;
48 51
import org.gvsig.rastertools.vectorizacion.fmap.BezierPathX;
49
import org.slf4j.Logger;
50
import org.slf4j.LoggerFactory;
51 52
/**
52 53
 * Este proceso vectoriza la capa de entrada que debe estar ya preprocesada.
53 54
 * Usa la libreria de potrace por debajo.
......
57 58
 */
58 59
public class PotraceProcess extends RasterProcess {
59 60
	private static final GeometryManager	geomManager 		  = GeometryLocator.getGeometryManager();
60
	private static final Logger 			logger        		  = LoggerFactory.getLogger(PotraceProcess.class);
61 61
	private double       					percent               = 0;
62 62
	private FLyrRasterSE 					lyr                   = null;
63 63
	private String       					fileName              = null;
......
97 97
	 */
98 98
	public void process() throws InterruptedException {
99 99
		try {
100
			insertLineLog("Potrace");
100 101
			generatePotrace();
101
		} catch (Exception e) {
102
		} catch (DataException e) {
102 103
			RasterToolsUtil.messageBoxError("error_closing_grid", this, e);
104
		} catch (CreateGeometryException e) {
105
			RasterToolsUtil.messageBoxError("error_closing_grid", this, e);
106
		} catch (RasterDriverException e) {
107
			RasterToolsUtil.messageBoxError("error_closing_grid", this, e);
103 108
		} finally {
104
			if (externalActions != null)
105
				externalActions.end(fileName);
109
			if (incrementableTask != null) {
110
				incrementableTask.processFinalize();
111
				incrementableTask = null;
112
			}
106 113
		}
114
		if (externalActions != null)
115
			externalActions.end(fileName);	
107 116
	}
108 117

  
109 118
	/**
......
112 121
	 * @param lyr
113 122
	 * @param fileOut
114 123
	 * @param bezierPoints
124
	 * @throws CreateGeometryException 
115 125
	 * @throws Exception
116 126
	 */
117
	public void generatePotrace() throws Exception {
127
	public void generatePotrace() throws InterruptedException, RasterDriverException, DataException, CreateGeometryException {
118 128
		VectorizationBinding binding = new VectorizationBinding(lyr.getBufferFactory());
119 129
		binding.setPolicy(policy);
120 130
		binding.setDespeckle(despeckle);
......
202 212
//		addGeometry(geom, value);
203 213
//	}
204 214

  
205
	public void addGeometry(Geometry geom, Object[] value) throws Exception {
215
	public void addGeometry(Geometry geom, Object[] value) throws DataException {
206 216
//		DefaultFeature feat = new DefaultFeature(geom, value, Integer.toString(m_iGeometry));
207 217
//		IRowEdited editFeat = new DefaultRowEdited(feat, IRowEdited.STATUS_MODIFIED, m_iGeometry);
208 218
		m_iGeometry++;
......
220 230
		return ptSrc;
221 231
	}
222 232

  
223
	private void showPotrace(double[] potraceX, int trozos) throws Exception {
233
	private void showPotrace(double[] potraceX, int trozos) throws DataException, CreateGeometryException, InterruptedException {
234
		RasterTask task = RasterTaskQueue.get(Thread.currentThread().toString());
224 235
		BezierPathX pathX = new BezierPathX(trozos);
225 236

  
237
		double increment = (100 / (double)potraceX.length);
226 238
		int cont = 1;
227 239
		while (true) {
228 240
			if ((cont >= potraceX.length) || (cont >= potraceX[0]))
......
231 243
				case 0: // MoveTo
232 244
					pathX.moveTo(getTransformPixel(potraceX[cont + 1], potraceX[cont + 2]));
233 245
					cont += 3;
246
					percent += (increment * 3);
234 247
					break;
235 248
				case 1: // LineTo
236 249
					pathX.lineTo(getTransformPixel(potraceX[cont + 1], potraceX[cont + 2]));
237 250
					cont += 3;
251
					percent += (increment * 3);
238 252
					break;
239 253
				case 2: // CurveTo
240 254
					pathX.curveTo(getTransformPixel(potraceX[cont + 1], potraceX[cont + 2]), getTransformPixel(potraceX[cont + 3], potraceX[cont + 4]), getTransformPixel(potraceX[cont + 5], potraceX[cont + 6]));
241 255
					cont += 7;
256
					percent += (increment * 7);
242 257
					break;
243 258
				case 3: // closePath
244 259
					Geometry line =  geomManager.createCurve(pathX, SUBTYPES.GEOM2D);
245 260
					addGeometry(line, values);
246 261
					pathX = new BezierPathX(trozos);
247 262
					cont ++;
263
					percent += increment;
248 264
					break;
249 265
			}
266
			if(task.getEvent() != null)
267
				task.manageEvent(task.getEvent());
250 268
		}
251 269
	}
252 270
	private EditableFeatureType getFeatureType(String fileName){
branches/v2_0_0_prep/extensions/extRasterTools-SE/src/org/gvsig/rastertools/vectorizacion/process/ContourLinesProcess.java
38 38
import org.gvsig.fmap.geom.GeometryLocator;
39 39
import org.gvsig.fmap.geom.GeometryManager;
40 40
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
41
import org.gvsig.fmap.geom.exception.CreateGeometryException;
41 42
import org.gvsig.fmap.geom.primitive.GeneralPathX;
42
import org.gvsig.fmap.geom.util.UtilFunctions;
43 43
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
44 44
import org.gvsig.raster.RasterProcess;
45 45
import org.gvsig.raster.buffer.RasterBufferInvalidException;
......
47 47
import org.gvsig.raster.grid.Grid;
48 48
import org.gvsig.raster.grid.GridException;
49 49
import org.gvsig.raster.grid.GridExtent;
50
import org.gvsig.raster.process.RasterTask;
51
import org.gvsig.raster.process.RasterTaskQueue;
50 52
import org.gvsig.raster.util.RasterToolsUtil;
51
import org.gvsig.rastertools.rasterresolution.ZoomPixelCursorListener;
52
import org.slf4j.Logger;
53
import org.slf4j.LoggerFactory;
53

  
54 54
/**
55 55
 * Este proceso vectoriza la capa de entrada que debe estar ya preprocesada.
56 56
 * 03/07/2008
......
59 59
 */
60 60
public class ContourLinesProcess extends RasterProcess {
61 61
	private static final GeometryManager  geomManager 		  = GeometryLocator.getGeometryManager();
62
	private static final Logger 		  logger              = LoggerFactory.getLogger(ContourLinesProcess.class);
63 62
	private FLyrRasterSE                  lyr                 = null;
64 63
	private double                        min                 = 0;
65 64
	private double                        max                 = 0;
......
136 135
	 */
137 136
	public void process() throws InterruptedException {
138 137
		GridExtent ge = null;
138
		insertLineLog("Contour Lines");
139 139
		if(extent != null)
140 140
			ge = new GridExtent(extent, lyr.getCellSize());
141 141
		try {
......
155 155
			RasterToolsUtil.messageBoxError("error_loading_grid", this, e);
156 156
		} catch (GridException e) {
157 157
			RasterToolsUtil.messageBoxError("error_loading_grid", this, e);
158
		} catch (Exception e) {
159
			RasterToolsUtil.messageBoxError("error_closing_grid", this, e);
158
		} catch (DataException e) {
159
			RasterToolsUtil.messageBoxError("", this, e);
160
		} catch (CreateGeometryException e) {
161
			RasterToolsUtil.messageBoxError("", this, e);
160 162
		} finally {
161
			if(externalActions != null)
162
				externalActions.end(fileName);
163
			if (incrementableTask != null) {
164
				incrementableTask.processFinalize();
165
				incrementableTask = null;
166
			}
163 167
		}
168
		if(externalActions != null)
169
			externalActions.end(fileName);
164 170
	}
165 171

  
166
	private void createContours(double dMin, double dMax, double dDistance) throws Exception {
172
	private void createContours(double dMin, double dMax, double dDistance)  throws InterruptedException, GridException, DataException, CreateGeometryException {
167 173
		int x, y;
168 174
		int i;
169 175
		int ID;
170 176
		int iNX,iNY;
171 177
		double dZ;
172 178
		double dValue = 0;
179
		RasterTask task = RasterTaskQueue.get(Thread.currentThread().toString());
173 180

  
174 181
		iNX = grid.getNX();
175 182
		iNY = grid.getNY();
......
180 187
		if( dDistance <= 0 )
181 188
			dDistance= 1;
182 189

  
183
		double increment = (25 / (double)iNY);
190
		percent = 0;
184 191
		for(dZ = dMin, ID = 0; dZ <= dMax; dZ += dDistance) {
192
			double increment = (25 / (double)(iNY * (((dMax - dMin) / dDistance) + 1)));
185 193
			for(y = 0; y < iNY - 1; y++) {
186 194
				percent += increment;
187 195
				for(x = 0; x < iNX - 1; x++) {
......
195 203
						m_Col[y][x]	= (char) (grid.getCellValue(y + 1, x) >= dZ ? 1 : 0);
196 204
					}
197 205
				}
206
				if(task.getEvent() != null)
207
					task.manageEvent(task.getEvent());
198 208
			}
199 209

  
200
			increment = (75 / (double)iNY);
210
			increment = (75 / (double)(iNY * (((dMax - dMin) / dDistance) + 1)));
201 211
			for(y = 0; y < iNY - 1; y++) {
202 212
				percent += increment;
203 213
				for(x = 0; x < iNX - 1; x++) {
......
213 223
						m_Col[y][x]	= 0;
214 224
					}
215 225
				}
226
				if(task.getEvent() != null)
227
					task.manageEvent(task.getEvent());
216 228
			}
217 229
		}
218 230
	}
219 231

  
220
	private void findContour(int x, int y, double z, boolean doRow, int ID) throws Exception {
232
	private void findContour(int x, int y, double z, boolean doRow, int ID)  throws GridException, InterruptedException, DataException, CreateGeometryException {
221 233
		boolean doContinue = true;
222 234
		boolean bIsFirstPoint = true;
223 235
		int	zx	= doRow ? x + 1 : x;
......
418 430
//		addGeometry(geom, value);
419 431
//	}
420 432

  
421
	public void addGeometry(Geometry geom, Object[] value) throws Exception {
433
	public void addGeometry(Geometry geom, Object[] value) throws DataException {
422 434
		m_iGeometry++;
423 435
		EditableFeature ef=fsWriter.createNewFeature();
424 436
		ef.set("ID", value[0]);
branches/v2_0_0_prep/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
branches/v2_0_0_prep/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
	/**

Also available in: Unified diff