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 @ 43936

History | View | Annotate | Download (4.7 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 exitPanel() {
68
        this.parameters.setSourceGeometryFieldName(this.getGeometryField());
69
    }
70
    
71
    @Override
72
    public void enterPanel() {
73
        // Default do nothing
74
    }
75

    
76
    @Override
77
    public JComponent asJComponent() {
78
        return this;
79
    }
80

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

    
127
    public String getGeometryField() {
128
        if( this.rdoUseNullAsTheValueOfTheGeometry.isSelected() ) {
129
            return null;
130
        }
131
        if( this.rdoUseTheGeometryFieldByDefault.isSelected() ) {
132
            return this.parameters.getSourceFeatureType().getDefaultGeometryAttribute().getName();
133
        }
134
        return (String) this.cboGeometryField.getSelectedItem();
135
    }
136
}