Index: org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/impl/AbstractSymbol.java =================================================================== --- org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/impl/AbstractSymbol.java (revisión: 37835) +++ org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/impl/AbstractSymbol.java (copia de trabajo) @@ -46,7 +46,7 @@ * of AbstractSymbol class) * * @author 2005-2008 jaume dominguez faus - jaume.dominguez@iver.es - * @author 2009- César Ordiñana - gvSIG team + * @author 2009- C�sar Ordi�ana - gvSIG team */ public abstract class AbstractSymbol implements ISymbol, CartographicSupport { @@ -206,7 +206,10 @@ state.set(FIELD_REFERENCE_SYSTEM, getReferenceSystem()); state.set(FIELD_UNIT, getUnit()); } - + public boolean is3D() { + // TODO Auto-generated method stub + return false; + } public static class RegisterPersistence implements Callable { public Object call() throws Exception { Index: org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/impl/FSymbol.java =================================================================== --- org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/impl/FSymbol.java (revisión: 37835) +++ org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/impl/FSymbol.java (copia de trabajo) @@ -92,7 +92,7 @@ */ public class FSymbol implements ISymbol{ private static final Logger logger = LoggerFactory.getLogger(FSymbol.class); -// Para símbolos de tipo polígono. +// Para s�mbolos de tipo pol�gono. public final static int SYMBOL_STYLE_FILL_SOLID = 1; public final static int SYMBOL_STYLE_FILL_TRANSPARENT = 2; public final static int SYMBOL_STYLE_FILL_HORIZONTAL = 3; @@ -105,7 +105,7 @@ public final static int SYMBOL_STYLE_FILL_LIGHTGRAYFILL = 10; public final static int SYMBOL_STYLE_FILL_DARKGRAYFILL = 11; - // Para símbolos de tipo Punto + // Para s�mbolos de tipo Punto public final static int SYMBOL_STYLE_MARKER_CIRCLE = 30; public final static int SYMBOL_STYLE_MARKER_SQUARE = 31; public final static int SYMBOL_STYLE_MARKER_TRIANGLE = 32; @@ -114,7 +114,7 @@ public final static int SYMBOL_STYLE_MARKER_IMAGEN = 35; public final static int SYMBOL_STYLE_DGNSPECIAL = 40; - // Para símbolos de líneas + // Para s�mbolos de l�neas public final static int SYMBOL_STYLE_LINE_SOLID = 60; public final static int SYMBOL_STYLE_LINE_DASH = 61; public final static int SYMBOL_STYLE_LINE_DOT = 62; @@ -123,7 +123,7 @@ public final static int SYMBOL_STYLE_LINE_RAIL = 65; public final static int SYMBOL_STYLE_LINE_ARROW = 66; - // Para símbolos de tipo texto + // Para s�mbolos de tipo texto public final static int SYMBOL_STYLE_TEXT_NORMAL = 90; public final static int SYMBOL_STYLE_TEXT_CURSIVE = 91; public final static int SYMBOL_STYLE_TEXT_BOLD = 92; @@ -1067,7 +1067,10 @@ // TODO Auto-generated method stub } - + public boolean is3D() { + // TODO Auto-generated method stub + return false; + } public void print(Graphics2D g, AffineTransform at, Geometry shape, PrintAttributes properties){ int strokeValue=0; BasicStroke stroke=(BasicStroke)this.getStroke(); Index: org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/impl/MultiShapeSymbol.java =================================================================== --- org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/impl/MultiShapeSymbol.java (revisión: 37835) +++ org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/impl/MultiShapeSymbol.java (copia de trabajo) @@ -60,7 +60,7 @@ * marker,line or fill. * * @author 2005-2008 jaume dominguez faus - jaume.dominguez@iver.es - * @author 2009- César Ordiñana - gvSIG team + * @author 2009- C�sar Ordi�ana - gvSIG team */ public class MultiShapeSymbol implements ILineSymbol, IMarkerSymbol, IFillSymbol, IMultiShapeSymbol { @@ -676,5 +676,10 @@ } } + + public boolean is3D() { + // TODO Auto-generated method stub + return false; + } } \ No newline at end of file Index: org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/warning/impl/WarningSymbol.java =================================================================== --- org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/warning/impl/WarningSymbol.java (revisión: 37835) +++ org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/symbol/warning/impl/WarningSymbol.java (copia de trabajo) @@ -50,7 +50,7 @@ * Warning symbol * * @author 2005-2008 jaume dominguez faus - jaume.dominguez@iver.es - * @author 2009- César Ordiñana - gvSIG team + * @author 2009- C�sar Ordi�ana - gvSIG team */ public class WarningSymbol extends MultiShapeSymbol implements IWarningSymbol { @@ -226,5 +226,8 @@ } } - + public boolean is3D() { + // TODO Auto-generated method stub + return false; + } } \ No newline at end of file Index: org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/VectorialUniqueValueLegend.java =================================================================== --- org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/VectorialUniqueValueLegend.java (revisión: 37835) +++ org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/VectorialUniqueValueLegend.java (copia de trabajo) @@ -52,7 +52,7 @@ * Vectorial legend for unique values * * @author Vicente Caballero Navarro - * @author 2009- César Ordiñana - gvSIG team + * @author 2009- C�sar Ordi�ana - gvSIG team */ public class VectorialUniqueValueLegend extends AbstractClassifiedVectorLegend implements IVectorialUniqueValueLegend { final static private Logger LOG = LoggerFactory.getLogger(VectorialUniqueValueLegend.class); @@ -95,13 +95,15 @@ if (this.shapeType != shapeType) { if(defaultSymbol==null || defaultSymbol.getSymbolType()!=shapeType){ ISymbol old = defaultSymbol; - defaultSymbol = getSymbolManager().createSymbol(shapeType); + if (this._domain == "project.document.view3d") + defaultSymbol = getSymbolManager().createSymbol(shapeType,_domain); + else defaultSymbol = getSymbolManager().createSymbol(shapeType); fireDefaultSymbolChangedEvent(new SymbolLegendEvent(old, defaultSymbol)); } this.shapeType = shapeType; } } - + public void setValueSymbolByID(int id, ISymbol symbol) { ISymbol old = (ISymbol)symbols.put(keys.get(id), symbol); fireClassifiedSymbolChangeEvent(new SymbolLegendEvent(old, symbol)); @@ -121,7 +123,7 @@ resul = (ISymbol) symbols.put(key, symbol); if (resul != null) { - LOG.error("Error: la clave " + key + " ya existía. Resul = " + LOG.error("Error: la clave " + key + " ya exist�a. Resul = " + resul); LOG.warn("symbol nuevo:" + symbol.getDescription() + " Sviejo= " + resul.getDescription()); @@ -179,14 +181,14 @@ } /** - * Devuelve un símbolo a partir de una IFeature. OJO!! Cuando usamos un - * feature iterator de base de datos el único campo que vendrá rellenado es - * el de fieldID. Los demás vendrán a nulos para ahorra tiempo de creación. + * Devuelve un s�mbolo a partir de una IFeature. OJO!! Cuando usamos un + * feature iterator de base de datos el �nico campo que vendr� rellenado es + * el de fieldID. Los dem�s vendr�n a nulos para ahorra tiempo de creaci�n. * * @param feat * IFeature * - * @return Símbolo. + * @return S�mbolo. * @throws MapContextException */ public ISymbol getSymbolByFeature(Feature feat) throws MapContextException { @@ -211,7 +213,10 @@ public ISymbol getDefaultSymbol() { if(defaultSymbol==null) { - defaultSymbol = getSymbolManager().createSymbol(shapeType); + if (this._domain!="") + defaultSymbol = getSymbolManager().createSymbol(shapeType,_domain); + else + defaultSymbol = getSymbolManager().createSymbol(shapeType); fireDefaultSymbolChangedEvent(new SymbolLegendEvent(null, defaultSymbol)); } return defaultSymbol; Index: org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/AbstractClassifiedVectorLegend.java =================================================================== --- org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/AbstractClassifiedVectorLegend.java (revisión: 37835) +++ org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/AbstractClassifiedVectorLegend.java (copia de trabajo) @@ -41,7 +41,7 @@ * clear the legend). * * @author 2008- pepe vidal salvador - jose.vidal.salvador@iver.es - * @author 2009- César Ordiñana - gvSIG team + * @author 2009- C�sar Ordi�ana - gvSIG team */ public abstract class AbstractClassifiedVectorLegend extends AbstractVectorialLegend implements IClassifiedVectorLegend { @@ -52,9 +52,20 @@ private static final String FIELD_FIELD_NAMES = "fieldNames"; private static final String FIELD_FIELD_TYPES = "fieldTypes"; + protected String _domain=""; private String[] fieldNames; private int[] fieldTypes; + + + public void setDomain(String domain) + { + _domain=domain; + } + public String getDomain() + { + return _domain; + } /** * Looks for a change in a classified symbol of a legend. To perform it, the * Array of LegendListeners is scaned and when the corresponding listener is Index: org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/VectorialIntervalLegend.java =================================================================== --- org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/VectorialIntervalLegend.java (revisión: 37835) +++ org.gvsig.symbology.lib/org.gvsig.symbology.lib.impl/src/main/java/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/VectorialIntervalLegend.java (copia de trabajo) @@ -46,7 +46,7 @@ *

* * @author Vicente Caballero Navarro - * @author 2009- César Ordiñana - gvSIG team + * @author 2009- C�sar Ordi�ana - gvSIG team */ public class VectorialIntervalLegend extends AbstractIntervalLegend { // final static private Logger LOG = LoggerFactory.getLogger(VectorialIntervalLegend.class); @@ -121,7 +121,9 @@ public void setShapeType(int shapeType) { if (this.shapeType != shapeType) { if(defaultSymbol==null || defaultSymbol.getSymbolType()!=shapeType){ - setDefaultSymbol(getSymbolManager().createSymbol(shapeType)); + if (this._domain=="project.document.view3d") + setDefaultSymbol(getSymbolManager().createSymbol(shapeType,this._domain)); + else setDefaultSymbol(getSymbolManager().createSymbol(shapeType)); } this.shapeType = shapeType; } Index: org.gvsig.symbology.swing/org.gvsig.symbology.swing.api/src/main/java/org/gvsig/app/gui/styling/SymbolSelector.java =================================================================== --- org.gvsig.symbology.swing/org.gvsig.symbology.swing.api/src/main/java/org/gvsig/app/gui/styling/SymbolSelector.java (revisión: 37835) +++ org.gvsig.symbology.swing/org.gvsig.symbology.swing.api/src/main/java/org/gvsig/app/gui/styling/SymbolSelector.java (copia de trabajo) @@ -1,7 +1,7 @@ /* * Created on 26-abr-2005 * - * gvSIG. Sistema de Información Geográfica de la Generalitat Valenciana + * gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana * * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana. * @@ -23,7 +23,7 @@ * * Generalitat Valenciana * Conselleria d'Infraestructures i Transport - * Av. Blasco Ibáñez, 50 + * Av. Blasco Ib��ez, 50 * 46010 VALENCIA * SPAIN * @@ -58,6 +58,10 @@ import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.io.File; +import java.lang.reflect.Constructor; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; import javax.swing.BorderFactory; import javax.swing.BoxLayout; @@ -1064,6 +1068,42 @@ public static ISymbolSelector createSymbolSelector(Object currSymbol, int shapeType) { return createSymbolSelector(currSymbol, shapeType, null); } + + //private static HashMap > symbolRegistry; + private static Map symbolRegistry = Collections.synchronizedMap(new HashMap >()); + public static void registerSymbolSelector(String domain, Class symio) + { + symbolRegistry.put(domain, symio); + } + + + public static Object createRegisteredSymbolSelector(String domain, Object currSymbol, int shapeType) + { + Object symSel=null; + Constructor symConstructor= null; + if(symbolRegistry.containsKey(domain)) + { + Class myclass = (Class) symbolRegistry.get(domain); + + Class parTypes[] = new Class[3]; + parTypes[0] = String.class; + parTypes[1] = ISymbol.class; + parTypes[2] = java.lang.Integer.class; + + + + try{ + + symConstructor = myclass.getConstructor(parTypes); + symSel= symConstructor.newInstance(domain, (ISymbol)currSymbol, shapeType); + + }catch (Exception e) { + System.out.println("SymbolSelector not registered or constructor not found"); + } + + } + return symSel; + } public static ISymbolSelector createSymbolSelector(Object currSymbol, int shapeType, SelectorFilter filter) { ISymbolSelector selector = null;