Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.exportto / org.gvsig.exportto.swing / org.gvsig.exportto.swing.spi / src / main / java / org / gvsig / exportto / swing / spi / panels / SelectionOfTheGeometryFieldPanel.java @ 43920

History | View | Annotate | Download (4.22 KB)

1
package org.gvsig.exportto.swing.spi.panels;
2

    
3
import java.awt.event.ItemEvent;
4
import java.awt.event.ItemListener;
5
import java.util.ArrayList;
6
import java.util.Comparator;
7
import java.util.List;
8
import javax.swing.DefaultComboBoxModel;
9
import javax.swing.JComponent;
10
import org.gvsig.exportto.swing.spi.options.ExportGeometryOptions;
11
import org.gvsig.exportto.swing.spi.ExporttoPanelValidationException;
12
import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
13
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
14
import org.gvsig.tools.ToolsLocator;
15
import org.gvsig.tools.i18n.I18nManager;
16
import org.gvsig.tools.swing.api.ToolsSwingLocator;
17
import org.gvsig.tools.swing.api.ToolsSwingManager;
18

    
19
/**
20
 *
21
 * @author jjdelcerro
22
 */
23
public class SelectionOfTheGeometryFieldPanel 
24
        extends SelectionOfTheGeometryFieldPanelView
25
        implements ExporttoSwingProviderPanel 
26
    {
27
    
28
    private final ExportGeometryOptions options;
29
    
30
    public SelectionOfTheGeometryFieldPanel(ExportGeometryOptions options) {
31
        this.options = options;
32

    
33
        if( this.options.getSourceFeatureType().getDefaultGeometryAttribute()==null ) {
34
            this.options.setGeometryFieldName(null);
35
        } else {
36
            this.options.setGeometryFieldName(this.options.getSourceFeatureType().getDefaultGeometryAttributeName());
37
        }
38

    
39
        this.initComponents();
40
    }
41

    
42
    @Override
43
    public String getPanelTitle() {
44
        I18nManager i18nManager = ToolsLocator.getI18nManager();
45
        return i18nManager.getTranslation("_Selection_of_geometry_field");    
46
    }
47

    
48
    @Override
49
    public boolean isValidPanel() throws ExporttoPanelValidationException {
50
        this.options.setGeometryFieldName(this.getGeometryField());
51
        return true;
52
    }
53

    
54
    @Override
55
    public void enterPanel() {
56
        // Default do nothing
57
    }
58

    
59
    @Override
60
    public JComponent asJComponent() {
61
        return this;
62
    }
63

    
64
    private void initComponents() {
65
        this.rdoSelectTheFieldToBeUsedAsGeometry.setEnabled(true);
66
        this.rdoSelectTheFieldToBeUsedAsGeometry.setSelected(false);
67
        
68
        if( this.options.getGeometryFieldName()==null ) {
69
            this.rdoUseTheGeometryFieldByDefault.setEnabled(false);
70
            this.rdoUseTheGeometryFieldByDefault.setSelected(false);
71
            this.rdoUseNullAsTheValueOfTheGeometry.setSelected(true);
72
        } else {
73
            this.rdoUseTheGeometryFieldByDefault.setEnabled(true);
74
            this.rdoUseTheGeometryFieldByDefault.setSelected(true);
75
            this.rdoUseNullAsTheValueOfTheGeometry.setSelected(false);
76
        }
77
        List<String> items = new ArrayList<>();
78
        for (FeatureAttributeDescriptor descr : this.options.getSourceFeatureType()) {
79
            items.add(descr.getName());
80
        }        
81
        items.sort(new Comparator<String>() {
82
            @Override
83
            public int compare(String o1, String o2) {
84
                return o1.compareTo(o2);
85
            }
86
        });
87
        DefaultComboBoxModel model = new DefaultComboBoxModel();
88
        for (String item : items) {
89
            model.addElement(item);
90
        }
91
        this.cboGeometryField.setModel(model);
92
        this.cboGeometryField.setEnabled(false);
93
        this.rdoSelectTheFieldToBeUsedAsGeometry.addItemListener(new ItemListener() {
94
            @Override
95
            public void itemStateChanged(ItemEvent e) {
96
                cboGeometryField.setEnabled(rdoSelectTheFieldToBeUsedAsGeometry.isSelected());
97
            }
98
        });
99
        this.translate();
100
    }
101
    
102
    private void translate() {
103
        ToolsSwingManager i18nc = ToolsSwingLocator.getToolsSwingManager();
104
        i18nc.translate(this.lblSelectOfTheGeometryField);
105
        i18nc.translate(this.rdoSelectTheFieldToBeUsedAsGeometry);
106
        i18nc.translate(this.rdoUseNullAsTheValueOfTheGeometry);
107
        i18nc.translate(this.rdoUseTheGeometryFieldByDefault);
108
    }
109

    
110
    public String getGeometryField() {
111
        if( this.rdoUseNullAsTheValueOfTheGeometry.isSelected() ) {
112
            return null;
113
        }
114
        if( this.rdoUseTheGeometryFieldByDefault.isSelected() ) {
115
            return this.options.getSourceFeatureType().getDefaultGeometryAttribute().getName();
116
        }
117
        return (String) this.cboGeometryField.getSelectedItem();
118
    }
119
}