Revision 10293 branches/simbologia/libraries/libFMap/src/com/iver/cit/gvsig/fmap/rendering/VectorialUniqueValueLegend.java
VectorialUniqueValueLegend.java | ||
---|---|---|
85 | 85 |
* @author Vicente Caballero Navarro |
86 | 86 |
*/ |
87 | 87 |
public class VectorialUniqueValueLegend implements UniqueValueLegend, |
88 |
VectorialLegend {
|
|
89 |
private TreeMap symbols = new TreeMap(new Comparator() {
|
|
90 |
public int compare(Object o1, Object o2) {
|
|
91 |
if ((o1 != null) && (o2 != null)) {
|
|
92 |
Value v2 = (Value) o2;
|
|
93 |
Value v1 = (Value) o1;
|
|
94 |
BooleanValue boolVal;
|
|
88 |
VectorialLegend { |
|
89 |
private TreeMap symbols = new TreeMap(new Comparator() {
|
|
90 |
public int compare(Object o1, Object o2) {
|
|
91 |
if ((o1 != null) && (o2 != null)) {
|
|
92 |
Value v2 = (Value) o2;
|
|
93 |
Value v1 = (Value) o1;
|
|
94 |
BooleanValue boolVal;
|
|
95 | 95 |
|
96 |
// TODO estas dos comprobaciones son por evitar un bug en el gdbms, cuando se solucione se puede eliminar.
|
|
97 |
if (v1 instanceof NullValue && v2 instanceof NullValue) {
|
|
98 |
return 0;
|
|
99 |
}
|
|
96 |
// TODO estas dos comprobaciones son por evitar un bug en el gdbms, cuando se solucione se puede eliminar.
|
|
97 |
if (v1 instanceof NullValue && v2 instanceof NullValue) {
|
|
98 |
return 0;
|
|
99 |
}
|
|
100 | 100 |
|
101 |
if (v1 instanceof NullValue) {
|
|
102 |
return -1;
|
|
103 |
}
|
|
101 |
if (v1 instanceof NullValue) {
|
|
102 |
return -1;
|
|
103 |
}
|
|
104 | 104 |
|
105 |
if (v2 instanceof NullValue) {
|
|
106 |
return 1;
|
|
107 |
}
|
|
105 |
if (v2 instanceof NullValue) {
|
|
106 |
return 1;
|
|
107 |
}
|
|
108 | 108 |
|
109 |
try {
|
|
110 |
boolVal = (BooleanValue) (v1.greater(v2));
|
|
109 |
try {
|
|
110 |
boolVal = (BooleanValue) (v1.greater(v2));
|
|
111 | 111 |
|
112 |
if (boolVal.getValue()) {
|
|
113 |
return 1;
|
|
114 |
}
|
|
112 |
if (boolVal.getValue()) {
|
|
113 |
return 1;
|
|
114 |
}
|
|
115 | 115 |
|
116 |
boolVal = (BooleanValue) (v1.less(v2));
|
|
116 |
boolVal = (BooleanValue) (v1.less(v2));
|
|
117 | 117 |
|
118 |
if (boolVal.getValue()) {
|
|
119 |
return -1;
|
|
120 |
}
|
|
121 |
} catch (IncompatibleTypesException e) {
|
|
122 |
// TODO Auto-generated catch block
|
|
123 |
//e.printStackTrace();
|
|
124 |
}
|
|
118 |
if (boolVal.getValue()) {
|
|
119 |
return -1;
|
|
120 |
}
|
|
121 |
} catch (IncompatibleTypesException e) {
|
|
122 |
// TODO Auto-generated catch block
|
|
123 |
//e.printStackTrace();
|
|
124 |
}
|
|
125 | 125 |
|
126 |
try {
|
|
127 |
if (((BooleanValue) v1.equals(v2)).getValue()) {
|
|
128 |
return 0;
|
|
129 |
}
|
|
130 |
} catch (IncompatibleTypesException e) {
|
|
131 |
// TODO Auto-generated catch block
|
|
132 |
//e.printStackTrace();
|
|
133 |
}
|
|
126 |
try {
|
|
127 |
if (((BooleanValue) v1.equals(v2)).getValue()) {
|
|
128 |
return 0;
|
|
129 |
}
|
|
130 |
} catch (IncompatibleTypesException e) {
|
|
131 |
// TODO Auto-generated catch block
|
|
132 |
//e.printStackTrace();
|
|
133 |
}
|
|
134 | 134 |
|
135 |
if (v1 instanceof StringValue) {
|
|
136 |
return -1;
|
|
137 |
}
|
|
135 |
if (v1 instanceof StringValue) {
|
|
136 |
return -1;
|
|
137 |
}
|
|
138 | 138 |
|
139 |
if (v2 instanceof StringValue) {
|
|
140 |
return 1;
|
|
141 |
}
|
|
142 |
}
|
|
139 |
if (v2 instanceof StringValue) {
|
|
140 |
return 1;
|
|
141 |
}
|
|
142 |
}
|
|
143 | 143 |
|
144 |
return 0;
|
|
145 |
}
|
|
146 |
}); // Para poder ordenar
|
|
144 |
return 0;
|
|
145 |
}
|
|
146 |
}); // Para poder ordenar
|
|
147 | 147 |
private ArrayList keys = new ArrayList(); // En lugar de un HashSet, para tener acceso por ?ndice |
148 | 148 |
private String fieldName; |
149 | 149 |
protected int fieldId = -1; |
... | ... | |
173 | 173 |
} |
174 | 174 |
|
175 | 175 |
public void setShapeType(int shapeType) { |
176 |
if (this.shapeType != shapeType) {
|
|
177 |
switch (shapeType) {
|
|
178 |
case FShape.POINT:
|
|
179 |
defaultSymbol = new FSymbol(FConstant.SYMBOL_TYPE_POINT);
|
|
176 |
if (this.shapeType != shapeType) {
|
|
177 |
switch (shapeType) {
|
|
178 |
case FShape.POINT:
|
|
179 |
defaultSymbol = new FSymbol(FConstant.SYMBOL_TYPE_POINT);
|
|
180 | 180 |
|
181 |
break;
|
|
181 |
break;
|
|
182 | 182 |
|
183 |
case FShape.LINE:
|
|
184 |
defaultSymbol = new FSymbol(FConstant.SYMBOL_TYPE_LINE);
|
|
183 |
case FShape.LINE:
|
|
184 |
defaultSymbol = new FSymbol(FConstant.SYMBOL_TYPE_LINE);
|
|
185 | 185 |
|
186 |
break;
|
|
186 |
break;
|
|
187 | 187 |
|
188 |
case FShape.POLYGON:
|
|
189 |
defaultSymbol = new FSymbol(FConstant.SYMBOL_TYPE_FILL);
|
|
188 |
case FShape.POLYGON:
|
|
189 |
defaultSymbol = new FSymbol(FConstant.SYMBOL_TYPE_FILL);
|
|
190 | 190 |
|
191 |
break;
|
|
191 |
break;
|
|
192 | 192 |
|
193 |
default:
|
|
194 |
defaultSymbol = new FSymbol(shapeType);
|
|
195 |
}
|
|
193 |
default:
|
|
194 |
defaultSymbol = new FSymbol(shapeType);
|
|
195 |
}
|
|
196 | 196 |
|
197 |
this.shapeType = shapeType;
|
|
198 |
}
|
|
197 |
this.shapeType = shapeType;
|
|
198 |
}
|
|
199 | 199 |
} |
200 | 200 |
|
201 | 201 |
public void setValueSymbolByID(int id, ISymbol symbol) { |
Also available in: Unified diff