Revision 23383 branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/toc/actions/CopyPasteLayersUtiles.java

View differences:

CopyPasteLayersUtiles.java
21 21
import com.iver.utiles.XMLEntity;
22 22
import com.iver.utiles.XMLException;
23 23

  
24
//TODO comentado para que compile
24 25
public class CopyPasteLayersUtiles {
25 26
	private static CopyPasteLayersUtiles theInstance = null;
26 27

  
......
137 138
	}
138 139

  
139 140
	private boolean registerDataSources(XMLEntity xmlDataSources) {
140
		try {
141
			int numDataSources = xmlDataSources.getChildrenCount();
142

  
143
			if (numDataSources == 0) return true;
144
			DataSourceFactory dsFactory = LayerFactory.getDataSourceFactory();
145

  
146
			for (int i = 0; i < numDataSources; i++) {
147
				XMLEntity child = xmlDataSources.getChild(i);
148
				String name = child.getStringProperty("gdbmsname");
149

  
150
				if (dsFactory.getDriverInfo(name) == null) {
151
					if (child.getStringProperty("type").equals("otherDriverFile")) {
152
						LayerFactory.getDataSourceFactory().addFileDataSource(
153
								child.getStringProperty("driverName"),
154
								name,
155
								child.getStringProperty("file")
156
						);
157

  
158

  
159
					} else if (child.getStringProperty("type").equals("sameDriverFile")) {
160
						/*                                String layerName = child.getStringProperty("layerName");
161
						 ProjectView vista = project.getViewByName(child.getStringProperty(
162
						 "viewName"));
163
						 FLayer layer = vista.getMapContext().getLayers().getLayer(layerName);
164

  
165
						 modelo = ((AlphanumericData) layer).getRecordset();
166
						 associatedTable = (AlphanumericData) layer;
167
						 */
168
					} else if (child.getStringProperty("type").equals("db")) {
169
						LayerFactory.getDataSourceFactory().addDBDataSourceByTable(
170
								name,
171
								child.getStringProperty("host"),
172
								child.getIntProperty("port"),
173
								child.getStringProperty("user"),
174
								child.getStringProperty("password"),
175
								child.getStringProperty("dbName"),
176
								child.getStringProperty("tableName"),
177
								child.getStringProperty("driverInfo")
178
						);
179
					}
180
				}
181
			}
182

  
183
			return true;
184
		} catch (Exception e) {
185
			e.printStackTrace();
186
			return false;
187
		}
141
//		try {
142
//			int numDataSources = xmlDataSources.getChildrenCount();
143
//
144
//			if (numDataSources == 0) return true;
145
//			DataSourceFactory dsFactory = LayerFactory.getDataSourceFactory();
146
//
147
//			for (int i = 0; i < numDataSources; i++) {
148
//				XMLEntity child = xmlDataSources.getChild(i);
149
//				String name = child.getStringProperty("gdbmsname");
150
//
151
//				if (dsFactory.getDriverInfo(name) == null) {
152
//					if (child.getStringProperty("type").equals("otherDriverFile")) {
153
//						LayerFactory.getDataSourceFactory().addFileDataSource(
154
//								child.getStringProperty("driverName"),
155
//								name,
156
//								child.getStringProperty("file")
157
//						);
158
//
159
//
160
//					} else if (child.getStringProperty("type").equals("sameDriverFile")) {
161
//						/*                                String layerName = child.getStringProperty("layerName");
162
//						 ProjectView vista = project.getViewByName(child.getStringProperty(
163
//						 "viewName"));
164
//						 FLayer layer = vista.getMapContext().getLayers().getLayer(layerName);
165
//
166
//						 modelo = ((AlphanumericData) layer).getRecordset();
167
//						 associatedTable = (AlphanumericData) layer;
168
//						 */
169
//					} else if (child.getStringProperty("type").equals("db")) {
170
//						LayerFactory.getDataSourceFactory().addDBDataSourceByTable(
171
//								name,
172
//								child.getStringProperty("host"),
173
//								child.getIntProperty("port"),
174
//								child.getStringProperty("user"),
175
//								child.getStringProperty("password"),
176
//								child.getStringProperty("dbName"),
177
//								child.getStringProperty("tableName"),
178
//								child.getStringProperty("driverInfo")
179
//						);
180
//					}
181
//				}
182
//			}
183
//
184
//			return true;
185
//		} catch (Exception e) {
186
//			e.printStackTrace();
187
//			return false;
188
//		}
189
		return false;
188 190
	}
189 191

  
190 192
	private boolean addTables(XMLEntity xmlTables) {
......
225 227
			int numLayers = xmlLayers.getChildrenCount();
226 228
			for (int i = 0; i < numLayers; i++) {
227 229
				child = xmlLayers.getChild(i);
228
				if (!root.addLayerFromXMLEntity(child,null)) return false;
230
//				if (!root.addLayerFromXMLEntity(child,null)) return false;
229 231
			}
230 232
			return true;
231 233
		} catch (Exception e) {
......
241 243
		 return ((ProjectExtension)PluginServices.getExtension(ProjectExtension.class)).getProject();
242 244
	}
243 245

  
244
	private boolean addToXMLDataSource(SourceInfo source,XMLEntity xmlDataSources, Project project) {
245
		if (project== null) {
246
			project = this.getProject();
247
		}
248
  	  	xmlDataSources.addChild(project.getSourceInfoXMLEntity(source));
246
//	private boolean addToXMLDataSource(SourceInfo source,XMLEntity xmlDataSources, Project project) {
247
//		if (project== null) {
248
//			project = this.getProject();
249
//		}
250
//  	  	xmlDataSources.addChild(project.getSourceInfoXMLEntity(source));
251
//
252
//  	  	return true;
253
//	}
249 254

  
250
  	  	return true;
251
	}
252

  
253 255
	private boolean addToXMLTable(ProjectTable pt,XMLEntity xmlTables,XMLEntity xmlDataSources,Project project) {
254
		if (project== null) {
255
			project = this.getProject();
256
		}
257
		if (xmlTables.findChildren("name",pt.getName()) != null) return true;
258
		XMLEntity xmlTable = null;
259
		try {
260
			xmlTable = pt.getXMLEntity();
256
//		if (project== null) {
257
//			project = this.getProject();
258
//		}
259
//		if (xmlTables.findChildren("name",pt.getName()) != null) return true;
260
//		XMLEntity xmlTable = null;
261
//		try {
262
//			xmlTable = pt.getXMLEntity();
263
//
264
//			xmlTables.addChild(xmlTable);
265
//
266
//			if (pt.getAssociatedTable() != null) {
267
//				this.addToXMLDataSource(pt.getAssociatedTable().getRecordset().getSourceInfo(),xmlDataSources,project);
268
//			}
269
//
270
//			if (pt.getLinkTable() != null) {
271
//				if (xmlTables.findChildren("name",pt.getLinkTable()) == null)  {
272
//					ProjectTable ptLink = (ProjectTable)project.getProjectDocumentByName(pt.getLinkTable(),ProjectTableFactory.registerName);
273
//					if (!this.addToXMLTable(ptLink,xmlTables,xmlDataSources,project)) return false;
274
//				}
275
//			}
276
//		} catch (SaveException e) {
277
//			e.printStackTrace();
278
//			return false;
279
//		} catch (ReadException e) {
280
//			e.printStackTrace();
281
//			return false;
282
//		}
261 283

  
262
			xmlTables.addChild(xmlTable);
263

  
264
			if (pt.getAssociatedTable() != null) {
265
				this.addToXMLDataSource(pt.getAssociatedTable().getRecordset().getSourceInfo(),xmlDataSources,project);
266
			}
267

  
268
			if (pt.getLinkTable() != null) {
269
				if (xmlTables.findChildren("name",pt.getLinkTable()) == null)  {
270
					ProjectTable ptLink = (ProjectTable)project.getProjectDocumentByName(pt.getLinkTable(),ProjectTableFactory.registerName);
271
					if (!this.addToXMLTable(ptLink,xmlTables,xmlDataSources,project)) return false;
272
				}
273
			}
274
		} catch (SaveException e) {
275
			e.printStackTrace();
276
			return false;
277
		} catch (ReadException e) {
278
			e.printStackTrace();
279
			return false;
280
		}
281

  
282 284
  	  	return true;
283 285
	}
284 286

  
285 287
	private boolean addToXMLLayerDependencies(FLayer lyr,XMLEntity xmlTables,XMLEntity xmlDataSources) {
286
		try {
287
			Project project = this.getProject();
288

  
289
			if (lyr instanceof FLayers) {
290
				FLayers lyrs = (FLayers)lyr;
291
				int count = lyrs.getLayersCount();
292
				for (int i=0;i < count;i++) {
293
					FLayer subLyr = lyrs.getLayer(i);
294
					this.addToXMLLayerDependencies(subLyr,xmlTables,xmlDataSources);
295
				}
296

  
297
		    } else if (lyr instanceof FLyrVect){
298
            	if (!this.addToXMLDataSource(
299
        			((FLyrVect)lyr).getRecordset().getSourceInfo(),
300
        			xmlDataSources,
301
        			project
302

  
303
            	)) return false;
304

  
305
                ProjectTable pt = project.getTable((FLyrVect) lyr);
306
                if (pt != null) {
307
                	if (!this.addToXMLTable(pt,xmlTables,xmlDataSources,project)) return false;
308
                }
309

  
310
            }
311

  
312
		} catch (ReadException e) {
313
			// TODO Auto-generated catch block
314
			e.printStackTrace();
315
			return false;
316
		} catch (Exception e) {
317
			e.printStackTrace();
318
			return false;
319

  
320
		}
288
//		try {
289
//			Project project = this.getProject();
290
//
291
//			if (lyr instanceof FLayers) {
292
//				FLayers lyrs = (FLayers)lyr;
293
//				int count = lyrs.getLayersCount();
294
//				for (int i=0;i < count;i++) {
295
//					FLayer subLyr = lyrs.getLayer(i);
296
//					this.addToXMLLayerDependencies(subLyr,xmlTables,xmlDataSources);
297
//				}
298
//
299
//		    } else if (lyr instanceof FLyrVect){
300
//            	if (!this.addToXMLDataSource(
301
//        			((FLyrVect)lyr).getRecordset().getSourceInfo(),
302
//        			xmlDataSources,
303
//        			project
304
//
305
//            	)) return false;
306
//
307
//                ProjectTable pt = project.getTable((FLyrVect) lyr);
308
//                if (pt != null) {
309
//                	if (!this.addToXMLTable(pt,xmlTables,xmlDataSources,project)) return false;
310
//                }
311
//
312
//            }
313
//
314
//		} catch (ReadException e) {
315
//			// TODO Auto-generated catch block
316
//			e.printStackTrace();
317
//			return false;
318
//		} catch (Exception e) {
319
//			e.printStackTrace();
320
//			return false;
321
//
322
//		}
321 323
		return true;
322 324

  
323 325
	}

Also available in: Unified diff