Revision 16554 trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/saveas/SaveAsTocMenuEntry.java
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