Statistics
| Revision:

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

History | View | Annotate | Download (4.15 KB)

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

    
3
import java.util.Arrays;
4
import java.util.List;
5

    
6
import javax.swing.JComponent;
7

    
8
import org.slf4j.Logger;
9
import org.slf4j.LoggerFactory;
10

    
11
import org.gvsig.tools.ToolsLocator;
12
import org.gvsig.tools.dataTypes.CoercionException;
13
import org.gvsig.tools.dataTypes.DataTypes;
14
import org.gvsig.tools.dataTypes.DataTypesManager;
15
import org.gvsig.tools.dataTypes.DataTypesManager.Coercion;
16
import org.gvsig.tools.i18n.I18nManager;
17
import org.gvsig.view3d.lib.api.loader.LoaderParameters;
18
import org.gvsig.view3d.swing.api.exception.InvalidLoaderParametersException;
19
import org.gvsig.view3d.vector.lib.api.VectorElevationMode;
20
import org.gvsig.view3d.vector.lib.api.VectorLoaderParameters;
21
import org.gvsig.view3d.vector.swing.api.JVectorLoaderParameters;
22

    
23
/**
24
 * 
25
 * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
26
 *
27
 */
28
public class JVectorLoaderParametersController extends JVectorLoaderParametersView implements JVectorLoaderParameters {
29

    
30
    private static final long serialVersionUID = -4115765106906551132L;
31

    
32
    private static final Logger LOG = LoggerFactory.getLogger(JVectorLoaderParametersController.class);
33

    
34
    private JColorChooserButton colorChooserButton;
35

    
36
    private VectorLoaderParameters parameters;
37

    
38
    public JVectorLoaderParametersController(VectorLoaderParameters parameters) {
39
        super();
40
        this.parameters = parameters;
41

    
42
        translate();
43
        initComponents();
44
    }
45

    
46
    private void translate() {
47
        I18nManager i18nManager = ToolsLocator.getI18nManager();
48
        this.elevationModeText.setText(i18nManager.getTranslation(this.elevationModeText.getText()));
49
        this.defaultColorText.setText(i18nManager.getTranslation(this.defaultColorText.getText()));
50
        this.constantHeightText.setText(i18nManager.getTranslation(this.constantHeightText.getText()));
51
    }
52

    
53
    @SuppressWarnings("unchecked")
54
    private void initComponents() {
55

    
56
        List<VectorElevationMode> elevationModes = Arrays.asList(VectorElevationMode.values());
57

    
58
        // Elevation mode
59
        this.elevationMode.setRenderer(new ElevationModeComboBoxRenderer());
60
        for (VectorElevationMode mode : elevationModes) {
61
            this.elevationMode.addItem(mode);
62
        }
63
        
64
        if(parameters.getVectorElevationMode() != null) {
65
            this.elevationMode.setSelectedItem(parameters.getVectorElevationMode());
66
        }
67

    
68
        // Default Color
69
        this.colorChooserButton = new JColorChooserButton(parameters.getDefaultColor());
70
        this.defaultColorPanel.add(colorChooserButton);
71

    
72
        // Constant height
73
        try {
74
            DataTypesManager dataTypesManager = ToolsLocator.getDataTypesManager();
75
            Coercion stringCoercion = dataTypesManager.getCoercion(DataTypes.STRING);
76
            this.constantHeight.setText((String) stringCoercion.coerce(parameters.getConstantHeight()));
77
        } catch (CoercionException e) {
78
            LOG.error(
79
                String.format("Can not parse constant this height value %d to string", parameters.getConstantHeight()),
80
                e);
81
            this.constantHeight.setText("");
82
        }
83
    }
84

    
85
    @Override
86
    public LoaderParameters getLoaderParameters() throws InvalidLoaderParametersException {
87

    
88
        this.parameters.setVectorElevationMode((VectorElevationMode) this.elevationMode.getSelectedItem());
89
        this.parameters.setDefaultColor(this.colorChooserButton.getSelectedColor());
90

    
91
        try {
92
            DataTypesManager dataTypesManager = ToolsLocator.getDataTypesManager();
93
            Coercion doubleCoercion = dataTypesManager.getCoercion(DataTypes.DOUBLE);
94
            this.parameters.setConstantHeight((double) doubleCoercion.coerce(this.constantHeight.getText()));
95
        } catch (CoercionException e) {
96
            LOG.error(
97
                String.format("Can not parse constant this height value %s to double", this.constantHeight.getText()),
98
                e);
99
            throw new InvalidLoaderParametersException("Invalid constant height value",
100
                "constant_height_has_to_be_a_number", e);
101
        }
102

    
103
        return this.parameters;
104
    }
105

    
106
    @Override
107
    public JComponent asJComponent() {
108
        return this;
109
    }
110

    
111
}