Revision 43920 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.prov/org.gvsig.exportto.swing.prov.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/panel/EncodingPanel.java

View differences:

EncodingPanel.java
23 23
 */
24 24
package org.gvsig.exportto.swing.prov.dbf.panel;
25 25

  
26
import java.awt.BorderLayout;
27
import java.awt.GridBagConstraints;
28
import java.awt.GridBagLayout;
26
import javax.swing.DefaultListModel;
27
import javax.swing.JComponent;
29 28

  
30
import javax.swing.JComboBox;
31
import javax.swing.JLabel;
32
import javax.swing.JPanel;
29
import org.gvsig.exportto.swing.prov.dbf.ExportDBFOptions;
30
import org.gvsig.exportto.swing.spi.ExporttoPanelValidationException;
31
import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel;
32
import org.gvsig.fmap.dal.DataStoreParameters;
33 33

  
34
import org.gvsig.i18n.Messages;
35 34
import org.gvsig.metadata.MetadataLocator;
36 35
import org.gvsig.metadata.MetadataManager;
36
import org.gvsig.tools.ToolsLocator;
37 37
import org.gvsig.tools.dynobject.DynField;
38 38
import org.gvsig.tools.dynobject.DynObjectValueItem;
39 39
import org.gvsig.tools.dynobject.DynStruct;
40
import org.gvsig.tools.i18n.I18nManager;
41
import org.gvsig.tools.swing.api.ListElement;
42
import org.gvsig.tools.swing.api.ToolsSwingLocator;
43
import org.gvsig.tools.swing.api.ToolsSwingManager;
40 44

  
41 45
/**
42 46
 * @author gvSIG Team
43 47
 * @version $Id$
44 48
 * 
45 49
 */
46
public class EncodingPanel extends JPanel {
50
public class EncodingPanel 
51
        extends EncodingPanelView 
52
        implements ExporttoSwingProviderPanel
53
    {
47 54

  
48
    private JLabel encodingLabel;
49
    private JComboBox encodingCombo;
55
    private final ExportDBFOptions options;
50 56

  
51
    public EncodingPanel() {
57

  
58
    public EncodingPanel(ExportDBFOptions options) {
52 59
        super();
60
        this.options = options;
53 61
        initComponents();
54
        initEncodingCombo();
55 62
    }
56 63

  
57 64
    private void initComponents() {
58
        this.setLayout(new BorderLayout());
59

  
60
        java.awt.GridBagConstraints gridBagConstraints;
61

  
62
        JPanel northPanel = new JPanel();
63
        encodingLabel = new JLabel();
64
        encodingCombo = new JComboBox();
65

  
66
        northPanel.setLayout(new GridBagLayout());
67

  
68
        encodingLabel.setText(Messages.getText("encoding ") + ": ");
69
        gridBagConstraints = new GridBagConstraints();
70
        gridBagConstraints.gridx = 0;
71
        gridBagConstraints.gridy = 0;
72
        northPanel.add(encodingLabel, gridBagConstraints);
73

  
74
        gridBagConstraints = new GridBagConstraints();
75
        gridBagConstraints.gridx = 1;
76
        gridBagConstraints.gridy = 0;
77
        gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
78
        gridBagConstraints.weightx = 1.0;
79
        northPanel.add(encodingCombo, gridBagConstraints);
80

  
81
        add(northPanel, BorderLayout.NORTH);
82
    }
83

  
84
    private void initEncodingCombo() {
85 65
        MetadataManager metadataManager = MetadataLocator.getMetadataManager();
86 66
        DynStruct dynStruct = metadataManager.getDefinition("DBF");
87 67
        DynField dynField = dynStruct.getDynField("Encoding");
88
        DynObjectValueItem[] dynObjectValueItem = dynField.getAvailableValues();
89
        for (int i = 0; i < dynObjectValueItem.length; i++) {
90
            encodingCombo.addItem(dynObjectValueItem[i].getValue());
68
        
69
        DefaultListModel model = new DefaultListModel();
70
        DynObjectValueItem[] encodings = dynField.getAvailableValues();
71
        for (DynObjectValueItem encoding : encodings) {
72
            model.addElement(new ListElement(encoding.getLabel(),encoding.getValue()));
91 73
        }
74
        this.lstEncoding.setModel(model);
75
        this.lstEncoding.setSelectedIndex(0);
76
        
77
        String sourceProviderName = this.options.getSourceFeatureStore().getProviderName();
78
        if( sourceProviderName.equalsIgnoreCase("Shape") || sourceProviderName.equalsIgnoreCase("DBF") ) {
79
            DataStoreParameters params = this.options.getSourceFeatureStore().getParameters();
80
            String encoding = (String) params.getDynValue("Encoding");
81
            ListElement.setSelected(this.lstEncoding, encoding);
82
        }
83
        this.translate();
92 84
    }
85
    
86
    private void translate() {
87
        ToolsSwingManager i18nc = ToolsSwingLocator.getToolsSwingManager();
88
        i18nc.translate(this.lblEncoding);
89
    }
93 90

  
94
    /**
95
     * @return
96
     */
97 91
    public String getEncoding() {
98
        String encoding = (String) encodingCombo.getSelectedItem();
99
        if ("".equals(encoding)) {
92
        ListElement encoding = (ListElement) this.lstEncoding.getSelectedValue();
93
        if( encoding==null ) {
100 94
            return null;
101 95
        }
102
        return encoding;
96
        return (String) encoding.getValue();
103 97
    }
98

  
99
    @Override
100
    public String getPanelTitle() {
101
        I18nManager i18nManager = ToolsLocator.getI18nManager();
102
        return i18nManager.getTranslation("_Select_encoding");    
103
    }
104

  
105
    @Override
106
    public boolean isValidPanel() throws ExporttoPanelValidationException {
107
        this.options.setEncoding(this.getEncoding());
108
        return true;
109
    }
110

  
111
    @Override
112
    public void enterPanel() {
113
        // Do nothing
114
    }
115

  
116
    @Override
117
    public JComponent asJComponent() {
118
        return this;
119
    }
104 120
}

Also available in: Unified diff