Revision 434

View differences:

org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.fmap/src/main/java/org/gvsig/raster/fmap/layers/DefaultFLyrRaster.java
1189 1189
				// No se ha podido cambiar el estado de la capa a cerrado
1190 1190
			}
1191 1191
		}
1192
		
1192

  
1193 1193
		// Salva a RMF
1194 1194
		if (dataStore != null)
1195 1195
			// Guardamos la GeoReferenciacion de cada dataset
......
1199 1199
				RasterToolsUtil.messageBoxError("error_salvando_rmf", this, e);
1200 1200
			}
1201 1201

  
1202
		if (this.isRemoveRasterFlag()) {
1203
			image = null;
1204
			String[] files = getFileName().clone();
1205
			if (dataStore != null)
1206
				try {
1207
					dataStore.close();
1208
				} catch (CloseException e) {
1209
				}
1210
			dataStore = null;
1211
			render = null;
1212
			// System.gc();
1213
			this.setRemoveRasterFlag(true);
1202
			if (this.isRemoveRasterFlag()) {
1203
				image = null;
1204
				if (dataStore != null) {
1205
					String[] files = getFileName().clone();
1214 1206

  
1215
			for (int i = 0; i < files.length; i++) {
1216
				File file = new File(files[i]);
1217
				File dirTemp = fileUtil.getTemporalFile();
1218
				if (dirTemp.compareTo(file.getParentFile()) == 0) {
1219
					file.delete();
1207
					try {
1208
						dataStore.close();
1209
					} catch (CloseException e) {
1210
					}
1220 1211

  
1221
					// Borramos todos los ficheros que puedan tener relacion con el fichero actual
1222
					String basefile = file.getName();
1223
					File basepath = file.getParentFile();
1224
					int last = basefile.lastIndexOf(".");
1225
					if (last != -1)
1226
						basefile = basefile.substring(0, last + 1);
1227
					File[] list = basepath.listFiles();
1228
					for (int j = 0; j < list.length; j++)
1229
						if (list[j].getName().startsWith(basefile))
1230
							list[j].delete();
1212
					dataStore = null;
1213
					render = null;
1214
					// System.gc();
1215
					this.setRemoveRasterFlag(true);
1216

  
1217
					for (int i = 0; i < files.length; i++) {
1218
						File file = new File(files[i]);
1219
						File dirTemp = fileUtil.getTemporalFile();
1220
						if (dirTemp.compareTo(file.getParentFile()) == 0) {
1221
							file.delete();
1222

  
1223
							// Borramos todos los ficheros que puedan tener relacion con el fichero actual
1224
							String basefile = file.getName();
1225
							File basepath = file.getParentFile();
1226
							int last = basefile.lastIndexOf(".");
1227
							if (last != -1)
1228
								basefile = basefile.substring(0, last + 1);
1229
							File[] list = basepath.listFiles();
1230
							for (int j = 0; j < list.length; j++)
1231
								if (list[j].getName().startsWith(basefile))
1232
									list[j].delete();
1233
						}
1234
					}
1231 1235
				}
1232 1236
			}
1233
		}
1234
		updateDrawVersion();
1235
		return super.layerListeners.remove(o);
1237
			updateDrawVersion();
1238
			return super.layerListeners.remove(o);
1236 1239
	}
1237 1240

  
1238 1241
	/*

Also available in: Unified diff