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 / SelectTargetProjectionPanel.java @ 44168

History | View | Annotate | Download (6.74 KB)

1
package org.gvsig.export.swing.impl.panels;
2

    
3
import java.awt.event.ItemEvent;
4
import java.awt.event.ItemListener;
5
import javax.swing.JComponent;
6
import org.gvsig.export.ExportParameters;
7
import org.gvsig.export.ExportParametersGeometry;
8
import org.gvsig.export.swing.JExportProcessPanel;
9
import org.gvsig.export.swing.impl.pickercontroller.ProjectionPickerController;
10
import org.gvsig.export.swing.spi.ExportPanel;
11
import org.gvsig.export.swing.spi.ExportPanelValidationException;
12
import org.gvsig.export.swing.spi.ExportPanelsManager;
13
import org.gvsig.tools.ToolsLocator;
14
import org.gvsig.tools.i18n.I18nManager;
15
import org.gvsig.tools.swing.api.ToolsSwingLocator;
16
import org.gvsig.tools.swing.api.ToolsSwingManager;
17

    
18
/**
19
 *
20
 * @author jjdelcerro
21
 */
22
public class SelectTargetProjectionPanel 
23
        extends SelectTargetProjectionPanelView
24
        implements ExportPanel
25
    {
26

    
27
    private final ExportParametersGeometry parameters;
28
    private final JExportProcessPanel processPanel;
29
    private ProjectionPickerController projectionController;
30
    
31
    public SelectTargetProjectionPanel(
32
            JExportProcessPanel processPanel,
33
            ExportParameters parameters
34
        ) {
35
        this.processPanel = processPanel;
36
        this.parameters = (ExportParametersGeometry) parameters;
37
        this.initComponents();
38
    }
39

    
40
    private void initComponents() {
41
        this.projectionController = new ProjectionPickerController(
42
                this.txtUserProjection,
43
                this.btnSelectUserProjection
44
        );
45
        this.translate();
46
        if( this.parameters.getContextProjection() == this.parameters.getSourceProjection() ) {
47
            this.rdbtnOriginalProjection.setEnabled(this.parameters.getSourceProjection()!=null);
48
            this.txtOriginalProjection.setEnabled(this.parameters.getSourceProjection()!=null);
49
            this.rdbtnViewProjection.setEnabled(false);
50
            this.txtViewProjection.setEnabled(false);
51
            this.rdbtnUserProjection.setEnabled(true);
52
            this.txtUserProjection.setEnabled(true);
53
            
54
        } else {
55
            this.rdbtnOriginalProjection.setEnabled(this.parameters.getSourceProjection()!=null);
56
            this.txtOriginalProjection.setEnabled(this.parameters.getSourceProjection()!=null);
57
            this.rdbtnViewProjection.setEnabled(this.parameters.getContextProjection()!=null);
58
            this.txtViewProjection.setEnabled(this.parameters.getContextProjection()!=null);
59
            this.rdbtnUserProjection.setEnabled(true);
60
            this.txtUserProjection.setEnabled(true);
61
        }
62
        if( this.parameters.getContextProjection()!=null ) {
63
            this.txtViewProjection.setText(this.parameters.getContextProjection().getAbrev());
64
        } 
65
        if( this.parameters.getSourceProjection()!=null ) {
66
            this.txtOriginalProjection.setText(this.parameters.getSourceProjection().getAbrev());
67
        } 
68
        if( this.parameters.getTargetProjection()==null ) {
69
            this.projectionController.set(this.parameters.getSourceProjection());
70
        } else {
71
            this.projectionController.set(this.parameters.getTargetProjection());
72
        }
73
        this.rdbtnOriginalProjection.addItemListener(new ItemListener() {
74
            @Override
75
            public void itemStateChanged(ItemEvent e) {
76
                doRadioButonsStateChanged();
77
            }
78
        });
79
        this.rdbtnUserProjection.addItemListener(new ItemListener() {
80
            @Override
81
            public void itemStateChanged(ItemEvent e) {
82
                doRadioButonsStateChanged();
83
            }
84
        });
85
        this.rdbtnViewProjection.addItemListener(new ItemListener() {
86
            @Override
87
            public void itemStateChanged(ItemEvent e) {
88
                doRadioButonsStateChanged();
89
            }
90
        });
91
        if( this.parameters.getSourceProjection()==null ) {
92
            this.rdbtnUserProjection.setSelected(true);
93
        } else {
94
            this.rdbtnOriginalProjection.setSelected(true);
95
        }
96
    }
97
    
98
    private void doRadioButonsStateChanged() {
99
        if( this.rdbtnUserProjection.isSelected() ) {
100
            this.projectionController.setEnabled(true);
101
            this.txtOriginalProjection.setEnabled(false);
102
            this.txtViewProjection.setEnabled(false);
103
            this.txtUserProjection.setEnabled(true);
104
            
105
        } else if( this.rdbtnOriginalProjection.isSelected() ) {
106
            this.projectionController.setEnabled(false);
107
            this.txtOriginalProjection.setEnabled(true);
108
            this.txtViewProjection.setEnabled(false);
109
            this.txtUserProjection.setEnabled(false);
110
            
111
        } else if( this.rdbtnViewProjection.isSelected() ) {
112
            this.projectionController.setEnabled(false);
113
            this.txtOriginalProjection.setEnabled(false);
114
            this.txtViewProjection.setEnabled(true);
115
            this.txtUserProjection.setEnabled(false);
116
            
117
        }
118
    }
119
    
120
    @Override
121
    public String getIdPanel() {
122
        return ExportPanelsManager.PANEL_SELECT_TARGET_PROJECTION;
123
    }
124
    
125
    @Override
126
    public String getTitlePanel() {
127
        I18nManager i18n = ToolsLocator.getI18nManager();
128
        return i18n.getTranslation("_Target_projection");
129
    }
130

    
131
    @Override
132
    public boolean validatePanel() throws ExportPanelValidationException {
133
        if( this.rdbtnUserProjection.isSelected() ) {
134
            if( this.projectionController.isEmpty() ) {
135
                return false;
136
            }
137
        }
138
        return true;
139
    }
140

    
141
    @Override
142
    public void previousPanel() {
143

    
144
    }
145

    
146
    @Override
147
    public void enterPanel() {
148

    
149
    }
150

    
151
    @Override
152
    public void nextPanel() {
153
        if( this.rdbtnUserProjection.isSelected() ) {
154
            this.parameters.setTargetProjection(this.projectionController.get());
155
            this.parameters.setTargetTransformation(this.projectionController.getCoordinateTransformation());
156
            
157
        } else if( this.rdbtnOriginalProjection.isSelected() ) {
158
            this.parameters.setTargetProjection(null);
159
            this.parameters.setTargetTransformation(null);
160
            
161
        } else if( this.rdbtnViewProjection.isSelected() ) {
162
            this.parameters.setTargetProjection(this.parameters.getContextProjection());
163
            this.parameters.setTargetTransformation(this.parameters.getSourceTransformation());
164
            
165
        }
166
    }
167

    
168
    @Override
169
    public JComponent asJComponent() {
170
        return this;
171
    }
172

    
173
    private void translate() {
174
        ToolsSwingManager manager = ToolsSwingLocator.getToolsSwingManager();
175
        manager.translate(this.lblSelectTargetProjection);
176
        manager.translate(this.rdbtnOriginalProjection);
177
        manager.translate(this.rdbtnUserProjection);
178
        manager.translate(this.rdbtnViewProjection);
179
    }
180
    
181
}