Revision 19564 trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/filter/FilterListener.java

View differences:

FilterListener.java
25 25
import java.util.EventObject;
26 26
import java.util.Hashtable;
27 27

  
28
import javax.swing.JFileChooser;
29 28
import javax.swing.ListModel;
30 29

  
31 30
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
......
37 36
import org.gvsig.gui.beans.treelist.listeners.TreeListChangeListener;
38 37
import org.gvsig.gui.beans.treelist.listeners.TreeListComponentListener;
39 38
import org.gvsig.raster.IProcessActions;
40
import org.gvsig.raster.RasterLibrary;
41
import org.gvsig.raster.dataset.GeoRasterWriter;
42 39
import org.gvsig.raster.dataset.IRasterDataSource;
43 40
import org.gvsig.raster.dataset.Params;
44 41
import org.gvsig.raster.dataset.Params.Param;
......
50 47
import org.gvsig.raster.grid.filter.RasterFilterListManager;
51 48
import org.gvsig.raster.grid.filter.RegistrableFilterListener;
52 49
import org.gvsig.raster.hierarchy.IRasterRendering;
53
import org.gvsig.raster.util.ExtendedFileFilter;
54 50
import org.gvsig.raster.util.RasterNotLoadException;
55 51
import org.gvsig.raster.util.RasterToolsUtil;
56 52
import org.gvsig.rastertools.filter.ui.FilterPanel;
57 53

  
58 54
import com.iver.andami.PluginServices;
59
import com.iver.andami.Utilities;
60
import com.iver.cit.gvsig.addlayer.fileopen.FileOpenWizard;
61 55
/**
62 56
 * <code>FilterListener</code> es la clase donde se procesar? gran parte del
63 57
 * c?digo que controla el panel para el manejo de un layer en la aplicaci?n de
......
73 67
	/**
74 68
	 * Cuando est? a false genera un TIFF de salida. Cuando est? a true un JPEG2000
75 69
	 */
76
	private boolean      compress = false;
77

  
78 70
	public class ParamStruct {
79 71
		String filterName = null;
80 72
		Params filterParam = null;
......
130 122
	public FilterListener(FilterPanel filterDialog) {
131 123
		this.filterDialog = filterDialog;
132 124
	}
133

  
134
	/**
135
	 * Asigna un valor para el par?metro que informa de si el raster de salida hay
136
	 * que comprimirlo o no. Este valor es necesario cuando el raster de salida 
137
	 * es mayor de 4G ya que no se puede crear un tiff tan grande.
138
	 * @param compress true para comprimir el raster de salida y false para no hacerlo.
139
	 */
140
	public void setCompress(boolean compress) {
141
		this.compress = compress;
142
	}
143 125
	
144 126
	/**
145 127
	 * Asignamos los valores del PropertiesComponent al Params seleccionado
......
269 251
	}
270 252

  
271 253
	/**
272
	 * Devuelve la ruta del fichero donde se va a guardar, en caso de guardarse
273
	 * en memoria, calcula el nombre sin preguntar y devuelve la ruta.
274
	 * @return
275
	 */
276
	public String getFileSelected() {
277
		String path = "";
278
		if (getFilterDialog().getNewLayerPanel().getRadioFileGenerate().isSelected()) {
279
			JFileChooser chooser = new JFileChooser(FileOpenWizard.getLastPath());
280
			chooser.setDialogTitle(PluginServices.getText(this, "seleccionar_fichero"));
281

  
282
			//A?adimos las extensiones que hayan sido registradas en el driver
283
			String[] extList = GeoRasterWriter.getDriversExtensions();
284
			for(int i=0;i<extList.length;i++)
285
				chooser.addChoosableFileFilter(new ExtendedFileFilter(extList[i]));
286

  
287
			if (chooser.showOpenDialog(getFilterDialog()) != JFileChooser.APPROVE_OPTION)
288
				return null;
289

  
290
			FileOpenWizard.setLastPath(chooser.getSelectedFile().getPath().substring(0, chooser.getSelectedFile().getPath().lastIndexOf(File.separator)));
291

  
292
			ExtendedFileFilter fileFilter = (ExtendedFileFilter) chooser.getFileFilter();
293
			path = fileFilter.getNormalizedFilename(chooser.getSelectedFile());
294
		} else {
295

  
296
			String file = getFilterDialog().getNewLayerPanel().getFilenameTextField().getText();
297
			if(file.compareTo(RasterLibrary.getOnlyLayerName()) == 0) 
298
				RasterLibrary.usesOnlyLayerName();
299
							
300
			if(!compress)
301
				path = Utilities.createTempDirectory() + File.separator + file + ".tif";
302
			else
303
				path = Utilities.createTempDirectory() + File.separator + file + ".jp2";
304
			filterDialog.updateNewLayerText();
305
		}
306
		return path;
307
	}
308

  
309
	/**
310 254
	 * Aqui se seleccionan que filtros se van a aplicar y se devuelven en forma
311 255
	 * de ArrayList tanto para el dibujado como cuando aceptan o aplican el panel.
312 256
	 * @param rendering
......
431 375

  
432 376
		String path = null;
433 377
		if (!getFilterDialog().getNewLayerPanel().getRadioOnlyView().isSelected()) {
434
			path = getFileSelected();
378
			path = getFilterDialog().getNewLayerPanel().getFileSelected();
435 379
			if (path == null)
436 380
				return;
437 381
		}

Also available in: Unified diff