Revision 11194 branches/v10/libraries/libFMap/src/com/iver/cit/gvsig/fmap/layers/FLayers.java
FLayers.java | ||
---|---|---|
424 | 424 |
Cancellable cancel,double scale) throws DriverException { |
425 | 425 |
draw(image,g,viewPort,cancel, scale, null); |
426 | 426 |
} |
427 |
|
|
428 |
|
|
427 |
|
|
428 |
|
|
429 | 429 |
public ComposedLayer draw(BufferedImage image, Graphics2D g, ViewPort viewPort, |
430 | 430 |
Cancellable cancel,double scale, ComposedLayer group) throws DriverException { |
431 | 431 |
//double scale = getFMap().getScaleView(); |
... | ... | |
438 | 438 |
long tg1 = System.currentTimeMillis(); |
439 | 439 |
///// CHEMA ComposedLayer |
440 | 440 |
|
441 |
|
|
442 |
|
|
441 |
|
|
442 |
|
|
443 | 443 |
// while (iter.hasNext()) |
444 | 444 |
// { |
445 | 445 |
for (int i=0; i < layers.size(); i++) { |
... | ... | |
448 | 448 |
// FLayer lyr = (FLayer) iter.next(); |
449 | 449 |
FLayer lyr = (FLayer) layers.get(i); |
450 | 450 |
|
451 |
|
|
452 |
|
|
451 |
|
|
452 |
|
|
453 | 453 |
/* if (lyr instanceof FLyrVect && ((FLyrVect)lyr).isBroken()){ |
454 | 454 |
continue; |
455 | 455 |
} |
... | ... | |
494 | 494 |
group = null; |
495 | 495 |
} |
496 | 496 |
///// CHEMA ComposedLayer |
497 |
|
|
498 | 497 |
|
498 |
|
|
499 | 499 |
// Copiamos la imagen actual |
500 | 500 |
BufferedImage buff = new BufferedImage(image.getWidth(), image.getHeight(), image.getType()); |
501 | 501 |
WritableRaster w = buff.getRaster(); |
... | ... | |
513 | 513 |
// prepareDrawing de FMap. |
514 | 514 |
if (lyr.isDirty()) |
515 | 515 |
{ |
516 |
|
|
517 |
|
|
516 |
|
|
517 |
|
|
518 | 518 |
///// CHEMA ComposedLayer |
519 | 519 |
// Checks for draw group (ComposedLayer) |
520 | 520 |
if (group != null) { |
... | ... | |
523 | 523 |
group = null; |
524 | 524 |
} |
525 | 525 |
///// CHEMA ComposedLayer |
526 |
|
|
527 | 526 |
|
527 |
|
|
528 | 528 |
g.drawImage(lyr.getCacheImageDrawnLayers(), 0, 0, null); |
529 | 529 |
System.err.println("Pinto con acelerado lo que hab?a antes de " + lyr.getName()); |
530 | 530 |
} |
... | ... | |
534 | 534 |
// Si la capa est? "sucia" o alguna de las de abajo est? sucia |
535 | 535 |
// hay que volver a dibujar. |
536 | 536 |
if (lyr.isDirty() || bNeedRecalculateCache) |
537 |
{
|
|
537 |
{ |
|
538 | 538 |
if (!lyr.getFLayerStatus().isDriverLoaded()) |
539 | 539 |
{ |
540 | 540 |
continue; |
541 | 541 |
} |
542 |
|
|
542 |
|
|
543 | 543 |
///// CHEMA ComposedLayer |
544 | 544 |
//lyr.draw(image, g, viewPort, cancel,scale); |
545 | 545 |
//bNeedRecalculateCache = true; |
546 | 546 |
//System.err.println("Pinto sin acelerado " + lyr.getName()); |
547 | 547 |
///// CHEMA ComposedLayer |
548 |
|
|
548 |
|
|
549 | 549 |
///// CHEMA ComposedLayer |
550 | 550 |
// Checks for draw group (ComposedLayer) |
551 |
if (group != null) {
|
|
551 |
if (group != null) { |
|
552 | 552 |
if (lyr instanceof FLayers){ |
553 | 553 |
group = ((FLayers)lyr).draw(image, g, viewPort, cancel,scale,group); |
554 | 554 |
LayerDrawEvent afterEvent = new LayerDrawEvent(lyr, g, viewPort, LayerDrawEvent.LAYER_AFTER_DRAW); |
... | ... | |
560 | 560 |
} else { |
561 | 561 |
// draw the 'pending to draw' layer group |
562 | 562 |
group.draw(image, g, viewPort, cancel,scale); |
563 |
|
|
563 |
|
|
564 | 564 |
// gets a new group instance |
565 |
group = lyr.newComposedLayer();
|
|
566 |
// if layer hasn't group, draws it inmediately
|
|
565 |
group = lyr.newComposedLayer(); |
|
566 |
// if layer hasn't group, draws it inmediately |
|
567 | 567 |
if (group == null) { |
568 | 568 |
if (lyr instanceof FLayers){ |
569 | 569 |
group = ((FLayers)lyr).draw(image, g, viewPort, cancel,scale,group); |
... | ... | |
571 | 571 |
lyr.draw(image, g, viewPort, cancel,scale); |
572 | 572 |
} |
573 | 573 |
LayerDrawEvent afterEvent = new LayerDrawEvent(lyr, g, viewPort, LayerDrawEvent.LAYER_AFTER_DRAW); |
574 |
fmap.fireLayerDrawingEvent(afterEvent);
|
|
574 |
fmap.fireLayerDrawingEvent(afterEvent); |
|
575 | 575 |
} else { |
576 | 576 |
// add the layer to the group |
577 | 577 |
group.setMapContext(fmap); |
578 | 578 |
group.add(lyr); |
579 |
|
|
579 |
|
|
580 | 580 |
} |
581 | 581 |
} |
582 | 582 |
} |
583 | 583 |
} else { |
584 | 584 |
// gets a new group instance |
585 | 585 |
group = lyr.newComposedLayer(); |
586 |
// if layer hasn't group, draws it inmediately
|
|
586 |
// if layer hasn't group, draws it inmediately |
|
587 | 587 |
if (group == null) { |
588 | 588 |
if (lyr instanceof FLayers){ |
589 | 589 |
group = ((FLayers)lyr).draw(image, g, viewPort, cancel,scale,group); |
... | ... | |
591 | 591 |
lyr.draw(image, g, viewPort, cancel,scale); |
592 | 592 |
} |
593 | 593 |
LayerDrawEvent afterEvent = new LayerDrawEvent(lyr, g, viewPort, LayerDrawEvent.LAYER_AFTER_DRAW); |
594 |
fmap.fireLayerDrawingEvent(afterEvent);
|
|
594 |
fmap.fireLayerDrawingEvent(afterEvent); |
|
595 | 595 |
} else { |
596 | 596 |
// adds the layer to the group |
597 | 597 |
group.setMapContext(fmap); |
... | ... | |
621 | 621 |
} |
622 | 622 |
|
623 | 623 |
} |
624 |
///// CHEMA ComposedLayer
|
|
624 |
///// CHEMA ComposedLayer |
|
625 | 625 |
if (group != null && this.getParentLayer() == null) { |
626 |
//si tenemos un grupo pendiente de pintar, pintamos
|
|
626 |
//si tenemos un grupo pendiente de pintar, pintamos |
|
627 | 627 |
group.draw(image, g, viewPort, cancel,scale); |
628 | 628 |
group = null; |
629 | 629 |
|
630 | 630 |
} |
631 |
///// CHEMA ComposedLayer
|
|
631 |
///// CHEMA ComposedLayer |
|
632 | 632 |
if (getVirtualLayers() != null) { |
633 | 633 |
getVirtualLayers().draw(image, g, viewPort, cancel,scale); |
634 | 634 |
} |
635 |
|
|
635 |
|
|
636 | 636 |
///// CHEMA ComposedLayer |
637 | 637 |
return group; |
638 | 638 |
///// CHEMA ComposedLayer |
639 |
|
|
639 |
|
|
640 | 640 |
// } |
641 | 641 |
// catch (ConcurrentModificationException e) |
642 | 642 |
// { |
643 | 643 |
// System.err.println(e.getMessage()); |
644 | 644 |
// } |
645 | 645 |
} |
646 |
|
|
646 |
|
|
647 | 647 |
/** |
648 | 648 |
* @see com.iver.cit.gvsig.fmap.layers.FLayer#print(java.awt.Graphics2D, |
649 | 649 |
* com.iver.cit.gvsig.fmap.ViewPort, |
... | ... | |
1214 | 1214 |
driver.setXMLEntity(xml.getChild(2)); |
1215 | 1215 |
|
1216 | 1216 |
boolean loadOk = false; |
1217 |
try { |
|
1218 |
((DefaultDBDriver)driver).load(); |
|
1219 |
if (((DefaultDBDriver)driver).getConnection() != null) { |
|
1220 |
loadOk = true; |
|
1221 |
} |
|
1217 |
if (driver instanceof DefaultDBDriver) { |
|
1218 |
try { |
|
1219 |
((DefaultDBDriver) driver).load(); |
|
1220 |
if (((DefaultDBDriver) driver) |
|
1221 |
.getConnection() != null) { |
|
1222 |
loadOk = true; |
|
1223 |
} |
|
1224 |
} catch (DriverException e) { |
|
1225 |
e.printStackTrace(); |
|
1226 |
loadOk = false; |
|
1227 |
} |
|
1228 |
} else { |
|
1229 |
try{ |
|
1230 |
((VectorialDatabaseDriver)driver).load(); |
|
1231 |
loadOk=true; |
|
1232 |
}catch (Exception e) { |
|
1233 |
loadOk=false; |
|
1234 |
} |
|
1235 |
} |
|
1222 | 1236 |
|
1223 |
} catch (DriverException e) { |
|
1224 |
e.printStackTrace(); |
|
1225 |
loadOk = false; |
|
1226 |
|
|
1227 |
} |
|
1228 |
|
|
1229 | 1237 |
layer = LayerFactory.createDBLayer(driver, name, proj); |
1230 | 1238 |
if (!loadOk) { |
1231 | 1239 |
layer.setAvailable(false); |
Also available in: Unified diff