Revision 14935

View differences:

import/ext3D/trunk/ext3D/src/com/iver/ai2/gvsig3d/map3d/layers/Layer3DProps.java
4 4

  
5 5
import com.iver.ai2.gvsig3d.cacheservices.FLayerCacheService;
6 6
import com.iver.cit.gvsig.fmap.layers.FLayer;
7
import com.iver.cit.gvsig.fmap.layers.FLyrWMS;
7 8
import com.iver.utiles.IPersistance;
8 9
import com.iver.utiles.XMLEntity;
9 10

  
10 11
import es.upv.ai2.libjosg.planets.Planet;
12
import es.upv.ai2.libjosg.planets.Planet.PlanetType;
11 13

  
12 14
public class Layer3DProps implements IPersistance {
13 15

  
......
16 18
	public static final int layer3DElevation = 1;
17 19
	public static final int layer3DVector = 2;
18 20

  
19
	public static String m_cacheDir = "c:/data/cache/"; // TEST
21
	public static String m_cacheDir = "c:/data/cache"; // TEST
20 22

  
21 23
	protected int m_order; // index of layer (drawing priority)
22 24
	protected int m_type;  // see type enumeration above
25
	protected int m_planetType;  // see PlanetType: spherical or plane
26
	protected IProjection m_viewProj;
23 27
	protected String m_cacheName="default";
24 28
	protected boolean m_bDirty=true;
25 29
	protected boolean m_bCacheDirty=false;
......
32 36

  
33 37
	public void setLayer(FLayer layer)
34 38
	{
35
		// TODO intialize properties from layer
36 39
		m_layer = layer;
37 40
		m_order = -1; // not set
38 41
		m_type = layer3DImage;
39
		// find unique name for cache
40
		// TODO: use full path of source or service
41
        m_cacheName = layer.getName();
42

  
43
		// find out data type
44
		if (layer instanceof FLyrWMS) {
45
			FLyrWMS wmsLayer = (FLyrWMS)layer;
46
			String format = wmsLayer.getFormat();
47
			if (format.compareToIgnoreCase("image/geotiff")==0) {
48
				m_type = layer3DElevation;
49
			}
50
		}
42 51
	}
43 52

  
44
	public FLayerCacheService getCacheService(Planet planet, IProjection viewProj)
53
	public void setPlanetType(int planetType) {
54
		m_planetType = planetType;
55
	}
56

  
57
	public void setViewProjection(IProjection viewProj) {
58
	    m_viewProj = viewProj;
59
	}
60

  
61
	public void initCacheName() {
62
		// TODO: use full path of source or service, not just layer name
63

  
64
		String typeStr;
65
		if (m_planetType==PlanetType.SPHERICAL_MODE)
66
			typeStr = "Sph";
67
		else
68
			typeStr = "Pla" + m_viewProj.getAbrev();
69

  
70
		if (m_type==layer3DElevation)
71
			typeStr += "Elev";
72
		else if (m_type==layer3DVector)
73
			typeStr += "Vect";
74

  
75
		String layerInfo;
76
		if (m_layer instanceof FLyrWMS) {
77
			FLyrWMS wmsLayer = (FLyrWMS)m_layer;
78
            layerInfo = wmsLayer.getHost().toString() + wmsLayer.getLayerQuery();
79
		}
80
		else {
81
			layerInfo = m_layer.getName();
82
		}
83

  
84
        m_cacheName = typeStr + "_" + layerInfo;
85

  
86
		// eliminate banned characters
87
        m_cacheName = m_cacheName.replace('/','_');
88
        m_cacheName = m_cacheName.replace(':','_');
89
        m_cacheName = m_cacheName.replace('\\','_');
90
        m_cacheName = m_cacheName.replace('*','_');
91
        m_cacheName = m_cacheName.replace('<','_');
92
        m_cacheName = m_cacheName.replace('>','_');
93
        m_cacheName = m_cacheName.replace('?','_');
94
        m_cacheName = m_cacheName.replace('"','_');
95
        m_cacheName = m_cacheName.replace('|','_');
96
	}
97

  
98
	public FLayerCacheService getCacheService()
45 99
	{
46
		if (m_cacheService != null)
47
			return m_cacheService;
48

  
49
		m_cacheService = new FLayerCacheService(planet, getCacheName(), m_layer, viewProj);
50
		m_cacheService.setCacheRootDir(m_cacheDir);
51 100
		return m_cacheService;
52 101
	}
53 102

  
103
	public void setCacheService(FLayerCacheService srv)
104
	{
105
		m_cacheService = srv;
106
	}
107

  
54 108
    public void setType(int type) {
55 109
    	m_type = type;
56 110
    }
......
110 164
		if (xml.contains("type"))
111 165
			m_type = xml.getIntProperty("type");
112 166
		if (xml.contains("order"))
113
			m_order = xml.getIntProperty("stage");
167
			m_order = xml.getIntProperty("order");
114 168
		if (xml.contains("cacheName"))
115 169
			m_cacheName = xml.getStringProperty("cacheName");
116 170
    }

Also available in: Unified diff