Revision 2629
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/layers/FLyrVect.java | ||
---|---|---|
224 | 224 |
/** |
225 | 225 |
* @see com.iver.cit.gvsig.fmap.layers.VectorialOperations#createLabelLayer(int) |
226 | 226 |
*/ |
227 |
public FLayer createLabelLayer(int fieldId) { |
|
227 |
// public FLayer createLabelLayer(int fieldId) { |
|
228 |
public FLayer createLabelLayer(SelectableDataSource ds) { |
|
228 | 229 |
ArrayList labels = new ArrayList(); |
229 | 230 |
|
230 | 231 |
try { |
231 | 232 |
VectorialAdapter adapter = getSource(); |
232 |
DataSource ds = getRecordset(); |
|
233 | 233 |
logger.debug("adapter.start()"); |
234 | 234 |
adapter.start(); |
235 | 235 |
ds.start(); |
236 | 236 |
|
237 | 237 |
//VectorialDriver driver = (VectorialDriver) adapter.getDriver(); |
238 |
int sc;
|
|
238 |
long sc;
|
|
239 | 239 |
|
240 |
sc = adapter.getShapeCount(); |
|
240 |
sc = ds.getRowCount(); |
|
241 |
|
|
242 |
int fieldId = ds.getFieldIndexByName(legend.getLabelField()); |
|
241 | 243 |
|
242 | 244 |
DriverAttributes attr = adapter.getDriverAttributes(); |
243 | 245 |
boolean bMustClone = false; |
... | ... | |
445 | 447 |
} |
446 | 448 |
return sds; |
447 | 449 |
} |
450 |
|
|
451 |
/** |
|
452 |
* Para cuando haces una uni?n, sustituyes el recorset por el nuevo. |
|
453 |
* De esta forma, podr?s poner leyendas basadas en el nuevo |
|
454 |
* recordset |
|
455 |
* @param newSds |
|
456 |
*/ |
|
457 |
public void setRecordset(SelectableDataSource newSds) |
|
458 |
{ |
|
459 |
sds = newSds; |
|
460 |
sds.setSelectionSupport(selectionSupport); |
|
461 |
} |
|
448 | 462 |
|
449 | 463 |
/** |
450 | 464 |
* @see com.iver.cit.gvsig.fmap.layers.CommonOperations#setLegend(int, |
... | ... | |
459 | 473 |
legend.setDataSource(getRecordset()); |
460 | 474 |
|
461 | 475 |
if (legend.getLabelField() != null) { |
462 |
sds.start(); |
|
463 |
int idLabelField = getRecordset().getFieldIndexByName(legend.getLabelField()); |
|
464 |
createLabelLayer(idLabelField);
|
|
465 |
sds.stop(); |
|
476 |
// sds.start();
|
|
477 |
// int idLabelField = getRecordset().getFieldIndexByName(legend.getLabelField());
|
|
478 |
createLabelLayer(sds);
|
|
479 |
// sds.stop();
|
|
466 | 480 |
} |
467 | 481 |
else |
468 | 482 |
removeLabels(); |
... | ... | |
471 | 485 |
} catch (FieldNotFoundException e) { |
472 | 486 |
// TODO Auto-generated catch block |
473 | 487 |
e.printStackTrace(); |
474 |
} catch (com.hardcode.gdbms.engine.data.driver.DriverException e) { |
|
475 |
throw new DriverException(e); |
|
476 | 488 |
} |
477 | 489 |
|
478 | 490 |
LegendChangedEvent e = LegendChangedEvent.createLegendChangedEvent(oldLegend, legend); |
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/layers/layerOperations/Labelable.java | ||
---|---|---|
41 | 41 |
package com.iver.cit.gvsig.fmap.layers.layerOperations; |
42 | 42 |
|
43 | 43 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
44 |
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource; |
|
44 | 45 |
|
45 | 46 |
|
46 | 47 |
/** |
... | ... | |
55 | 56 |
* |
56 | 57 |
* @return FLayer. |
57 | 58 |
*/ |
58 |
FLayer createLabelLayer(int fieldId);
|
|
59 |
FLayer createLabelLayer(SelectableDataSource sds);
|
|
59 | 60 |
|
60 | 61 |
/** |
61 | 62 |
* Borra las labels. |
trunk/applications/appgvSIG/src/com/iver/cit/gvsig/project/ProjectTable.java | ||
---|---|---|
43 | 43 |
import java.io.IOException; |
44 | 44 |
import java.text.DateFormat; |
45 | 45 |
import java.util.Date; |
46 |
import java.util.logging.Logger; |
|
46 | 47 |
|
47 | 48 |
import com.hardcode.driverManager.DriverLoadException; |
48 | 49 |
import com.hardcode.gdbms.engine.data.DataSource; |
... | ... | |
54 | 55 |
import com.iver.cit.gvsig.fmap.DriverException; |
55 | 56 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
56 | 57 |
import com.iver.cit.gvsig.fmap.layers.FLayers; |
58 |
import com.iver.cit.gvsig.fmap.layers.FLyrVect; |
|
57 | 59 |
import com.iver.cit.gvsig.fmap.layers.LayerFactory; |
58 | 60 |
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource; |
59 | 61 |
import com.iver.cit.gvsig.fmap.layers.XMLException; |
... | ... | |
186 | 188 |
modelo = ds; |
187 | 189 |
ds.setSelectionSupport(original.getSelectionSupport()); |
188 | 190 |
createAlias(); |
191 |
|
|
192 |
// FJP: |
|
193 |
// Si la tabla proviene de un layer, cambiamos su recordset |
|
194 |
if (associatedTable != null) |
|
195 |
{ |
|
196 |
if (associatedTable instanceof FLyrVect) |
|
197 |
{ |
|
198 |
((FLyrVect) associatedTable).setRecordset(ds); |
|
199 |
} |
|
200 |
} |
|
201 |
|
|
189 | 202 |
change.firePropertyChange("model", original, modelo); |
190 | 203 |
} |
191 | 204 |
|
... | ... | |
197 | 210 |
modelo = original; |
198 | 211 |
original = null; |
199 | 212 |
createAlias(); |
213 |
|
|
214 |
// FJP: |
|
215 |
// Si la tabla proviene de un layer, cambiamos su recordset |
|
216 |
if (associatedTable != null) |
|
217 |
{ |
|
218 |
if (associatedTable instanceof FLyrVect) |
|
219 |
{ |
|
220 |
((FLyrVect) associatedTable).setRecordset(modelo); |
|
221 |
} |
|
222 |
} |
|
223 |
|
|
200 | 224 |
change.firePropertyChange("model", original, modelo); |
201 | 225 |
} |
202 | 226 |
|
... | ... | |
399 | 423 |
private void setSelectableDataSource(XMLEntity xml) |
400 | 424 |
throws XMLException, DriverException { |
401 | 425 |
String layerName = null; |
426 |
boolean bNeedToReplace = false; |
|
427 |
XMLEntity xmlAux = null; |
|
402 | 428 |
|
403 | 429 |
try { |
404 | 430 |
SelectableDataSource sds; |
... | ... | |
418 | 444 |
setDataSource(sds); |
419 | 445 |
|
420 | 446 |
if (xml.getNumChild() == 2) { |
421 |
replaceDataSource(SelectableDataSource.createSelectableDataSource( |
|
422 |
xml.getChild(1))); |
|
447 |
bNeedToReplace = true; |
|
448 |
xmlAux = xml.getChild(1); |
|
449 |
// replaceDataSource(SelectableDataSource.createSelectableDataSource(xml.getChild(1))); |
|
423 | 450 |
} |
424 | 451 |
} catch (NoSuchTableException e) { |
425 | 452 |
throw new XMLException(e); |
... | ... | |
442 | 469 |
|
443 | 470 |
// modelo = ((AlphanumericData) layer).getRecordset(); |
444 | 471 |
associatedTable = (AlphanumericData) layer; |
472 |
|
|
473 |
if (bNeedToReplace) |
|
474 |
{ |
|
475 |
try { |
|
476 |
replaceDataSource(SelectableDataSource.createSelectableDataSource(xmlAux)); |
|
477 |
} catch (com.hardcode.gdbms.engine.data.driver.DriverException e) { |
|
478 |
// TODO Auto-generated catch block |
|
479 |
e.printStackTrace(); |
|
480 |
} catch (NoSuchTableException e) { |
|
481 |
// TODO Auto-generated catch block |
|
482 |
e.printStackTrace(); |
|
483 |
} catch (ParseException e) { |
|
484 |
// TODO Auto-generated catch block |
|
485 |
e.printStackTrace(); |
|
486 |
} catch (DriverLoadException e) { |
|
487 |
// TODO Auto-generated catch block |
|
488 |
e.printStackTrace(); |
|
489 |
} catch (SemanticException e) { |
|
490 |
// TODO Auto-generated catch block |
|
491 |
e.printStackTrace(); |
|
492 |
} catch (IOException e) { |
|
493 |
// TODO Auto-generated catch block |
|
494 |
e.printStackTrace(); |
|
495 |
} catch (XMLException e) { |
|
496 |
// TODO Auto-generated catch block |
|
497 |
e.printStackTrace(); |
|
498 |
} |
|
499 |
} |
|
445 | 500 |
} |
446 | 501 |
} |
447 | 502 |
private FLayer getLayer(FLayers layers,String name){ |
Also available in: Unified diff