Revision 43524 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/rendering/symbols/impl/DefaultSymbolManager.java

View differences:

DefaultSymbolManager.java
100 100

  
101 101
    private Map symbolsByShapeType = Collections.synchronizedMap(new HashMap());
102 102

  
103
    private Map multiLineSymbolsByName
103
    private Map multiLayerSymbolsByName
104 104
            = Collections.synchronizedMap(new HashMap());
105 105

  
106
    private Map multiLineSymbolsByShapeType
106
    private Map multiLayerSymbolsByShapeType
107 107
            = Collections.synchronizedMap(new HashMap());
108 108

  
109 109
    private IWarningSymbol warningSymbol;
......
385 385
    public IMultiLayerSymbol createMultiLayerSymbol(String symbolName)
386 386
            throws MapContextRuntimeException {
387 387
        return (IMultiLayerSymbol) createSymbol(symbolName,
388
                (Class) multiLineSymbolsByName.get(symbolName),
388
                (Class) multiLayerSymbolsByName.get(symbolName),
389 389
                IMultiLayerSymbol.class);
390 390
    }
391 391

  
392 392
    public IMultiLayerSymbol createMultiLayerSymbol(int shapeType)
393 393
            throws MapContextRuntimeException {
394
        String symbolName = getSymbolName(multiLineSymbolsByShapeType, shapeType);
394
        String symbolName = getSymbolName(multiLayerSymbolsByShapeType, shapeType);
395 395

  
396 396
        return symbolName == null ? null : createMultiLayerSymbol(symbolName);
397 397
    }
......
406 406
        if (symbolName == null) {
407 407
            GeometryManager geomManager = GeometryLocator.getGeometryManager();
408 408
            GeometryType shapeGeometryType;
409
            try {
410
                shapeGeometryType = geomManager.getGeometryType(shapeType, Geometry.SUBTYPES.UNKNOWN);
411 409
                Iterator it = symbols.keySet().iterator();
412 410
                while (it.hasNext()) {
413 411
                    Integer geomType = (Integer) it.next();
414
                    GeometryType geomGeometryType =
415
                        geomManager.getGeometryType(geomType.intValue(), Geometry.SUBTYPES.UNKNOWN);
416
                    if (shapeGeometryType.isSubTypeOf(geomGeometryType)) {
417
                        symbolName = (String) symbols.get(geomType);
418
                        break;
419
                    }
412
                  if (geomManager.isSubtype(geomType, shapeType)) {
413
                      symbolName = (String) symbols.get(geomType);
414
                      break;
415
                  }
420 416
                }
421
            } catch (GeometryTypeNotSupportedException e) {
422
                // do nothing
423
            } catch (GeometryTypeNotValidException e) {
424
                // do nothing
425
            }
426 417
        }
427 418
        return symbolName;
428 419
    }
......
454 445
                    symbolClass, symbolName);
455 446
        }
456 447

  
457
        multiLineSymbolsByName.put(symbolName, symbolClass);
448
        multiLayerSymbolsByName.put(symbolName, symbolClass);
458 449
    }
459 450

  
460 451
    public void registerMultiLayerSymbol(String symbolName, int[] shapeTypes,
......
462 453
        registerMultiLayerSymbol(symbolName, symbolClass);
463 454
        if (shapeTypes != null) {
464 455
            for (int i = 0; i < shapeTypes.length; i++) {
465
                multiLineSymbolsByShapeType.put(new Integer(shapeTypes[i]),
456
                multiLayerSymbolsByShapeType.put(new Integer(shapeTypes[i]),
466 457
                        symbolName);
467 458
            }
468 459
        }

Also available in: Unified diff