Revision 6469 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/layout/fframes/FFrameLegend.java
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