Revision 6469 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/layout/fframes/FFrameLegend.java

View differences:

FFrameLegend.java
64 64
import java.awt.geom.AffineTransform;
65 65
import java.awt.geom.Rectangle2D;
66 66
import java.awt.image.BufferedImage;
67
import java.util.ArrayList;
68
import java.util.HashMap;
69
import java.util.Set;
67 70

  
71
import org.apache.batik.dom.util.HashTable;
68 72

  
73

  
69 74
/**
70 75
 * FFrame para introducir una leyenda en el Layout.
71 76
 *
......
82 87
    private int m_numLayers;
83 88
    private FLayers layers = null;
84 89
    private int dependenceIndex = -1;
90
	private ArrayList nameLayers=new ArrayList();
91
	private ArrayList areVisible=new ArrayList();
85 92

  
86 93
    /**
87 94
     * Rellena la calidad que se quiere aplicar.
......
204 211
            sizefont = (float) (re.getWidth() / (m_max * 0.7));
205 212
        }
206 213

  
214
        int l=0;
207 215
        //////Se recorren los layers dibujando el s?mbolo y su nombre sobre el graphics
208 216
        for (int i = layers.getLayersCount() - 1; i >= 0; i--) {
209 217
            FLayer layer = (FLayer) layers.getLayer(i);
218
            boolean b=false;
210 219

  
211
            if (layer.isVisible()) {
220
            if (nameLayers.size()>l && nameLayers.get(l).equals(layer.getName())) {
221
            	b=((Boolean)areVisible.get(l)).booleanValue();
222
            }else {
223
            	b=layer.isVisible();
224
            }
225
            l++;
226
            if (b) {
212 227
                if (layer instanceof FLayers) {
213 228
                    n[0]++;
214 229

  
......
454 469

  
455 470
        /////Aqu? hay que calcular cuantos layers y sublayers hay, para saber que distancias dejar entre uno y otro.
456 471
        ///y adem?s el tama?o de cada uno de ellos para saber que anchura dejar.
457
        for (int i = 0; i < layers.getLayersCount(); i++) {
472
        int l=0;
473
        for (int i = layers.getLayersCount()-1; i>=0; i--) {
458 474
            FLayer layer = (FLayer) layers.getLayer(i);
459

  
460
            if (layer.isVisible()) {
475
            boolean b=false;
476
            if (nameLayers.size()>l && nameLayers.get(l).equals(layer.getName())) {
477
            	b=((Boolean)areVisible.get(l)).booleanValue();
478
            }else {
479
            	b=layer.isVisible();
480
            }
481
            l++;
482
            if (b) {
483
            //if (layer.isVisible()) {
461 484
                if (layer.getName().length() > m_max) {
462 485
                    m_max = layer.getName().length();
463 486
                }
......
670 693
                    }
671 694
                }
672 695
            }
696

  
697
            String[] s=new String[nameLayers.size()];
698
            boolean[] b=new boolean[nameLayers.size()];
699
            for (int i=0;i<nameLayers.size();i++) {
700
            	String k=(String)nameLayers.get(i);
701
            	s[i]=k;
702
            	b[i]=((Boolean)areVisible.get(i)).booleanValue();
703
            }
704
            xml.putProperty("nameLayers",s);
705
            xml.putProperty("areVisible",b);
673 706
        } catch (Exception e) {
674 707
            throw new SaveException(e, this.getClass().getName());
675 708
        }
......
722 755
        if (xml.contains("index")) {
723 756
            dependenceIndex = xml.getIntProperty("index");
724 757
        }
758
        if (xml.contains("nameLayers")) {
759
        	String[] s=xml.getStringArrayProperty("nameLayers");
760
        	boolean[] b=xml.getBooleanArrayProperty("areVisible");
761
        	for (int i=0;i<s.length;i++) {
762
        		nameLayers.add(s[i]);
763
        		areVisible.add(new Boolean(b[i]));
764
        	}
765
        }
725 766
    }
726 767

  
727 768
    /**
......
756 797
		// TODO Auto-generated method stub
757 798

  
758 799
	}
800

  
801
	public void setNameLayers(ArrayList nameLayers) {
802
		this.nameLayers=nameLayers;
803
	}
804

  
805
	public void setAreVisible(ArrayList areVisible) {
806
		this.areVisible=areVisible;
807
	}
808

  
809
	public ArrayList getNameLayers() {
810
		return nameLayers;
811
	}
812

  
813
	public ArrayList getAreVisible() {
814
		return areVisible;
815
	}
759 816
}

Also available in: Unified diff