Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.exportto / org.gvsig.exportto.swing / org.gvsig.exportto.swing.impl / src / main / java / org / gvsig / export / swing / impl / panels / SelectGeometryFieldPanel.java @ 43968

History | View | Annotate | Download (4.76 KB)

1
package org.gvsig.export.swing.impl.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.export.ExportParameters;
11
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
12
import org.gvsig.tools.ToolsLocator;
13
import org.gvsig.tools.i18n.I18nManager;
14
import org.gvsig.tools.swing.api.ToolsSwingLocator;
15
import org.gvsig.tools.swing.api.ToolsSwingManager;
16
import org.gvsig.export.ExportParametersGeometry;
17
import org.gvsig.export.swing.JExportProcessPanel;
18
import org.gvsig.export.swing.spi.ExportPanel;
19
import org.gvsig.export.swing.spi.ExportPanelValidationException;
20
import org.gvsig.export.swing.spi.ExportPanelsManager;
21

    
22
/**
23
 *
24
 * @author jjdelcerro
25
 */
26
public class SelectGeometryFieldPanel 
27
        extends SelectGeometryFieldPanelView
28
        implements ExportPanel 
29
    {
30
    
31
    private final ExportParametersGeometry parameters;
32
    private final JExportProcessPanel processPanel;
33
    
34
    public SelectGeometryFieldPanel(
35
            JExportProcessPanel processPanel,
36
            ExportParameters parameters
37
        ) {
38
        this.processPanel = processPanel;
39
        this.parameters = (ExportParametersGeometry) parameters;
40

    
41
        if( this.parameters.getSourceFeatureType().getDefaultGeometryAttribute()==null ) {
42
            this.parameters.setSourceGeometryFieldName(null);
43
        } else {
44
            this.parameters.setSourceGeometryFieldName(this.parameters.getSourceFeatureType().getDefaultGeometryAttributeName());
45
        }
46

    
47
        this.initComponents();
48
    }
49

    
50
    @Override
51
    public String getIdPanel() {
52
        return ExportPanelsManager.PANEL_SELECT_GEOMETRY_FIELD;
53
    }
54

    
55
    @Override
56
    public String getTitlePanel() {
57
        I18nManager i18nManager = ToolsLocator.getI18nManager();
58
        return i18nManager.getTranslation("_Selection_of_geometry_field");    
59
    }
60

    
61
    @Override
62
    public boolean validatePanel() throws ExportPanelValidationException {
63
        return true;
64
    }
65

    
66
    @Override
67
    public void previousPanel() {
68

    
69
    }
70

    
71
    @Override
72
    public void nextPanel() {
73
        this.parameters.setSourceGeometryFieldName(this.getGeometryField());
74
    }
75
    
76
    @Override
77
    public void enterPanel() {
78
        // Default do nothing
79
    }
80

    
81
    @Override
82
    public JComponent asJComponent() {
83
        return this;
84
    }
85

    
86
    private void initComponents() {
87
        this.rdoSelectTheFieldToBeUsedAsGeometry.setEnabled(true);
88
        this.rdoSelectTheFieldToBeUsedAsGeometry.setSelected(false);
89
        
90
        if( this.parameters.getSourceGeometryFieldName()==null ) {
91
            this.rdoUseTheGeometryFieldByDefault.setEnabled(false);
92
            this.rdoUseTheGeometryFieldByDefault.setSelected(false);
93
            this.rdoUseNullAsTheValueOfTheGeometry.setSelected(true);
94
        } else {
95
            this.rdoUseTheGeometryFieldByDefault.setEnabled(true);
96
            this.rdoUseTheGeometryFieldByDefault.setSelected(true);
97
            this.rdoUseNullAsTheValueOfTheGeometry.setSelected(false);
98
        }
99
        List<String> items = new ArrayList<>();
100
        for (FeatureAttributeDescriptor descr : this.parameters.getSourceFeatureType()) {
101
            items.add(descr.getName());
102
        }        
103
        items.sort(new Comparator<String>() {
104
            @Override
105
            public int compare(String o1, String o2) {
106
                return o1.compareTo(o2);
107
            }
108
        });
109
        DefaultComboBoxModel model = new DefaultComboBoxModel();
110
        for (String item : items) {
111
            model.addElement(item);
112
        }
113
        this.cboGeometryField.setModel(model);
114
        this.cboGeometryField.setEnabled(false);
115
        this.rdoSelectTheFieldToBeUsedAsGeometry.addItemListener(new ItemListener() {
116
            @Override
117
            public void itemStateChanged(ItemEvent e) {
118
                cboGeometryField.setEnabled(rdoSelectTheFieldToBeUsedAsGeometry.isSelected());
119
            }
120
        });
121
        this.translate();
122
    }
123
    
124
    private void translate() {
125
        ToolsSwingManager i18nc = ToolsSwingLocator.getToolsSwingManager();
126
        i18nc.translate(this.lblSelectOfTheGeometryField);
127
        i18nc.translate(this.rdoSelectTheFieldToBeUsedAsGeometry);
128
        i18nc.translate(this.rdoUseNullAsTheValueOfTheGeometry);
129
        i18nc.translate(this.rdoUseTheGeometryFieldByDefault);
130
    }
131

    
132
    public String getGeometryField() {
133
        if( this.rdoUseNullAsTheValueOfTheGeometry.isSelected() ) {
134
            return null;
135
        }
136
        if( this.rdoUseTheGeometryFieldByDefault.isSelected() ) {
137
            return this.parameters.getSourceFeatureType().getDefaultGeometryAttribute().getName();
138
        }
139
        return (String) this.cboGeometryField.getSelectedItem();
140
    }
141
}