Revision 23383 branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/toc/actions/CopyPasteLayersUtiles.java
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