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 43925 jjdelcerro
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 44168 jjdelcerro
            this.txtViewProjection.setText(this.parameters.getContextProjection().getAbrev());
64 43925 jjdelcerro
        }
65
        if( this.parameters.getSourceProjection()!=null ) {
66 44168 jjdelcerro
            this.txtOriginalProjection.setText(this.parameters.getSourceProjection().getAbrev());
67 43925 jjdelcerro
        }
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 43968 jjdelcerro
    public void previousPanel() {
143
144
    }
145
146
    @Override
147 43925 jjdelcerro
    public void enterPanel() {
148
149
    }
150
151
    @Override
152 43968 jjdelcerro
    public void nextPanel() {
153 43925 jjdelcerro
        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
}