Statistics
| Revision:

gvsig-3d / 2.1 / trunk / org.gvsig.view3d / org.gvsig.view3d.vector / org.gvsig.view3d.vector.lib / org.gvsig.view3d.vector.lib.impl / src / main / java / org / gvsig / view3d / vector / lib / impl / DefaultVectorExtrusionLoaderParameters.java @ 760

History | View | Annotate | Download (5.13 KB)

1
package org.gvsig.view3d.vector.lib.impl;
2

    
3
import java.awt.Color;
4

    
5
import org.gvsig.fmap.mapcontext.layers.FLayer;
6
import org.gvsig.tools.ToolsLocator;
7
import org.gvsig.tools.dynobject.DynStruct;
8
import org.gvsig.tools.persistence.PersistenceManager;
9
import org.gvsig.tools.persistence.PersistentState;
10
import org.gvsig.tools.persistence.exception.PersistenceException;
11
import org.gvsig.view3d.lib.api.loader.AbstractLoaderParameters;
12
import org.gvsig.view3d.vector.lib.api.VectorElevationMode;
13
import org.gvsig.view3d.vector.lib.api.VectorExtrusionLoaderParameters;
14
import org.gvsig.view3d.vector.lib.api.VectorLoaderParameters;
15

    
16
/**
17
 * 
18
 * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
19
 *
20
 */
21
public class DefaultVectorExtrusionLoaderParameters extends AbstractLoaderParameters
22
    implements VectorExtrusionLoaderParameters {
23
    
24
    public static final String PARAMETERS_DEFINITION_NAME = "VectorExtrusionLoaderParameters";
25
    public static final String PARAMETERS_DEFINITION_DESCRIPTION =
26
        "Parameters that defines vector extrusion load mode";
27

    
28
    public static final String VECTOR_ELEVATION_MODE_FIELD_NAME = "vectorElevationMode";
29
    public static final String DEFAULT_COLOR_FIELD_NAME = "defaultColor";
30
    public static final String HEIGHT_FIELD_FIELD_NAME = "heightField";
31
    public static final String CONSTANT_HEIGHT_FIELD_NAME = "constantHeight";
32
    public static final String VERTICAL_EXAGGERATION_FIELD_NAME = "verticalExaggeration";
33
    
34
    private VectorElevationMode vectorElevationMode;
35
    private Color defaultColor;
36
    private String heightField;
37
    private double constantHeight;
38
    private double verticalExaggeration;
39

    
40
    public DefaultVectorExtrusionLoaderParameters(FLayer layer) {
41
        super(layer);
42
    }
43

    
44
    @Override
45
    public String getName() {
46
        return VectorExtrusionLoaderParameters.NAME;
47
    }
48

    
49
    @Override
50
    public VectorElevationMode getVectorElevationMode() {
51
        return this.vectorElevationMode;
52
    }
53

    
54
    @Override
55
    public void setVectorElevationMode(VectorElevationMode vectorElevationMode) {
56
        this.vectorElevationMode = vectorElevationMode;
57
    }
58

    
59
    @Override
60
    public Color getDefaultColor() {
61
        return this.defaultColor;
62
    }
63

    
64
    @Override
65
    public void setDefaultColor(Color color) {
66
        this.defaultColor = color;
67
    }
68

    
69
    @Override
70
    public String getHeightField() {
71
        return this.heightField;
72
    }
73

    
74
    @Override
75
    public void setHeightField(String heightField) {
76
        this.heightField = heightField;
77
    }
78

    
79
    @Override
80
    public double getConstantHeight() {
81
        return this.constantHeight;
82
    }
83

    
84
    @Override
85
    public void setConstantHeight(double height) {
86
        this.constantHeight = height;
87
    }
88

    
89
    @Override
90
    public double getVerticalExaggeration() {
91
        return this.verticalExaggeration;
92
    }
93

    
94
    @Override
95
    public void setVerticalExaggeration(double verticalExaggeration) {
96
        this.verticalExaggeration = verticalExaggeration;
97
    }
98
    
99
    public static void registerPersistenceDefinition() {
100
        PersistenceManager manager = ToolsLocator.getPersistenceManager();
101
        DynStruct definition = manager.getDefinition(PARAMETERS_DEFINITION_NAME);
102
        if (definition == null) {
103
            definition = manager.addDefinition(DefaultVectorLoaderParameters.class, PARAMETERS_DEFINITION_NAME,
104
                PARAMETERS_DEFINITION_DESCRIPTION, null, null);
105

    
106
            definition.addDynFieldObject(VECTOR_ELEVATION_MODE_FIELD_NAME);
107
            definition.addDynFieldObject(DEFAULT_COLOR_FIELD_NAME);
108
            definition.addDynFieldString(HEIGHT_FIELD_FIELD_NAME);
109
            definition.addDynFieldDouble(CONSTANT_HEIGHT_FIELD_NAME);
110
            definition.addDynFieldDouble(VERTICAL_EXAGGERATION_FIELD_NAME);
111
        }
112
    }
113

    
114
    @Override
115
    public Object clone() throws CloneNotSupportedException {
116

    
117
        VectorLoaderParameters newParameters = new DefaultVectorLoaderParameters();
118
        newParameters.setVectorElevationMode(this.getVectorElevationMode());
119
        newParameters.setDefaultColor(this.getDefaultColor());
120
        newParameters.setConstantHeight(this.getConstantHeight());
121
        newParameters.setLayer(this.getLayer());
122
        return newParameters;
123
    }
124

    
125
    @Override
126
    protected void doSaveToState(PersistentState state) throws PersistenceException {
127
        state.set(VECTOR_ELEVATION_MODE_FIELD_NAME, this.vectorElevationMode);
128
        state.set(DEFAULT_COLOR_FIELD_NAME, this.defaultColor);
129
        state.set(HEIGHT_FIELD_FIELD_NAME, this.heightField);
130
        state.set(CONSTANT_HEIGHT_FIELD_NAME, this.constantHeight);
131
        state.set(VERTICAL_EXAGGERATION_FIELD_NAME, this.verticalExaggeration);
132
    }
133

    
134
    @Override
135
    protected void doLoadFromState(PersistentState state) throws PersistenceException {
136
        this.vectorElevationMode = (VectorElevationMode) state.get(VECTOR_ELEVATION_MODE_FIELD_NAME);
137
        this.defaultColor = (Color) state.get(DEFAULT_COLOR_FIELD_NAME);
138
        this.heightField = state.getString(HEIGHT_FIELD_FIELD_NAME);
139
        this.constantHeight = state.getDouble(CONSTANT_HEIGHT_FIELD_NAME);
140
        this.verticalExaggeration = state.getDouble(VERTICAL_EXAGGERATION_FIELD_NAME);
141
    }
142
}