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

View differences:

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

  
27 26
import javax.swing.JFileChooser;
......
41 40
import org.gvsig.raster.hierarchy.IRasterDataset;
42 41
import org.gvsig.raster.hierarchy.IRasterGeoOperations;
43 42
import org.gvsig.raster.hierarchy.IRasterOperations;
43
import org.gvsig.raster.util.ExtendedFileFilter;
44 44
import org.gvsig.raster.util.RasterToolsUtil;
45 45
import org.gvsig.rastertools.clipping.ClippingProcess;
46 46
import org.gvsig.rastertools.clipping.WriterBufferServer;
......
114 114
	 * @see com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction#isEnabled(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[])
115 115
	 */
116 116
	public boolean isEnabled(ITocItem item, FLayer[] selectedItems) {
117
		if(getNodeLayer(item) instanceof ILayerState) 
118
			if(!((ILayerState)getNodeLayer(item)).isOpen()) 
117
		if(getNodeLayer(item) instanceof ILayerState)
118
			if(!((ILayerState)getNodeLayer(item)).isOpen())
119 119
				return false;
120 120
		return selectedItems.length == 1;
121 121
	}
......
128 128
		if (isTocItemBranch(item)) {
129 129
			if(selectedItems == null || selectedItems.length != 1)
130 130
				return false;
131
			return( getNodeLayer(item) instanceof FLyrRasterSE && 
132
				    ((FLyrRasterSE)getNodeLayer(item)).isActionEnabled(IRasterLayerActions.SAVEAS));
131
			return( getNodeLayer(item) instanceof FLyrRasterSE &&
132
						((FLyrRasterSE)getNodeLayer(item)).isActionEnabled(IRasterLayerActions.SAVEAS));
133 133
		}
134 134
		return false;
135 135
	}
......
163 163
			return;
164 164
		}
165 165
		for (int i = 0; i < extList.size(); i++)
166
			chooser.addChoosableFileFilter(new WriterFilter((String) extList.get(i)));
166
			chooser.addChoosableFileFilter(new ExtendedFileFilter((String) extList.get(i)));
167 167

  
168 168
		// Cargamos el panel de propiedades en el selector
169 169
		panelProperty = loadPanelProperties((String) extList.get(extList.size() - 1));
170 170
		chooser.setAccessory(panelProperty);
171
		chooser.setAcceptAllFileFilterUsed(false);
171 172

  
172 173
		if (w instanceof View) {
173
			if (chooser.showOpenDialog(((View) w).getComponent(0)) == JFileChooser.APPROVE_OPTION) {
174
			if (chooser.showSaveDialog(((View) w).getComponent(0)) == JFileChooser.APPROVE_OPTION) {
174 175
				// Creaci?n de par?metros
175 176
				String tit = PluginServices.getMDIManager().getWindowInfo(w).getTitle();
176 177
				WriterBufferServer dataWriter = new WriterBufferServer();
......
180 181
				for (int i = 0; i < ((IRasterOperations) fLayer).getBandCount(); i++)
181 182
					drawableBands[i] = i;
182 183
				FileOpenWizard.setLastPath(chooser.getCurrentDirectory().toString());
183
				String file = chooser.getSelectedFile().toString() + chooser.getFileFilter().getDescription();
184
				String file =  ((ExtendedFileFilter) chooser.getFileFilter()).getNormalizedFilename(chooser.getSelectedFile());
184 185
				if (!RasterToolsUtil.canWrite(chooser.getCurrentDirectory().toString(), this))
185 186
					return;
186 187
				Params params = null;
......
201 202
				clippingProcess.setInterpolationMethod(BufferInterpolation.INTERPOLATION_NearestNeighbour);
202 203
				clippingProcess.setAffineTransform(dataset.getAffineTransform());
203 204
				clippingProcess.setActions(new SaveAsActions());
204
				
205

  
205 206
				if (params != null)
206 207
					RasterToolsUtil.loadWriterParamsFromPropertiesPanel(panelProperty, params);
207 208
				clippingProcess.setParams(params);
......
220 221
	 * sustituye el panel properties por el del nuevo driver seleccionado
221 222
	 */
222 223
	public void propertyChange(PropertyChangeEvent evt) {
223
		if(evt.getNewValue() instanceof WriterFilter) {
224
			String ext = ((WriterFilter)evt.getNewValue()).getDescription();
224
		if (evt.getNewValue() instanceof ExtendedFileFilter) {
225
			String ext = ((ExtendedFileFilter) evt.getNewValue()).getExtensions().get(0).toString();
225 226
			panelProperty = loadPanelProperties(ext);
226 227
			chooser.setAccessory(panelProperty);
227 228
			chooser.revalidate();
......
249 250
		RasterToolsUtil.loadPropertiesFromWriterParams(panelProperty, params, null);
250 251
		return panelProperty;
251 252
	}
252

  
253
	/**
254
	 * @author Nacho Brodin (nachobrodin@gmail.com) Filtro para el selector de
255
	 *         formatos de escritura
256
	 */
257
	class WriterFilter extends javax.swing.filechooser.FileFilter {
258
			private String filter;
259

  
260
			public WriterFilter(String fil) {
261
					this.filter = fil;
262
			}
263

  
264
			public boolean accept(File f) {
265
					return f.isDirectory() || f.getName().toLowerCase().endsWith("." + filter);
266
			}
267

  
268
			public String getDescription() {
269
					return "." + filter;
270
			}
271
	}
272

  
273 253
}

Also available in: Unified diff