Revision 19564 trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/filter/FilterListener.java
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