Revision 11243 trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/layers/FLayers.java

View differences:

FLayers.java
417 417
			Cancellable cancel,double scale) throws ReadDriverException {
418 418
		draw(image,g,viewPort,cancel, scale, null);
419 419
	}
420
	
421
	
420

  
421

  
422 422
	public ComposedLayer draw(BufferedImage image, Graphics2D g, ViewPort viewPort,
423 423
			Cancellable cancel,double scale, ComposedLayer group) throws ReadDriverException {
424 424
	    //double scale = getFMap().getScaleView();
......
431 431
		    long tg1 = System.currentTimeMillis();
432 432
   			///// CHEMA ComposedLayer
433 433

  
434
        	
435
        	
434

  
435

  
436 436
//    		while (iter.hasNext())
437 437
//    		{
438 438
    		 for (int i=0; i < layers.size(); i++) {
......
442 442
    			FLayer lyr = (FLayer) layers.get(i);
443 443

  
444 444

  
445
    			
446
    			
445

  
446

  
447 447
    		/*	if (lyr instanceof FLyrVect && ((FLyrVect)lyr).isBroken()){
448 448
    				continue;
449 449
    			}
......
452 452
    			fmap.fireLayerDrawingEvent(beforeEvent);
453 453
    			if ((lyr.isDirty()) || (lyr.isCachingDrawnLayers() == false))
454 454
    				bNeedRecalculateCache = true;
455
    			
455

  
456 456
    			if (lyr.isVisible()) {
457
    				
457

  
458 458
    				long t1 = System.currentTimeMillis();
459 459
    				System.err.println("Layer " + lyr.getName() + " dirty=" + lyr.isDirty());
460 460
    				// synchronized (this) {
......
469 469
    					    lyr.draw(image, g, viewPort, cancel,scale);
470 470
    					    // Si hay que acumlar:
471 471
    					     lyr.acumulateDrawing(antLayer);
472
    					     
472

  
473 473
    					     }
474 474
    					     else */
475
    					
475

  
476 476
    					if (lyr.isCachingDrawnLayers())
477 477
    					{
478 478
    						if ((bNeedRecalculateCache) || (lyr.getCacheImageDrawnLayers()==null))
479 479
    						{
480 480
    							//if (bNeedRecalculateCache)
481 481
    							// {
482
    							
482

  
483 483
    							///// CHEMA ComposedLayer
484 484
    							if (group != null) {
485 485
    								//si tenemos un grupo pendiente de pintar, pintamos
......
488 488
    								group = null;
489 489
    							}
490 490
    							///// CHEMA ComposedLayer
491
    							
492
    							
491

  
492

  
493 493
    							// Copiamos la imagen actual
494 494
    							BufferedImage buff = new BufferedImage(image.getWidth(), image.getHeight(), image.getType());
495 495
    							WritableRaster w = buff.getRaster();
......
507 507
    							// prepareDrawing de FMap.
508 508
    							if (lyr.isDirty())
509 509
    							{
510
    								
511
    								
510

  
511

  
512 512
    								///// CHEMA ComposedLayer
513 513
    								// Checks for draw group (ComposedLayer)
514 514
    								if (group != null) {
......
517 517
    									group = null;
518 518
    								}
519 519
    								///// CHEMA ComposedLayer
520
    								
521
    								
520

  
521

  
522 522
    								g.drawImage(lyr.getCacheImageDrawnLayers(), 0, 0, null);
523 523
    								System.err.println("Pinto con acelerado lo que hab?a antes de " + lyr.getName());
524 524
    							}
......
532 532
    						///// CHEMA ComposedLayer
533 533
    						//lyr.draw(image, g, viewPort, cancel,scale);
534 534
    						///// CHEMA ComposedLayer
535
    						
535

  
536 536
    						// Checks for draw group (ComposedLayer)
537 537
    						if (group != null) {
538 538
    							if (lyr instanceof FLayers){
......
546 546
    								} else {
547 547
    									// draw the 'pending to draw' layer group
548 548
    									group.draw(image, g, viewPort, cancel,scale);
549
    									
549

  
550 550
    									// gets a new group instance
551 551
    									group = lyr.newComposedLayer();
552
    									// if layer hasn't group, draws it inmediately 
552
    									// if layer hasn't group, draws it inmediately
553 553
    									if (group == null) {
554 554
    										if (lyr instanceof FLayers){
555 555
    											group = ((FLayers)lyr).draw(image, g, viewPort, cancel,scale,group);
......
557 557
    											lyr.draw(image, g, viewPort, cancel,scale);
558 558
    										}
559 559
    										LayerDrawEvent afterEvent = new LayerDrawEvent(lyr, g, viewPort, LayerDrawEvent.LAYER_AFTER_DRAW);
560
    										fmap.fireLayerDrawingEvent(afterEvent);   		   			        					
560
    										fmap.fireLayerDrawingEvent(afterEvent);
561 561
    									} else {
562 562
    										// add the layer to the group
563 563
    										group.setMapContext(fmap);
564 564
    										group.add(lyr);
565
    										
565

  
566 566
    									}
567 567
    								}
568 568
    							}
569 569
    						} else {
570 570
    							// gets a new group instance
571 571
    							group = lyr.newComposedLayer();
572
    							// if layer hasn't group, draws it inmediately 
572
    							// if layer hasn't group, draws it inmediately
573 573
    							if (group == null) {
574 574
    								if (lyr instanceof FLayers){
575 575
    									group = ((FLayers)lyr).draw(image, g, viewPort, cancel,scale,group);
......
577 577
    									lyr.draw(image, g, viewPort, cancel,scale);
578 578
    								}
579 579
    								LayerDrawEvent afterEvent = new LayerDrawEvent(lyr, g, viewPort, LayerDrawEvent.LAYER_AFTER_DRAW);
580
    								fmap.fireLayerDrawingEvent(afterEvent);	   			        				
580
    								fmap.fireLayerDrawingEvent(afterEvent);
581 581
    							} else {
582 582
    								// adds the layer to the group
583 583
    								group.setMapContext(fmap);
......
585 585
    							}
586 586
    						}
587 587
    						///// CHEMA ComposedLayer
588
    						
589
    						/* 
588

  
589
    						/*
590 590
    						 * (Jaume)
591 591
    						 * If the layer is instance of ILabelable then it may have labels.
592 592
    						 */
593 593
    						if (lyr instanceof ILabelable && ((ILabelable) lyr).isLabeled()) {
594
    							
595
    							///// CHEMA ComposedLayer   			        				
594

  
595
    							///// CHEMA ComposedLayer
596 596
    							if (group != null) {
597 597
    								//si tenemos un grupo pendiente de pintar, pintamos
598 598
    								// para que se pinten correctamente las etiquetas
......
600 600
    								group = null;
601 601
    							}
602 602
    							///// CHEMA ComposedLayer
603
    							
604
    							
603

  
604

  
605 605
    							((ILabelable) lyr).drawLabels(image, g, viewPort, cancel, scale);
606 606
    						}
607 607
    						bNeedRecalculateCache = true;
......
627 627
    		 }
628 628
    		 ///// CHEMA ComposedLayer
629 629
    		if (group != null && this.getParentLayer() == null) {
630
 				//si tenemos un grupo pendiente de pintar, pintamos    			 
630
 				//si tenemos un grupo pendiente de pintar, pintamos
631 631
 				group.draw(image, g, viewPort, cancel,scale);
632 632
 				group = null;
633 633

  
......
636 636
    		if (getVirtualLayers() != null) {
637 637
    			getVirtualLayers().draw(image, g, viewPort, cancel,scale);
638 638
    		}
639
    		
640
    		
639

  
640

  
641 641
//        }
642 642
//        catch (ConcurrentModificationException e)
643 643
//        {
644 644
//            System.err.println(e.getMessage());
645 645
//        }
646 646
			long tg2 = System.currentTimeMillis();
647
			
647

  
648 648
			System.out.println("Draw all layer " +this.getName() + " " +
649 649
			        + (tg2-tg1) + " milisecs.");
650 650
    		///// CHEMA ComposedLayer
651 651
    		return group;
652 652
    		///// CHEMA ComposedLayer
653
			
653

  
654 654
	}
655
	
655

  
656 656
	/**
657 657
	 * @see com.iver.cit.gvsig.fmap.layers.FLayer#print(java.awt.Graphics2D,
658 658
	 * 		com.iver.cit.gvsig.fmap.ViewPort,
......
667 667
		for (int i=0; i < layers.size(); i++) {
668 668
			FLayer lyr = (FLayer) layers.get(i);
669 669
			lyr.print(g, viewPort, cancel, scale, properties);
670
			if (lyr instanceof ILabelable) {
670
			if (lyr instanceof ILabelable && ((ILabelable) lyr).isLabeled()) {
671 671
				ILabelable lLayer = (ILabelable) lyr;
672 672

  
673 673
				lLayer.drawLabels(null, g, viewPort, cancel, scale);

Also available in: Unified diff