Revision 26365 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/styling/SymbolLevelsWindow.java
SymbolLevelsWindow.java | ||
---|---|---|
282 | 282 |
dataVector[i][DESCRIPTION_COLUMN_INDEX] = labels[i]; |
283 | 283 |
if (syms[i] instanceof IMultiLayerSymbol) { |
284 | 284 |
boolean joined = true; |
285 |
IMultiLayerSymbol mlSymbol = (IMultiLayerSymbol) syms[i]; |
|
286 |
// is joined if each layer belongs to distinct level |
|
287 |
for (int j = 0; j < mlSymbol.getLayerCount(); j++) { |
|
288 |
if (joined) |
|
289 |
joined = zSort.getSymbolLevel(mlSymbol.getLayer(j)) != zSort.getSymbolLevel(mlSymbol.getLayer(j+1)); |
|
285 |
int[] levels = zSort.getLevels(syms[i]); |
|
286 |
if(levels != null){ |
|
287 |
for (int j = 0; j < levels.length; j++) { |
|
288 |
if (joined) |
|
289 |
joined = levels[j] != levels[j+1]; |
|
290 |
} |
|
290 | 291 |
} |
291 | 292 |
|
292 | 293 |
|
294 |
|
|
293 | 295 |
boolean merged = true; |
294 | 296 |
if (i<syms.length-1) { |
295 |
for (int j = 0; joined && j < mlSymbol.getLayerCount(); j++) {
|
|
297 |
for (int j = 0; joined && j < levels.length; j++) {
|
|
296 | 298 |
// must be joined to be merged |
297 | 299 |
ISymbol nextSymbol = syms[i+1]; |
298 |
if (nextSymbol instanceof IMultiLayerSymbol) { |
|
299 |
IMultiLayerSymbol nextMLSymbol = (IMultiLayerSymbol) nextSymbol; |
|
300 |
if (j<nextMLSymbol.getLayerCount()) { |
|
301 |
merged = zSort.getSymbolLevel(mlSymbol.getLayer(j)) == zSort.getSymbolLevel(nextMLSymbol.getLayer(j)); |
|
300 |
int[] nextLevels = zSort.getLevels(nextSymbol); |
|
301 |
if(nextLevels != null){ |
|
302 |
if (nextSymbol instanceof IMultiLayerSymbol) { |
|
303 |
if (j<nextLevels.length) { |
|
304 |
merged = levels[j] == nextLevels[j]; |
|
305 |
} |
|
306 |
} else { |
|
307 |
merged = levels[0] == nextLevels[0]; |
|
302 | 308 |
} |
303 |
} else { |
|
304 |
merged = zSort.getSymbolLevel(mlSymbol.getLayer(0)) == zSort.getSymbolLevel(nextSymbol); |
|
305 | 309 |
} |
306 | 310 |
} |
307 | 311 |
if (!merged) |
... | ... | |
338 | 342 |
dataVector[i][SYMBOL_COLUMN_INDEX] = syms[i]; |
339 | 343 |
dataVector[i][DESCRIPTION_COLUMN_INDEX] = labels[i]; |
340 | 344 |
if (syms[i] instanceof IMultiLayerSymbol) { |
341 |
IMultiLayerSymbol mySym = (IMultiLayerSymbol) syms[i]; |
|
342 |
for (int j = 0; j < mySym.getLayerCount(); j++) { |
|
343 |
dataVector[i][j+FIRST_LEVEL_COLUMN_INDEX] = new Integer(zSort.getSymbolLevel(mySym.getLayer(j))); |
|
345 |
int[] levels = zSort.getLevels(syms[i]); |
|
346 |
|
|
347 |
for (int j = 0; j < levels.length; j++) { |
|
348 |
dataVector[i][j+FIRST_LEVEL_COLUMN_INDEX] = levels[j]; |
|
344 | 349 |
} |
345 | 350 |
} else { |
346 |
dataVector[i][FIRST_LEVEL_COLUMN_INDEX] = new Integer(zSort.getSymbolLevel(syms[i]));
|
|
351 |
dataVector[i][FIRST_LEVEL_COLUMN_INDEX] = new Integer(zSort.getLevels(syms[i])[0]);
|
|
347 | 352 |
} |
348 | 353 |
} |
349 | 354 |
|
Also available in: Unified diff