Revision 755 2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.lib/org.gvsig.view3d.lib.impl/src/main/java/org/gvsig/view3d/lib/impl/DefaultView3DManger.java
DefaultView3DManger.java | ||
---|---|---|
23 | 23 |
|
24 | 24 |
package org.gvsig.view3d.lib.impl; |
25 | 25 |
|
26 |
import java.util.ArrayList; |
|
27 |
import java.util.HashMap; |
|
28 |
import java.util.List; |
|
29 |
import java.util.Map; |
|
30 |
|
|
26 | 31 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
27 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
|
28 | 32 |
import org.gvsig.view3d.lib.api.View3DManager; |
29 |
import org.gvsig.view3d.lib.api.properties.LayerProperties3D; |
|
30 |
import org.gvsig.view3d.lib.impl.properties.DefaultRasterLayerProperties3D; |
|
31 |
import org.gvsig.view3d.lib.impl.properties.DefaultVectorialLayerProperties3D; |
|
33 |
import org.gvsig.view3d.lib.api.exception.FactoryNotRegisteredException; |
|
34 |
import org.gvsig.view3d.lib.api.loader.LoaderFactory; |
|
35 |
import org.gvsig.view3d.lib.api.loader.LoaderParameters; |
|
36 |
import org.slf4j.Logger; |
|
37 |
import org.slf4j.LoggerFactory; |
|
32 | 38 |
|
33 |
|
|
34 | 39 |
/** |
35 | 40 |
* @author <a href="mailto:lmarques@disid.com">Lluis Marques</a> |
36 | 41 |
* |
37 | 42 |
*/ |
38 | 43 |
public class DefaultView3DManger implements View3DManager { |
44 |
|
|
45 |
private static final Logger LOG = LoggerFactory.getLogger(DefaultView3DManger.class); |
|
39 | 46 |
|
40 |
public LayerProperties3D getLayerProperties(FLayer layer) { |
|
41 |
Object properties = layer.getProperty("properties3D"); |
|
42 |
if(properties == null){ |
|
43 |
LayerProperties3D layerProperties; |
|
44 |
if(layer instanceof FLyrVect){ |
|
45 |
layerProperties = |
|
46 |
new DefaultVectorialLayerProperties3D(layer); |
|
47 |
} else { |
|
48 |
layerProperties = new DefaultRasterLayerProperties3D(layer); |
|
49 |
} |
|
50 |
setLayerProperties(layer, layerProperties); |
|
51 |
return layerProperties; |
|
47 |
private final String LOADER_PARAMETERS_FIELD_NAME = "loaderParameters"; |
|
48 |
|
|
49 |
private Map<String, LoaderFactory> loaderFactories = new HashMap<String, LoaderFactory>(); |
|
50 |
|
|
51 |
@Override |
|
52 |
public LoaderFactory getLoaderFactory(String name) throws FactoryNotRegisteredException { |
|
53 |
if (loaderFactories.containsKey(name)) { |
|
54 |
return loaderFactories.get(name); |
|
52 | 55 |
} |
53 |
return (LayerProperties3D) properties; |
|
56 |
|
|
57 |
throw new FactoryNotRegisteredException(name); |
|
54 | 58 |
} |
55 | 59 |
|
56 |
public void setLayerProperties(FLayer layer, LayerProperties3D properties) { |
|
57 |
layer.setProperty("properties3D", properties); |
|
60 |
@Override |
|
61 |
public List<LoaderFactory> getLoaderFactories() { |
|
62 |
return new ArrayList<LoaderFactory>(loaderFactories.values()); |
|
58 | 63 |
} |
64 |
|
|
65 |
@Override |
|
66 |
public void registerLoaderFactory(String name, LoaderFactory factory) { |
|
67 |
if (loaderFactories.containsKey(name)) { |
|
68 |
LOG.warn("There are already a registered loader factory with {} name"); |
|
69 |
} |
|
70 |
loaderFactories.put(name, factory); |
|
71 |
} |
|
72 |
|
|
73 |
@Override |
|
74 |
public boolean hasLoaderParameters(FLayer layer) { |
|
75 |
return layer.getExtendedProperties().containsKey(LOADER_PARAMETERS_FIELD_NAME); |
|
76 |
} |
|
77 |
|
|
78 |
@Override |
|
79 |
public LoaderParameters getLoaderParameters(FLayer layer) { |
|
80 |
return (LoaderParameters) layer.getProperty(LOADER_PARAMETERS_FIELD_NAME); |
|
81 |
} |
|
82 |
|
|
83 |
@Override |
|
84 |
public void setLoaderParameters(FLayer layer, LoaderParameters parameters) { |
|
85 |
layer.setProperty(LOADER_PARAMETERS_FIELD_NAME, parameters); |
|
86 |
} |
|
59 | 87 |
} |
Also available in: Unified diff