Revision 11960 trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/saveas/SaveAsTocMenuEntry.java

View differences:

SaveAsTocMenuEntry.java
22 22
import java.beans.PropertyChangeEvent;
23 23
import java.beans.PropertyChangeListener;
24 24
import java.io.File;
25
import java.util.ArrayList;
25 26

  
26 27
import javax.swing.JFileChooser;
27 28
import javax.swing.JOptionPane;
......
52 53
import com.iver.cit.gvsig.project.documents.view.toc.ITocItem;
53 54

  
54 55
/**
55
 * Entrada del TOC que corresponde con la opci?n "Salvar Como" de raster.
56
 *  
56
 * Entrada del TOC que corresponde con la opci?n "Salvar Como" de raster. Esta se apoya 
57
 * en el proceso de recorte de raster para salvar datos. 
58
 * <p>
59
 * Cuando se abre el dialogo de "alvar como" se cargan las extensiones soportadas en el
60
 * selector. Cada tipo de datos de la fuente soporta unas extensiones de escritura u otras.
61
 * Por ejemplo, si la capa de entrada  es FLOAT no podremos escribir a JPG2000 porque no 
62
 * lo soporta, tendriamos que convertila primero a RGB.
63
 * </p>
64
 * <p>
65
 * Cambiando el tipo de extensi?n en el selector cambian el panel de propiedades asociado.
66
 * El fichero de salidad se salvar? con las propiedades ajustadas.
67
 * </P>
57 68
 * @version 30/05/2007
58 69
 * @author Nacho Brodin (nachobrodin@gmail.com)
59 70
 *
......
119 130
	 */
120 131
	public void execute(ITocItem item, FLayer[] selectedItems) {
121 132
		FLayer fLayer = null;
122

  
133
		IWindow w = PluginServices.getMDIManager().getActiveWindow();
134
		
123 135
		if (selectedItems.length != 1)
124 136
			return;
125 137

  
126 138
		fLayer = selectedItems[0];
127 139

  
128
		if (!(fLayer instanceof FLyrRasterSE))
140
		if (!(fLayer instanceof IRasterOperations))
129 141
			return;
130 142
		
131 143
		chooser = new JFileChooser(RasterModule.getPath());
132 144
		chooser.addPropertyChangeListener(this);
133 145
		chooser.setDialogTitle(PluginServices.getText(this, "seleccionar_fichero"));
134 146
		
135
		
136
        String[] extList = GeoRasterWriter.getDriversExtensions();
137
        for(int i = 0; i < extList.length; i++)
138
        	chooser.addChoosableFileFilter(new WriterFilter(extList[i]));
147
		//Cargamos las extensiones en la lista
148
        ArrayList extList = new ArrayList();
149
		try {
150
			extList = GeoRasterWriter.getExtensionsByDataType(((IRasterGeoOperations)fLayer).getDataType()[0]);
151
		} catch (RasterDriverException e2) {
152
			e2.printStackTrace();
153
		}
154
        for(int i = 0; i < extList.size(); i++)
155
        	chooser.addChoosableFileFilter(new WriterFilter((String)extList.get(i)));
139 156
        
140
        panelProperty = loadPanelProperties(extList[extList.length - 1]);
157
        //Cargamos el panel de propiedades en el selector
158
        panelProperty = loadPanelProperties((String)extList.get(extList.size() - 1));
141 159
		chooser.setAccessory(panelProperty);
142 160
		
143
		IWindow w = PluginServices.getMDIManager().getActiveWindow();
144
				
145 161
		if(w instanceof View) {
146
                                    
147 162
			if (chooser.showOpenDialog(((View)w).getComponent(0)) == JFileChooser.APPROVE_OPTION) {
148 163
				
149 164
				//Creaci?n de par?metros
......
171 186
				CuttingProcess cuttingProcess = new CuttingProcess(false, tit, dValues, 
172 187
						file, dataWriter, dataset, e, drawableBands, 
173 188
						false, BufferInterpolation.INTERPOLATION_NearestNeighbour);
174
				/*if(params != null)
175
					RasterToolsUtil.loadWriterParamsFromPropertiesPanel(panelProperty, params);*/
189
				if(params != null)
190
					RasterToolsUtil.loadWriterParamsFromPropertiesPanel(panelProperty, params);
176 191
				cuttingProcess.setParams(params);
177 192
				cuttingProcess.setResolution((int)((IRasterOperations)fLayer).getPxWidth(), (int)((IRasterOperations)fLayer).getPxHeight());
178 193
				IncrementableTask incrementableTask = new IncrementableTask(dataWriter);

Also available in: Unified diff