Revision 18878

View differences:

trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/rendering/ILegend.java
58 58
	 */
59 59
	ISymbol getDefaultSymbol();
60 60

  
61

  
62 61
	/**
63
	 * Gets the SLD string.
64
	 *
65
	 * @return String.
66
	 *
67
	 * @throws DriverException
68
	 */
69
	String getSLDString(String layerName);
70

  
71

  
72
	/**
73 62
	 * Clones the legend.
74 63
	 *
75 64
	 * @return Cloned legend.
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/rendering/VectorialIntervalLegend.java
80 80
    public VectorialIntervalLegend(int type) {
81 81
        setShapeType(type);
82 82
    }
83

  
84

  
85
    public String getSLDString(String layerName) {
86

  
87
    	try{
88

  
89
    		XmlBuilder xmlBuilder = new XmlBuilder();
90
    		xmlBuilder.writeHeader();
91
    		xmlBuilder.openTag(SLDTags.SLD_ROOT, SLDTags.VERSION_ATTR, SLDTags.VERSION_1_0_0);
92
    		xmlBuilder.openTag(SLDTags.NAMEDLAYER);
93
    		xmlBuilder.writeTag(SLDTags.NAME,layerName);
94
    		xmlBuilder.openTag(SLDTags.USERSTYLE);
95
    		xmlBuilder.openTag(SLDTags.FEATURETYPESTYLE);
96
    		xmlBuilder.writeTag(SLDTags.FEATURETYPENAME,getClassifyingFieldNames()[0]);
97

  
98
    		ISymbol[] symbols = this.getSymbols();
99
    		Object[] values = this.getValues();
100

  
101
    		FInterval interval;
102
    		for(int i = 0; i < symbols.length; i++ )
103
    		{
104
				interval = (FInterval)values[i];
105
				//interval = (FInterval)getInterval(ValueFactory.createValue(valueDbl.doubleValue()));
106
				xmlBuilder.openTag(SLDTags.RULE);
107
				xmlBuilder.writeTag(SLDTags.NAME, ""+interval.getMin() +" - " +interval.getMax());
108
				xmlBuilder.openTag(SLDTags.FILTER);
109
				xmlBuilder.openTag(SLDTags.AND);
110
				xmlBuilder.openTag(SLDTags.PROPERTYISGREATEROREQUALTHAN);
111
				xmlBuilder.writeTag(SLDTags.PROPERTYNAME,fieldNames[0]);
112
				xmlBuilder.writeTag(SLDTags.LITERAL, ""+interval.getMin());
113
				xmlBuilder.closeTag();
114
				xmlBuilder.openTag(SLDTags.PROPERTYISLESSOREQUALTHAN);
115
				xmlBuilder.writeTag(SLDTags.PROPERTYNAME,fieldNames[0]);
116
				xmlBuilder.writeTag(SLDTags.LITERAL, ""+interval.getMax());
117
				xmlBuilder.closeTag();
118
				xmlBuilder.closeTag();
119
				if (symbols[i] instanceof ISLDCompatible)
120
				{
121
					ISLDCompatible symSLD = (ISLDCompatible) symbols[i];
122
					xmlBuilder.writeRaw(symSLD.toSLD());
123
				}
124
				else
125
					throw new RuntimeException("Cannot convert Symbol " + i + " " + symbols[i].getDescription() + " to SLD");
126
				xmlBuilder.closeTag();
127
				xmlBuilder.closeTag();
128
			}
129

  
130
			xmlBuilder.closeTag();
131
			xmlBuilder.closeTag();
132
			xmlBuilder.closeTag();
133
			xmlBuilder.closeTag();
134
			return xmlBuilder.getXML();
135

  
136
	    }catch(Exception e)
137
	    {
138
	    	e.printStackTrace();
139
	    	return null;
140
	    }
141
    }
142

  
143 83
    
144 84
    public XMLEntity getXMLEntity() {
145 85
        XMLEntity xml = new XMLEntity();
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/rendering/SingleSymbolLegend.java
111 111
		return defaultSymbol;
112 112
	}
113 113

  
114
	public String getSLDString(String layerName) {
115
		try {
116
			XmlBuilder xmlBuilder = new XmlBuilder();
117
			xmlBuilder.writeHeader();
118
			xmlBuilder.openTag(SLDTags.SLD_ROOT, SLDTags.VERSION_ATTR, SLDTags.VERSION_1_0_0);
119
			xmlBuilder.openTag(SLDTags.NAMEDLAYER);
120
			xmlBuilder.writeTag(SLDTags.NAME,layerName);
121
			xmlBuilder.openTag(SLDTags.USERSTYLE);
122
			xmlBuilder.openTag(SLDTags.FEATURETYPESTYLE);
123
			xmlBuilder.writeTag(SLDTags.FEATURETYPENAME,"FeatureTypeName");
124
			xmlBuilder.openTag(SLDTags.RULE);
125
			if (this.defaultSymbol instanceof ISLDCompatible) {
126
				ISLDCompatible symSLD = (ISLDCompatible) this.defaultSymbol;
127
				xmlBuilder.writeRaw(symSLD.toSLD());
128
			} else
129
				throw new RuntimeException("Cannot convert default Symbol " + this.defaultSymbol.getDescription() + " to SLD");
130 114

  
131
			xmlBuilder.closeTag();
132
			xmlBuilder.closeTag();
133
			xmlBuilder.closeTag();
134
			xmlBuilder.closeTag();
135
			xmlBuilder.closeTag();
136
			return xmlBuilder.getXML();
137
		} catch (Exception e) {
138
			e.printStackTrace();
139
			return null;
140
		}
141
	}
142

  
143 115
	public XMLEntity getXMLEntity() {
144 116
		XMLEntity xml = new XMLEntity();
145 117
		xml.putProperty("className",this.getClass().getName());
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/rendering/VectorialUniqueValueLegend.java
294 294
        return defaultSymbol;
295 295
    }
296 296

  
297
    
298
	public String getSLDString(String name)	{
299
	    try {
300 297

  
301
			XmlBuilder xmlBuilder = new XmlBuilder();
302
			xmlBuilder.writeHeader();
303
			xmlBuilder.openTag(SLDTags.SLD_ROOT, SLDTags.VERSION_ATTR, SLDTags.VERSION_1_0_0);
304
			xmlBuilder.openTag(SLDTags.NAMEDLAYER);
305
			xmlBuilder.writeTag(SLDTags.NAME,name);
306
			xmlBuilder.openTag(SLDTags.USERSTYLE);
307
			xmlBuilder.openTag(SLDTags.FEATURETYPESTYLE);
308
			//xmlBuilder.writeTag(SLDTags.FEATURETYPENAME,"fieldName");
309

  
310
			ISymbol[] mySymbols = this.getSymbols();
311
			Object[] values = this.getValues();
312
			String valueStr = null;
313

  
314
			for(int i = 0; i < mySymbols.length; i++ ){
315
				valueStr = values[i].toString();
316
				xmlBuilder.openTag(SLDTags.RULE);
317
				xmlBuilder.writeTag(SLDTags.NAME, valueStr);
318
				xmlBuilder.openTag(SLDTags.FILTER);
319
				xmlBuilder.openTag(SLDTags.PROPERTYISEQUALTO);
320
				xmlBuilder.writeTag(SLDTags.PROPERTYNAME, getClassifyingFieldNames()[0]);
321
				xmlBuilder.writeTag(SLDTags.LITERAL, valueStr);
322
				xmlBuilder.closeTag();
323
				xmlBuilder.closeTag();
324
				if (mySymbols[i] instanceof ISLDCompatible) {
325
					ISLDCompatible symSLD = (ISLDCompatible) mySymbols[i];
326
					xmlBuilder.writeRaw(symSLD.toSLD());
327
				} else
328
					throw new RuntimeException("Cannot convert Symbol " + i + " " + mySymbols[i].getDescription() + " to SLD");
329

  
330
				xmlBuilder.closeTag();
331
			}
332

  
333
			xmlBuilder.closeTag();
334
			xmlBuilder.closeTag();
335
			xmlBuilder.closeTag();
336
			xmlBuilder.closeTag();
337
			return xmlBuilder.getXML();
338

  
339
	    } catch (Exception e) {
340
	    	e.printStackTrace();
341
	    	return null;
342
	    }
343
	}
344

  
345 298
    public XMLEntity getXMLEntity() {
346 299
        XMLEntity xml = new XMLEntity();
347 300
        xml.putProperty("className", this.getClass().getName());

Also available in: Unified diff