Revision 376

View differences:

org.gvsig.publish/trunk/org.gvsig.publish/pom.xml
9 9
    <parent>
10 10
        <groupId>org.gvsig</groupId>
11 11
        <artifactId>org.gvsig.desktop</artifactId>
12
        <version>2.0.204</version>
12
        <version>2.0.205-SNAPSHOT</version>
13 13
    </parent>
14 14
    <url>http://devel.gvsig.org/sites/org.gvsig.publish/${project.version}</url>
15 15
    <scm>
org.gvsig.publish/trunk/org.gvsig.publish/org.gvsig.publish.mapserver/org.gvsig.publish.lib.impl.mapserver/src/main/java/org/gvsig/publish/impl/mapserver/converters/FSymbolToMapserverConverter.java
1
package org.gvsig.publish.impl.mapserver.converters;
2

  
3
import java.awt.Color;
4
import java.awt.Paint;
5
import java.io.File;
6

  
7
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
8
import org.gvsig.publish.PublishSymbolConverter;
9
import org.gvsig.publish.PublishSymbolConverterFactory;
10
import org.gvsig.publish.impl.mapserver.MapserverService;
11
import org.gvsig.publish.impl.mapserver.utils.MapServerUtils;
12
import org.gvsig.publish.impl.mapserver.utils.MapserverSymbol;
13
import org.gvsig.publish.mapserver641.AlignEnum;
14
import org.gvsig.publish.mapserver641.Style;
15
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.impl.FSymbol;
16

  
17
public class FSymbolToMapserverConverter extends ISymbolToMapserverConverter  {
18

  
19
	public static class Factory implements PublishSymbolConverterFactory{
20

  
21
		public String getName() {
22
			return MapserverService.NAME;
23
		}
24

  
25
		public int canConvert(ISymbol symbol) {
26
			if(!(symbol instanceof FSymbol)){
27
				return 0;
28
			}
29
			return 100;
30
		}
31

  
32
		public PublishSymbolConverter createConverter(ISymbol symbol) {
33
			return new FSymbolToMapserverConverter();
34
		}
35
		
36
	}
37
	
38
	
39
	@Override
40
	public MapserverSymbol convert(ISymbol symbol, MapserverSymbol tempSymbol) {
41
		MapserverSymbol s = super.convert(symbol, tempSymbol);
42
		
43
		if(symbol instanceof FSymbol){
44
			FSymbol fSym = (FSymbol) symbol;
45
			if(s.getStyle() != null){
46
				for(int i=0; i<s.getStyle().size(); i++){
47
					Style st = s.getStyle().get(i);
48
					Paint paint = fSym.getFill();
49
					if(paint instanceof Color){
50
						Color color = (Color) paint;
51

  
52
						st.setColor(MapServerUtils.getRgbColorType(color));
53
						st.setOpacity(MapServerUtils.getOpacity(color.getAlpha()));
54
					}
55
					st.setOutlineColor(MapServerUtils.getRgbColorType(fSym.getOutlineColor()));
56
					st.setAngle(""+fSym.getRotation());
57
					st.setSize(fSym.getSize()+"");
58
				}
59
			}
60
			
61
			if(fSym.getFont() != null){
62
				s.getLabel().setFont(fSym.getFont().getName());
63
			}
64
			s.getLabel().setAlign(getCorrectAlignEnum(fSym.getAlingHoriz()));
65
			s.getLabel().setColor(MapServerUtils.getRgbColorType(fSym.getColor()));
66
			s.getLabel().setSize(fSym.getFontSize()+"");
67
			
68
			if(fSym.getIconURI() != null){
69
				s.getSymbol().setImage(fSym.getIconURI().getPath().replace(File.separator, "/"));
70
			}	
71
			
72
		}
73
		
74
		return s;
75
	}
76

  
77
	private AlignEnum getCorrectAlignEnum(int align){
78
		return AlignEnum.CENTER;
79
	}
80
	
81
}

Also available in: Unified diff