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

View differences:

FLayers.java
424 424
   			///// CHEMA ComposedLayer
425 425
		    long tg1 = System.currentTimeMillis();
426 426
			ComposedLayer group = null;
427
			ArrayList pendingEvents= new ArrayList();        	
427
			ArrayList pendingEvents= new ArrayList();
428 428
        	boolean fireAfterDrawEvent = true;
429 429
   			///// CHEMA ComposedLayer
430 430

  
431
        	
432
        	
431

  
432

  
433 433
//    		while (iter.hasNext())
434 434
//    		{
435 435
    		 for (int i=0; i < layers.size(); i++) {
......
439 439
    			FLayer lyr = (FLayer) layers.get(i);
440 440

  
441 441

  
442
       			///// CHEMA ComposedLayer    			
442
       			///// CHEMA ComposedLayer
443 443
    			fireAfterDrawEvent = true;
444 444
    			///// CHEMA ComposedLayer
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();
......
490 490
    			        				group = null;
491 491
    			        			}
492 492
       			        			///// CHEMA ComposedLayer
493
       			        			
494 493

  
494

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

  
513

  
514 514
	    	   			        			///// CHEMA ComposedLayer
515 515
	    			        				// Checks for draw group (ComposedLayer)
516 516
	        			        			if (group != null) {
......
521 521
	        			        				group = null;
522 522
	        			        			}
523 523
	           			        			///// CHEMA ComposedLayer
524
	           			        			
525 524

  
525

  
526 526
	    			        				g.drawImage(lyr.getCacheImageDrawnLayers(), 0, 0, null);
527 527
	    			        				System.err.println("Pinto con acelerado lo que hab?a antes de " + lyr.getName());
528 528
	    			        			}
......
552 552

  
553 553
   		   			        			// gets a new group instance
554 554
   		   			        			group = lyr.newComposedLayer();
555
   		   			        			// if layer hasn't group, draws it inmediately 
555
   		   			        			// if layer hasn't group, draws it inmediately
556 556
   		   			        			if (group == null) {
557 557
   		   			        				lyr.draw(image, g, viewPort, cancel,scale);
558 558
   		   			        			} else {
......
565 565
   			        			} else {
566 566
	   			        			// gets a new group instance
567 567
	   			        			group = lyr.newComposedLayer();
568
	   			        			// if layer hasn't group, draws it inmediately 
568
	   			        			// if layer hasn't group, draws it inmediately
569 569
	   			        			if (group == null) {
570 570
	   			        				lyr.draw(image, g, viewPort, cancel,scale);
571 571
	   			        			} else {
......
576 576
	   			        			}
577 577
   			        			}
578 578
   			        			///// CHEMA ComposedLayer
579
   			        			
580
   			        			/* 
579

  
580
   			        			/*
581 581
   			        			 * (Jaume)
582 582
   			        			 * If the layer is instance of ILabelable then it may have labels.
583 583
   			        			 */
584 584
   			        			if (lyr instanceof ILabelable && ((ILabelable) lyr).isLabeled()) {
585
   			        				
586
   	   			        			///// CHEMA ComposedLayer   			        				
585

  
586
   	   			        			///// CHEMA ComposedLayer
587 587
    			        			if (group != null) {
588 588
    			        				//si tenemos un grupo pendiente de pintar, pintamos
589 589
    			        				// para que se pinten correctamente las etiquetas
......
594 594
    			        			}
595 595
       			        			///// CHEMA ComposedLayer
596 596

  
597
    			        			
597

  
598 598
   			        				((ILabelable) lyr).drawLabels(image, g, viewPort, cancel, scale);
599 599
   			        			}
600 600
   			        			bNeedRecalculateCache = true;
......
622 622
    			///// CHEMA ComposedLayer
623 623
    				LayerDrawEvent afterEvent = new LayerDrawEvent(lyr, g, viewPort, LayerDrawEvent.LAYER_AFTER_DRAW);
624 624
    				fmap.fireLayerDrawingEvent(afterEvent);
625
    			///// CHEMA ComposedLayer	
625
    			///// CHEMA ComposedLayer
626 626
    			}
627 627
    			///// CHEMA ComposedLayer
628 628
    		 }
629
    		 
630
    		///// CHEMA ComposedLayer 
629

  
630
    		///// CHEMA ComposedLayer
631 631
    		if (group != null) {
632
 				//si tenemos un grupo pendiente de pintar, pintamos    			 
632
 				//si tenemos un grupo pendiente de pintar, pintamos
633 633
 				group.draw(image, g, viewPort, cancel,scale);
634 634
				fireLayerDrawingEvents(pendingEvents);
635 635

  
......
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 "
649 649
			        + (tg2-tg1) + " milisecs.");
650
			
650

  
651 651
	}
652
	
652

  
653 653
	private void fireLayerDrawingEvents(Collection events) {
654 654
		Iterator iter = events.iterator();
655 655
		LayerDrawEvent afterEvent;
......
659 659
			fmap.fireLayerDrawingEvent(afterEvent);
660 660
		}
661 661
	}
662
	
662

  
663 663
	/**
664 664
	 * @see com.iver.cit.gvsig.fmap.layers.FLayer#print(java.awt.Graphics2D,
665 665
	 * 		com.iver.cit.gvsig.fmap.ViewPort,
......
674 674
		for (int i=0; i < layers.size(); i++) {
675 675
			FLayer lyr = (FLayer) layers.get(i);
676 676
			lyr.print(g, viewPort, cancel, scale, properties);
677
			if (lyr instanceof ILabelable) {
678
				ILabelable lLayer = (ILabelable) lyr;
677 679

  
680
				lLayer.drawLabels(null, g, viewPort, cancel, scale);
681
			}
678 682
		}
679 683
		 if (getVirtualLayers() != null) {
680 684
            getVirtualLayers().print( g, viewPort, cancel,scale, properties);

Also available in: Unified diff