svn-gvsig-desktop / trunk / extensions / extGeoreferencing / src / com / iver / cit / gvsig / gui / Dialogs / GeoreferencingDialog.java @ 2854
History | View | Annotate | Download (7.93 KB)
1 |
package com.iver.cit.gvsig.gui.Dialogs; |
---|---|
2 |
|
3 |
import java.awt.BorderLayout; |
4 |
import java.awt.FlowLayout; |
5 |
|
6 |
import javax.swing.JButton; |
7 |
import javax.swing.JDialog; |
8 |
import javax.swing.JFileChooser; |
9 |
import javax.swing.JPanel; |
10 |
import javax.swing.JTabbedPane; |
11 |
import javax.swing.event.ChangeEvent; |
12 |
import javax.swing.event.ChangeListener; |
13 |
|
14 |
import org.cresques.cts.IProjection; |
15 |
|
16 |
import com.iver.andami.PluginServices; |
17 |
import com.iver.andami.ui.mdiManager.View; |
18 |
import com.iver.andami.ui.mdiManager.ViewInfo; |
19 |
import com.iver.cit.gvsig.fmap.MapControl; |
20 |
import com.iver.cit.gvsig.fmap.tools.ZoomOutRightButtonListener; |
21 |
import com.iver.cit.gvsig.fmap.tools.Behavior.Behavior; |
22 |
import com.iver.cit.gvsig.fmap.tools.Behavior.MouseMovementBehavior; |
23 |
import com.iver.cit.gvsig.fmap.tools.Behavior.MoveBehavior; |
24 |
import com.iver.cit.gvsig.fmap.tools.Behavior.PointBehavior; |
25 |
import com.iver.cit.gvsig.fmap.tools.Behavior.RectangleBehavior; |
26 |
import com.iver.cit.gvsig.gui.Panels.SelectFilePanel; |
27 |
import com.iver.cit.gvsig.gui.Panels.SelectPointsPanel; |
28 |
import com.iver.cit.gvsig.gui.toolListeners.GeorefPanListener; |
29 |
import com.iver.cit.gvsig.gui.toolListeners.StatusBarListener; |
30 |
import com.iver.cit.gvsig.gui.toolListeners.ZoomInGeorefListener; |
31 |
import com.iver.cit.gvsig.gui.toolListeners.ZoomInListener; |
32 |
import com.iver.cit.gvsig.gui.toolListeners.ZoomOutGeorefListener; |
33 |
import com.iver.cit.gvsig.gui.wizards.WizardListener; |
34 |
import com.iver.cit.gvsig.project.Project; |
35 |
|
36 |
/**
|
37 |
* Panel que contiene el Wizard de georeferenciaci?n con los tabs
|
38 |
* interiores
|
39 |
*
|
40 |
* @author Nacho Brodin (brodin_ign@gva.es)
|
41 |
*/
|
42 |
public class GeoreferencingDialog extends JPanel implements com.iver.andami.ui.mdiManager.View { |
43 |
|
44 |
static private IProjection proj = Project.getProjection(); |
45 |
private javax.swing.JTabbedPane tabPanel = null;; |
46 |
private JFileChooser fileChooser; |
47 |
private JPanel pBotones = null; |
48 |
private JButton bProcesar = null; |
49 |
private JButton bCancelar = null; |
50 |
private WizardListener wizardListener = new DialogWizardListener(); |
51 |
private JButton bSave = null; |
52 |
private static boolean loadTools = false; |
53 |
|
54 |
/**
|
55 |
* Constructor.
|
56 |
*/
|
57 |
public GeoreferencingDialog() {
|
58 |
initialize(); |
59 |
|
60 |
} |
61 |
|
62 |
/**
|
63 |
* This method initializes this
|
64 |
*/
|
65 |
private void initialize() { |
66 |
this.setLayout(new BorderLayout()); |
67 |
this.setPreferredSize(new java.awt.Dimension(400,315)); |
68 |
this.setSize(new java.awt.Dimension(400,315)); |
69 |
this.setLocation(new java.awt.Point(0,0)); |
70 |
this.add(getTabPanel(), BorderLayout.CENTER); |
71 |
this.add(getPBotones(), java.awt.BorderLayout.SOUTH);
|
72 |
this.addTab(PluginServices.getText(this, "cargar_fichero"), new SelectFilePanel(this)); |
73 |
this.addTab(PluginServices.getText(this, "seleccionar_puntos"), new SelectPointsPanel()); |
74 |
|
75 |
//Cargamos las herramientas la primera vez que abrimos la ventana
|
76 |
if(!loadTools){
|
77 |
GeoreferencingDialog.loadTools = true;
|
78 |
com.iver.cit.gvsig.gui.View vista = (com.iver.cit.gvsig.gui.View) PluginServices.getMDIManager().getActiveView(); |
79 |
MapControl mapCtrl = vista.getMapControl(); |
80 |
|
81 |
StatusBarListener sbl = new StatusBarListener(mapCtrl);
|
82 |
|
83 |
ZoomOutGeorefListener zogl = new ZoomOutGeorefListener(mapCtrl);
|
84 |
mapCtrl.addMapTool("geoZoomOut", new Behavior[]{new PointBehavior(zogl), new MouseMovementBehavior(sbl)}); |
85 |
|
86 |
ZoomOutRightButtonListener zoil = new ZoomOutRightButtonListener(mapCtrl);
|
87 |
ZoomInGeorefListener zigl = new ZoomInGeorefListener(mapCtrl);
|
88 |
mapCtrl.addMapTool("geoZoomIn", new Behavior[]{new RectangleBehavior(zigl), |
89 |
new PointBehavior(zoil), new MouseMovementBehavior(sbl)}); |
90 |
|
91 |
GeorefPanListener pl = new GeorefPanListener(mapCtrl);
|
92 |
mapCtrl.addMapTool("geoPan", new Behavior[]{new MoveBehavior(pl), new MouseMovementBehavior(sbl)}); |
93 |
} |
94 |
} |
95 |
|
96 |
/**
|
97 |
* This method initializes tabPanel
|
98 |
*
|
99 |
* @return javax.swing.JTabbedPane
|
100 |
*/
|
101 |
public javax.swing.JTabbedPane getTabPanel() {
|
102 |
if (tabPanel == null) { |
103 |
tabPanel = new javax.swing.JTabbedPane();
|
104 |
tabPanel.setBounds(0, 0, 519, 352); |
105 |
tabPanel.addChangeListener(new ChangeListener() { |
106 |
public void stateChanged(ChangeEvent e) { |
107 |
JTabbedPane tabs = (JTabbedPane) e.getSource(); |
108 |
//getBProcesar().setEnabled(!(tabs.getSelectedComponent() instanceof WizardPanel));
|
109 |
} |
110 |
}); |
111 |
} |
112 |
|
113 |
return tabPanel;
|
114 |
} |
115 |
|
116 |
/**
|
117 |
* A?ade pesta?as al panel
|
118 |
* @param title Nombre del tab
|
119 |
* @param panel Panel que ir? en la pesta?a
|
120 |
*/
|
121 |
public void addTab(String title, JPanel panel){ |
122 |
getTabPanel().addTab(title, panel); |
123 |
} |
124 |
|
125 |
/**
|
126 |
* Obtiene el panel que contiene la pesta?a seleccionada
|
127 |
* @return Panel seleccionado
|
128 |
*/
|
129 |
public JPanel getSelectedTab(){ |
130 |
return (JPanel) getTabPanel().getSelectedComponent(); |
131 |
} |
132 |
|
133 |
public ViewInfo getViewInfo() {
|
134 |
ViewInfo m_viewinfo = new ViewInfo(ViewInfo.MODALDIALOG);
|
135 |
m_viewinfo.setTitle(PluginServices.getText(this,"cargar_sin_georef")); |
136 |
return m_viewinfo;
|
137 |
} |
138 |
|
139 |
/**
|
140 |
* This method initializes jPanel
|
141 |
*
|
142 |
* @return javax.swing.JPanel
|
143 |
*/
|
144 |
private JPanel getPBotones() { |
145 |
if (pBotones == null) { |
146 |
FlowLayout flowLayout1 = new FlowLayout(); |
147 |
pBotones = new JPanel(); |
148 |
pBotones.setLayout(flowLayout1); |
149 |
flowLayout1.setHgap(30);
|
150 |
pBotones.add(getBProcesar(), null);
|
151 |
pBotones.add(getBSave(), null);
|
152 |
pBotones.add(getBCancelar(), null);
|
153 |
} |
154 |
return pBotones;
|
155 |
} |
156 |
|
157 |
/**
|
158 |
* This method initializes bProcesar
|
159 |
*
|
160 |
* @return javax.swing.JButton
|
161 |
*/
|
162 |
private JButton getBProcesar() { |
163 |
if (bProcesar == null) { |
164 |
bProcesar = new JButton(); |
165 |
bProcesar.setText(PluginServices.getText(this,"procesar")); |
166 |
bProcesar.setEnabled(false);
|
167 |
bProcesar.addActionListener(new java.awt.event.ActionListener() {
|
168 |
public void actionPerformed(java.awt.event.ActionEvent e) { |
169 |
if (PluginServices.getMainFrame() == null) { |
170 |
((JDialog) (getParent().getParent().getParent()
|
171 |
.getParent())).dispose(); |
172 |
} else {
|
173 |
PluginServices.getMDIManager().closeView((View) GeoreferencingDialog.this);
|
174 |
} |
175 |
} |
176 |
}); |
177 |
} |
178 |
return bProcesar;
|
179 |
} |
180 |
/**
|
181 |
* This method initializes bCancelar
|
182 |
*
|
183 |
* @return javax.swing.JButton
|
184 |
*/
|
185 |
private JButton getBCancelar() { |
186 |
if (bCancelar == null) { |
187 |
bCancelar = new JButton(); |
188 |
bCancelar.setText(PluginServices.getText(this,"cancelar")); |
189 |
bCancelar.addActionListener(new java.awt.event.ActionListener() {
|
190 |
public void actionPerformed(java.awt.event.ActionEvent e) { |
191 |
if (PluginServices.getMainFrame() != null) { |
192 |
PluginServices.getMDIManager().closeView((View) GeoreferencingDialog.this);
|
193 |
} else {
|
194 |
((JDialog) (getParent().getParent().getParent()
|
195 |
.getParent())).dispose(); |
196 |
} |
197 |
} |
198 |
}); |
199 |
} |
200 |
return bCancelar;
|
201 |
} |
202 |
|
203 |
public class DialogWizardListener implements WizardListener { |
204 |
|
205 |
/**
|
206 |
* @see com.iver.cit.gvsig.gui.wms.WizardListener#error(java.lang.Exception)
|
207 |
*/
|
208 |
public void error(Exception e) { |
209 |
} |
210 |
|
211 |
/**
|
212 |
* @see com.iver.cit.gvsig.gui.wms.WizardListener#wizardStateChanged(boolean)
|
213 |
*/
|
214 |
public void wizardStateChanged(boolean finishable) { |
215 |
getBProcesar().setEnabled(finishable); |
216 |
} |
217 |
|
218 |
} |
219 |
public static IProjection getLastProjection() { |
220 |
return proj;
|
221 |
} |
222 |
public static void setLastProjection(IProjection proj) { |
223 |
GeoreferencingDialog.proj = proj; |
224 |
} |
225 |
|
226 |
/**
|
227 |
* This method initializes jButton
|
228 |
*
|
229 |
* @return javax.swing.JButton
|
230 |
*/
|
231 |
private JButton getBSave() { |
232 |
if (bSave == null) { |
233 |
bSave = new JButton(); |
234 |
bSave.setText(PluginServices.getText(this,"guardar")); |
235 |
bSave.setEnabled(false);
|
236 |
} |
237 |
return bSave;
|
238 |
} |
239 |
} // @jve:decl-index=0:visual-constraint="10,10"
|
240 |
// @jve:visual-info decl-index=0 visual-constraint="10,10"
|
241 |
// @jve:visual-info decl-index=0 visual-constraint="10,10"
|