Revision 1879

View differences:

trunk/extensions/extWCS/src-gvsig/com/iver/cit/gvsig/Abrir.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41
package com.iver.cit.gvsig;
42

  
43
import java.awt.geom.Rectangle2D;
44
import java.io.File;
45
import java.util.ArrayList;
46

  
47
import javax.swing.JOptionPane;
48

  
49
import org.cresques.cts.ICoordTrans;
50
import org.cresques.cts.IProjection;
51
import org.cresques.cts.gt2.CoordSys;
52
import org.cresques.cts.gt2.CoordTrans;
53

  
54
import com.iver.andami.PluginServices;
55
import com.iver.andami.messages.NotificationManager;
56
import com.iver.andami.plugins.Extension;
57
import com.iver.cit.gvsig.fmap.DriverException;
58
import com.iver.cit.gvsig.fmap.drivers.RasterDriver;
59
import com.iver.cit.gvsig.fmap.drivers.VectorialFileDriver;
60
import com.iver.cit.gvsig.fmap.layers.FLayer;
61
import com.iver.cit.gvsig.fmap.layers.LayerFactory;
62
import com.iver.cit.gvsig.gui.FOpenDialog;
63
import com.iver.cit.gvsig.gui.FileOpenDialog;
64
import com.iver.cit.gvsig.gui.View;
65
import com.iver.cit.gvsig.gui.WizardPanel;
66
import com.iver.cit.gvsig.gui.wms.WMSWizard;
67

  
68

  
69
/**
70
 * Extensi?n que abre un di?logo para seleccionar la capa o capas que se
71
 * quieren a?adir a la vista.
72
 *
73
 * @author Fernando Gonz?lez Cort?s
74
 */
75
public class Abrir implements Extension {
76
	public FOpenDialog fopen = null;
77
	
78
	private static ArrayList wizardStack = null;
79
	
80
	static {
81
		Abrir.wizardStack = new ArrayList();
82
		Abrir.addWizard(new WMSWizard());
83
	}
84
	
85
	public static void addWizard(WizardPanel wp) {
86
		wp.initWizard();
87
		Abrir.wizardStack.add(wp);
88
	}
89

  
90
	/**
91
	 * @see com.iver.mdiApp.plugins.Extension#isVisible()
92
	 */
93
	public boolean isVisible() {
94
		com.iver.andami.ui.mdiManager.View f = PluginServices.getMDIManager()
95
															 .getActiveView();
96

  
97
		if (f == null) {
98
			return false;
99
		}
100

  
101
		return (f.getClass() == View.class);
102
	}
103

  
104
	/**
105
	 * @see com.iver.andami.plugins.Extension#inicializar()
106
	 */
107
	public void inicializar() {
108
	}
109

  
110
	/**
111
	 * @see com.iver.andami.plugins.Extension#execute(java.lang.String)
112
	 */
113
	public void execute(String actionCommand) {
114
		View theView = (View) PluginServices.getMDIManager().getActiveView();
115
		fopen = new FOpenDialog();
116

  
117
		FileOpenDialog fileDlg = new FileOpenDialog(new Class[] {
118
					VectorialFileDriver.class, RasterDriver.class
119
				});
120
		// LWS WMSWizard wms = new WMSWizard(); 
121
		// LWS wms.setDataSource(new WMSDataSourceAdapter()); 
122

  
123
		//        DataBaseOpenDialog dbop = new DataBaseOpenDialog();
124
		//        dbop.setClasses(new Class[] { DBDriver.class });
125
		fopen.addTab("Fichero", fileDlg);
126
		// LWS fopen.addWizardTab("WMS", wms);
127
		for (int i=0; i<wizardStack.size(); i++) {
128
			WizardPanel wp = (WizardPanel) Abrir.wizardStack.get(i);
129
			fopen.addWizardTab(wp.getTabName(), wp);
130
		}
131
		
132
		// <Jaume>
133
		// Aqu? es donde se deber?a poner el c?digo si queremos ponerlo de manera integrada
134
//		 LWS  WCSWizard wcs = new WCSWizard();
135
//		 LWS  wcs.setDataSource(new WCSDataSourceAdapter()); 
136
//		 LWS  fopen.addWizardTab("WCS", wcs);
137
		// </Jaume>
138
		//        fopen.addTab("Base de datos", dbop);
139
		PluginServices.getMDIManager().addView(fopen);
140

  
141
		if (fopen.isAccepted()) {
142
			FLayer lyr = null;
143

  
144
			if (fopen.getSelectedTab() == fileDlg) {
145
				if (fileDlg.getFiles() == null) {
146
					return;
147
				}
148

  
149
				IProjection proj = FOpenDialog.getLastProjection();
150
				File[] files = fileDlg.getFiles();
151
				String[] driverNames = fileDlg.getDriverNames();
152
				Rectangle2D[] rects=new Rectangle2D[files.length];
153
				boolean first=false;
154
				theView.getMapControl().getMapContext()
155
				   .beginAtomicEvent();
156

  
157
				for (int iFile = 0; iFile < files.length; iFile++) {
158
					File fich = files[iFile];
159
					String layerName = fich.getName();
160
					String layerPath = fich.getAbsolutePath();
161

  
162
					try {
163
						lyr = LayerFactory.createLayer(layerName,
164
								driverNames[iFile], fich, proj);
165

  
166
						if (lyr != null) {
167
							lyr.setVisible(true);
168
							if (theView.getMapControl().getMapContext().getViewPort().getExtent()==null){
169
								first=true;
170
							}
171

  
172
							// Comprobar que la projecci?n es la misma que la vista
173
							if (proj != theView.getProjection()) {
174
								int option = JOptionPane.showConfirmDialog(null,
175
								        PluginServices.getText(this,"reproyectar_aviso"),
176
								        PluginServices.getText(this,"reproyectar_pregunta"),
177
										JOptionPane.YES_NO_OPTION);
178

  
179
								if (option == JOptionPane.NO_OPTION) {
180
									continue;
181
								} else {
182
									ICoordTrans ct = new CoordTrans((CoordSys) proj,
183
											(CoordSys) theView.getProjection());
184
									lyr.setCoordTrans(ct);
185
									System.err.println("coordTrans = " +
186
										proj.getAbrev() + " " +
187
										theView.getProjection().getAbrev());
188
								}
189
							}
190

  
191
							theView.getMapControl().getMapContext().getLayers()
192
								   .addLayer(lyr);
193
							rects[iFile]=lyr.getFullExtent();
194
							
195
							// TODO: Poner una variable y dibujar solo cuando
196
							// todas las capas hayan sido cargadas.
197
							// TODO Se deber? de redibujar mediante la captura de los eventos, por
198
							//eso se comenta la parte anterior
199
							//							theView.getMapControl().drawMap();
200
							//							theView.getTOC().refresh();
201
						}
202

  
203
					} catch (DriverException e) {
204
						NotificationManager.addError("Error al crear la capa", e);
205
					}
206
				}
207

  
208
				//Esto permite que cuando se cargan varias capas de golpe y la vista est? vacia,se ponga como extent la suma de todos sus extents.
209
				if (rects.length > 1) {
210
					Rectangle2D rect = new Rectangle2D.Double();
211
					rect.setRect(rects[0]);
212

  
213
					if (first) {
214
						for (int i = 0; i < rects.length; i++) {
215
							rect.add(rects[i]);
216
						}
217

  
218
						theView.getMapControl().getMapContext().getViewPort()
219
							   .setExtent(rect);
220
					}
221
				}
222
				theView.getMapControl().getMapContext()
223
				   .endAtomicEvent();
224

  
225
			} else if (fopen.getSelectedTab() instanceof WizardPanel) {
226
				WizardPanel wp = (WizardPanel) fopen.getSelectedTab();
227
				
228
				wp.execute();
229
				lyr = wp.getLayer();
230
				
231
				if (lyr != null) {
232
					lyr.setVisible(true);
233
					theView.getMapControl().getMapContext().beginAtomicEvent();
234
					theView.getMapControl().getMapContext().getLayers()
235
						   .addLayer(lyr);
236
					theView.getMapControl().getMapContext().endAtomicEvent();
237
				}
238
			}/* else if (fopen.getSelectedTab() == wms) {
239
				String layerName = wms.getLayerName();
240

  
241
				lyr = LayerFactory.createLayer(layerName,
242
						wms.getLayersRectangle(), wms.getHost(),
243
						wms.getFormat(), wms.getLayersQuery(),
244
						wms.getQueryableLayerQuery(), wms.getSRS());
245

  
246
				if (lyr != null) {
247
					lyr.setVisible(true);
248
					theView.getMapControl().getMapContext().beginAtomicEvent();
249
					theView.getMapControl().getMapContext().getLayers()
250
						   .addLayer(lyr);
251
					theView.getMapControl().getMapContext().endAtomicEvent();
252
				}
253
			} // for*/
254
		}
255
	}
256

  
257
	/**
258
	 * @see com.iver.andami.plugins.Extension#isEnabled()
259
	 */
260
	public boolean isEnabled() {
261
		return true;
262
	}
263
}
0 264

  
trunk/extensions/extWCS/src-gvsig/com/iver/cit/gvsig/gui/wms/WMSWizard.java
1
/*
2
 * Created on 23-abr-2004
3
 *
4
 * To change the template for this generated file go to
5
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
6
 */
7
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
8
 *
9
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
10
 *
11
 * This program is free software; you can redistribute it and/or
12
 * modify it under the terms of the GNU General Public License
13
 * as published by the Free Software Foundation; either version 2
14
 * of the License, or (at your option) any later version.
15
 *
16
 * This program is distributed in the hope that it will be useful,
17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
 * GNU General Public License for more details.
20
 *
21
 * You should have received a copy of the GNU General Public License
22
 * along with this program; if not, write to the Free Software
23
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
24
 *
25
 * For more information, contact:
26
 *
27
 *  Generalitat Valenciana
28
 *   Conselleria d'Infraestructures i Transport
29
 *   Av. Blasco Ib??ez, 50
30
 *   46010 VALENCIA
31
 *   SPAIN
32
 *
33
 *      +34 963862235
34
 *   gvsig@gva.es
35
 *      www.gvsig.gva.es
36
 *
37
 *    or
38
 *
39
 *   IVER T.I. S.A
40
 *   Salamanca 50
41
 *   46005 Valencia
42
 *   Spain
43
 *
44
 *   +34 963163400
45
 *   dac@iver.es
46
 */
47
package com.iver.cit.gvsig.gui.wms;
48

  
49
import java.awt.geom.Rectangle2D;
50
import java.net.MalformedURLException;
51
import java.net.URL;
52
import java.util.ArrayList;
53
import java.util.HashSet;
54
import java.util.Iterator;
55
import java.util.TreeSet;
56

  
57
import javax.swing.DefaultComboBoxModel;
58
import javax.swing.DefaultListModel;
59
import javax.swing.JPanel;
60
import javax.swing.JTextField;
61
import javax.swing.tree.TreePath;
62

  
63
import org.apache.log4j.Logger;
64

  
65
import com.iver.andami.PluginServices;
66
import com.iver.cit.gvsig.fmap.layers.FLayer;
67
import com.iver.cit.gvsig.fmap.layers.LayerFactory;
68
import com.iver.cit.gvsig.gui.WMSDataSourceAdapter;
69
import com.iver.cit.gvsig.gui.WizardPanel;
70
import com.iver.utiles.NotExistInXMLEntity;
71
import com.iver.utiles.XMLEntity;
72
import com.iver.utiles.swing.JComboBox;
73

  
74

  
75
/**
76
 * DOCUMENT ME!
77
 *
78
 * @author Fernando Gonz?lez Cort?s
79
 */
80
public class WMSWizard extends WizardPanel {
81
	private static Logger logger = Logger.getLogger(WMSWizard.class.getName());
82
	private int page = 0;
83
	private boolean conectado = false;
84
	private javax.swing.JPanel jContentPane = null;
85
	private JComboBox cmbHost = null;
86
	private javax.swing.JButton btnDetalles = null;
87
	private javax.swing.JPanel jPanel = null;
88
	private javax.swing.JLabel jLabel1 = null;
89
	private javax.swing.JLabel lblTitle = null;
90
	private javax.swing.JScrollPane jScrollPane = null;
91
	private javax.swing.JTextArea txtAbstract = null;
92
	private javax.swing.JScrollPane jScrollPane1 = null;
93
	private javax.swing.JTree treeLayers1 = null;
94
	private javax.swing.JScrollPane jScrollPane2 = null;
95
	private javax.swing.JList lstFormats1 = null;
96
	private javax.swing.JPanel panelPage1 = null;
97
	private javax.swing.JPanel panelPage2 = null;
98
	private javax.swing.JScrollPane jScrollPane5 = null;
99
	private javax.swing.JList lstSelectedLayers = null;
100
	private javax.swing.JButton btnAdd = null;
101
	private javax.swing.JButton btnDel = null;
102
	private javax.swing.JScrollPane jScrollPane6 = null;
103
	private javax.swing.JList lstSRSs = null;
104
	private LayerListModel selectedLayersModel = new LayerListModel();
105
	private javax.swing.JButton btnSiguiente = null;
106
	private javax.swing.JButton btnAnterior = null;
107
	private javax.swing.JPanel jPanel1 = null;
108
	private javax.swing.JPanel jPanel2 = null;
109
	private javax.swing.JPanel jPanel3 = null;
110
	private WizardListenerSupport listenerSupport = new WizardListenerSupport();
111
	private WizardDataSource dataSource;
112
	private JPanel jPanel4 = null;
113
	private JTextField jTxtNomCapa = null;
114

  
115
	/**
116
	 * This is the default constructor
117
	 */
118
	public WMSWizard() {
119
		super();
120
		initialize();
121
	}
122

  
123
	/**
124
	 * This method initializes this
125
	 */
126
	private void initialize() {
127
		setTabName("WMS");
128
		this.setSize(510, 311);
129
		this.setLayout(null);
130
		this.setPreferredSize(new java.awt.Dimension(750, 320));
131
		this.setVisible(true);
132
		this.add(getPanelPage1(), null);
133
		this.add(getPanelPage2(), null);
134
		this.add(getBtnAnterior(), null);
135
		this.add(getBtnSiguiente(), null);
136
		activarVisualizarBotones();
137
	}
138

  
139
	/**
140
	 * DOCUMENT ME!
141
	 */
142
	private void actualizarSRS() {
143
		LayerInfo[] layers = ((LayerListModel) lstSelectedLayers.getModel()).getElements();
144

  
145
		if (layers.length == 0) {
146
			lstSRSs.setModel(new DefaultListModel());
147
		} else {
148
			TreeSet srsSet = new TreeSet();
149
			srsSet.addAll(layers[0].getSRSs());
150

  
151
			for (int i = 1; i < layers.length; i++) {
152
				HashSet nuevo = new HashSet(layers[i].getSRSs());
153
				Iterator it = srsSet.iterator();
154

  
155
				while (it.hasNext()) {
156
					String srs = (String) it.next();
157

  
158
					if (!nuevo.contains(srs)) {
159
						srsSet.remove(srs);
160
					}
161
				}
162
			}
163

  
164
			DefaultListModel model = new DefaultListModel();
165
			String[] array = (String[]) srsSet.toArray(new String[0]);
166

  
167
			for (int i = 0; i < array.length; i++) {
168
				model.addElement(array[i]);
169
			}
170

  
171
			lstSRSs.setModel(model);
172
		}
173
	}
174

  
175
	/**
176
	 * DOCUMENT ME!
177
	 */
178
	private void addLayer() {
179
		boolean alguno = false;
180

  
181
		TreePath[] selecciones = getTreeLayers1().getSelectionPaths();
182

  
183
		for (int i = 0; i < selecciones.length; i++) {
184
			LayerInfo nodo = (LayerInfo) selecciones[i].getLastPathComponent();
185

  
186
			String name = nodo.name;
187
			String text = nodo.text;
188
			ArrayList srs = nodo.getSRSs();
189

  
190
			//Se a?ade a la lista de layers seleccionados
191
			LayerListModel modelo = (LayerListModel) lstSelectedLayers.getModel();
192

  
193
			if (modelo.addElement(nodo)) {
194
				alguno = true;
195
			}
196
		}
197

  
198
		if (alguno) {
199
			activarVisualizarBotones();
200
			actualizarSRS();
201
		}
202
	}
203

  
204
	/**
205
	 * DOCUMENT ME!
206
	 */
207
	private void delLayer() {
208
		int[] index = lstSelectedLayers.getSelectedIndices();
209

  
210
		ArrayList removeList = new ArrayList();
211
		LayerListModel modelo = (LayerListModel) lstSelectedLayers.getModel();
212
		LayerInfo[] infos = modelo.getElements();
213

  
214
		for (int i = 0; i < index.length; i++) {
215
			removeList.add(infos[index[i]]);
216
		}
217

  
218
		modelo.delElements(removeList);
219
		lstSelectedLayers.clearSelection();
220

  
221
		activarVisualizarBotones();
222

  
223
		actualizarSRS();
224
	}
225

  
226
	/**
227
	 * DOCUMENT ME!
228
	 *
229
	 * @param host DOCUMENT ME!
230
	 */
231
	private void addHost(String host) {
232
		host = host.trim();
233

  
234
		DefaultComboBoxModel model = (DefaultComboBoxModel) getTxtHost()
235
																.getModel();
236

  
237
		if (model.getIndexOf(host) < 0) {
238
			model.addElement(host);
239

  
240
			PluginServices ps = PluginServices.getPluginServices(this);
241
			XMLEntity xml = ps.getPersistentXML();
242

  
243
			try {
244
				String[] servers = xml.getStringArrayProperty("wms-servers");
245
				String[] newServers = new String[servers.length + 1];
246
				System.arraycopy(servers, 0, newServers, 0, servers.length);
247
				newServers[servers.length] = host;
248
				xml.putProperty("wms-servers", newServers);
249
			} catch (NotExistInXMLEntity e) {
250
				xml.putProperty("wms-servers", new String[] { host });
251
			}
252

  
253
			ps.setPersistentXML(xml);
254
		}
255
	}
256

  
257
	/**
258
	 * DOCUMENT ME!
259
	 */
260
	private void rellenarControles() {
261
		try {
262
			String host = cmbHost.getModel().getSelectedItem().toString();
263

  
264
			// if (!host.endsWith("?")) {
265
			// 	host += "?";
266
			// }
267

  
268
			WizardData data = dataSource.detalles(new URL(host));
269

  
270
			addHost(host);
271

  
272
			((LayerListModel) lstSelectedLayers.getModel()).clear();
273
			lstSelectedLayers.repaint();
274
			lblTitle.setText(data.getTitle());
275
			txtAbstract.setText(data.getAbstract());
276
			lstFormats1.setModel(new FormatListModel(data.getFormats()));
277
			treeLayers1.setModel(new LayerTreeModel(data.getLayer()));
278
			conectado = true;
279
			activarVisualizarBotones();
280
		} catch (Exception e) {
281
			listenerSupport.callError(e);
282
		}
283
	}
284

  
285
	/**
286
	 * DOCUMENT ME!
287
	 */
288
	private void activarVisualizarBotones() {
289
		if (page == 0) {
290
			getBtnAnterior().setEnabled(false);
291
			getBtnSiguiente().setVisible(true);
292

  
293
			if (conectado) {
294
				getBtnSiguiente().setEnabled(true);
295
			} else {
296
				getBtnSiguiente().setEnabled(false);
297
			}
298
		} else if (page == 1) {
299
			getBtnAnterior().setEnabled(true);
300
			getBtnSiguiente().setVisible(false);
301
			listenerSupport.callStateChanged(true);
302

  
303
			if ((getLstSRSs().getSelectedIndex() != -1) &&
304
					(getLstFormats1().getSelectedIndex() != -1) &&
305
					(getLstSelectedLayers().getModel().getSize() > 0)) {
306
				listenerSupport.callStateChanged(true);
307
			} else {
308
				listenerSupport.callStateChanged(false);
309
			}
310

  
311
			if (getTreeLayers1().getSelectionCount() > 0) {
312
				LayerInfo nodo = (LayerInfo) getTreeLayers1().getSelectionPath()
313
												 .getLastPathComponent();
314
				String name = nodo.name;
315

  
316
				if (name != null) {
317
					getBtnAdd().setEnabled(true);
318
				} else {
319
					getBtnAdd().setEnabled(false);
320
				}
321
			} else {
322
				getBtnAdd().setEnabled(false);
323
			}
324

  
325
			if (getLstSelectedLayers().getSelectedIndex() != -1) {
326
				getBtnDel().setEnabled(true);
327
			} else {
328
				getBtnDel().setEnabled(false);
329
			}
330
		}
331
	}
332

  
333
	/*
334
	 * DOCUMENT ME!
335
	 *
336
	             private void finalizar() {
337
	                 LayerInfo[] layers = ((LayerListModel) lstSelectedLayers.getModel()).getElements();
338
	                 String srs = (String) lstSRSs.getSelectedValue();
339
	                 //Nombre separado por comas de las capas
340
	                 String layersQuery = layers[0].name;
341
	                 for (int i = 1; i < layers.length; i++) {
342
	                     layersQuery += ("," + layers[i].name);
343
	                 }
344
	                 Rectangle2D rect;
345
	                 rect = v.getMapControl().getExtent();
346
	                 if (rect == null) {
347
	                     //Boundingbox de todas las capas
348
	                     ArrayList rectangulos = new ArrayList();
349
	                     for (int i = 0; i < layers.length; i++) {
350
	                         rect = wms.getBoundingBox(layers[i].name, srs);
351
	                         if (rect != null) {
352
	                             rectangulos.add(rect);
353
	                         }
354
	                     }
355
	                     rect = Utilities.getRectangle((Rectangle2D.Double[]) rectangulos.toArray(
356
	                                 new Rectangle2D.Double[0]));
357
	                     if (rect == null) {
358
	                         App.instance.getNm().addInfo("Si no hay un bounding box en la especificaci?n, y tampoco en el FMap.",
359
	                             null);
360
	                         return; //Si no hay un bounding box en la especificaci?n, y tampoco en el FMap.
361
	                     }
362
	                     logger.debug("(" + rect.getMinX() + ", " + rect.getMinY() + ")-(" +
363
	                         rect.getMaxX() + ", " + rect.getMaxY() + ")");
364
	                 }
365
	                 if (rect != null) {
366
	                     IFLayer lyr = new FLyrWMS(rect,
367
	                             (String) lstFormats1.getSelectedValue(), layersQuery, srs,
368
	                             wms);
369
	                     v.getMapControl().getLayers().addLayer(lyr);
370
	                     v.getTOC().refresh();
371
	                     v.getMapControl().drawMap();
372
	                 } else {
373
	                 }
374
	                 /*MapQuery query = new MapQuery();
375
	                    query.setBBOX(rect);
376
	                    query.setFormat((String) lstFormats1.getSelectedValue());
377
	                    query.setHeight(300);
378
	                    query.setLayers(layersQuery);
379
	                    query.setSRS(srs);
380
	                    query.setStyles("");
381
	                    query.setVersion("1.0.0");
382
	                    query.setWidth(300);
383
	                    byte[] bytes;
384
	                    try {
385
	                            bytes = wms.doMapQuery(query);
386
	                            FileOutputStream out;
387
	                            out = new FileOutputStream("res.png");
388
	                            out.write(bytes);
389
	                            out.close();
390
	                    } catch (WMSException e1) {
391
	                            e1.printStackTrace();
392
	                    } catch (Exception e1) {
393
	                            e1.printStackTrace();
394
	                    }
395
	             }*/
396

  
397
	/**
398
	 * This method initializes txtHost
399
	 *
400
	 * @return javax.swing.JTextField
401
	 */
402
	private javax.swing.JComboBox getTxtHost() {
403
		if (cmbHost == null) {
404
			cmbHost = new JComboBox();
405
			cmbHost.setModel(new DefaultComboBoxModel());
406
			cmbHost.setPreferredSize(new java.awt.Dimension(350, 20));
407
			cmbHost.setEditable(true);
408

  
409
			XMLEntity xml = PluginServices.getPluginServices(this)
410
										  .getPersistentXML();
411
			if (xml == null)
412
				xml = new XMLEntity();
413
			
414
			if (!xml.contains("wms-servers")) {
415
				String[] servers = new String[2];
416
				servers[0] = "http://demo.deegree.org:8080/deegree/wms";
417
				servers[1] = "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?";
418

  
419
				xml.putProperty("wms-servers", servers);
420
			}
421

  
422
			try {
423
				String[] servers = xml.getStringArrayProperty("wms-servers");
424

  
425
				for (int i = 0; i < servers.length; i++) {
426
					((DefaultComboBoxModel) cmbHost.getModel()).addElement(servers[i]);
427
				}
428
			} catch (NotExistInXMLEntity e) {
429
			}
430
		}
431

  
432
		return cmbHost;
433
	}
434

  
435
	/**
436
	 * This method initializes btnDetalles
437
	 *
438
	 * @return javax.swing.JButton
439
	 */
440
	private javax.swing.JButton getBtnDetalles() {
441
		if (btnDetalles == null) {
442
			btnDetalles = new javax.swing.JButton();
443
			btnDetalles.setPreferredSize(new java.awt.Dimension(100, 20));
444
			btnDetalles.setText(PluginServices.getText(this, "detalles"));
445
			btnDetalles.addActionListener(new java.awt.event.ActionListener() {
446
					public void actionPerformed(java.awt.event.ActionEvent e) {
447
						rellenarControles();
448
					}
449
				});
450
		}
451

  
452
		return btnDetalles;
453
	}
454

  
455
	/**
456
	 * This method initializes jPanel
457
	 *
458
	 * @return javax.swing.JPanel
459
	 */
460
	private javax.swing.JPanel getJPanel() {
461
		if (jPanel == null) {
462
			jPanel = new javax.swing.JPanel();
463
			jPanel.setLayout(null);
464
			jPanel.setPreferredSize(new java.awt.Dimension(470, 130));
465
			jPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
466
					null, PluginServices.getText(this, "descripcion"),
467
					javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
468
					javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
469
			jPanel.setBounds(2, 67, 477, 197);
470
			jPanel.add(getJLabel1(), null);
471
			jPanel.add(getLblTitle(), null);
472
			jPanel.add(getJScrollPane(), null);
473
		}
474

  
475
		return jPanel;
476
	}
477

  
478
	/**
479
	 * This method initializes jLabel1
480
	 *
481
	 * @return javax.swing.JLabel
482
	 */
483
	private javax.swing.JLabel getJLabel1() {
484
		if (jLabel1 == null) {
485
			jLabel1 = new javax.swing.JLabel();
486
			jLabel1.setText(PluginServices.getText(this, "nombre") + ":");
487
			jLabel1.setBounds(37, 26, 40, 15);
488
		}
489

  
490
		return jLabel1;
491
	}
492

  
493
	/**
494
	 * This method initializes lblTitle
495
	 *
496
	 * @return javax.swing.JLabel
497
	 */
498
	private javax.swing.JLabel getLblTitle() {
499
		if (lblTitle == null) {
500
			lblTitle = new javax.swing.JLabel();
501
			lblTitle.setText("-");
502
			lblTitle.setPreferredSize(new java.awt.Dimension(350, 16));
503
			lblTitle.setBounds(82, 26, 350, 16);
504
		}
505

  
506
		return lblTitle;
507
	}
508

  
509
	/**
510
	 * This method initializes jScrollPane
511
	 *
512
	 * @return javax.swing.JScrollPane
513
	 */
514
	private javax.swing.JScrollPane getJScrollPane() {
515
		if (jScrollPane == null) {
516
			jScrollPane = new javax.swing.JScrollPane();
517
			jScrollPane.setViewportView(getTxtAbstract());
518
			jScrollPane.setPreferredSize(new java.awt.Dimension(450, 60));
519
			jScrollPane.setBounds(10, 47, 450, 137);
520
		}
521

  
522
		return jScrollPane;
523
	}
524

  
525
	/**
526
	 * This method initializes txtAbstract
527
	 *
528
	 * @return javax.swing.JTextArea
529
	 */
530
	private javax.swing.JTextArea getTxtAbstract() {
531
		if (txtAbstract == null) {
532
			txtAbstract = new javax.swing.JTextArea();
533
			txtAbstract.setWrapStyleWord(true);
534
			txtAbstract.setColumns(30);
535
			txtAbstract.setLineWrap(true);
536
		}
537

  
538
		return txtAbstract;
539
	}
540

  
541
	/**
542
	 * This method initializes jScrollPane1
543
	 *
544
	 * @return javax.swing.JScrollPane
545
	 */
546
	private javax.swing.JScrollPane getJScrollPane1() {
547
		if (jScrollPane1 == null) {
548
			jScrollPane1 = new javax.swing.JScrollPane();
549
			jScrollPane1.setViewportView(getTreeLayers1());
550
			jScrollPane1.setPreferredSize(new java.awt.Dimension(205, 75));
551
		}
552

  
553
		return jScrollPane1;
554
	}
555

  
556
	/**
557
	 * This method initializes treeLayers1
558
	 *
559
	 * @return javax.swing.JTree
560
	 */
561
	private javax.swing.JTree getTreeLayers1() {
562
		if (treeLayers1 == null) {
563
			treeLayers1 = new javax.swing.JTree();
564
			treeLayers1.setRootVisible(true);
565
			treeLayers1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
566
					public void valueChanged(
567
						javax.swing.event.TreeSelectionEvent e) {
568
						activarVisualizarBotones();
569
					}
570
				});
571
		}
572

  
573
		return treeLayers1;
574
	}
575

  
576
	/**
577
	 * This method initializes jScrollPane2
578
	 *
579
	 * @return javax.swing.JScrollPane
580
	 */
581
	private javax.swing.JScrollPane getJScrollPane2() {
582
		if (jScrollPane2 == null) {
583
			jScrollPane2 = new javax.swing.JScrollPane();
584
			jScrollPane2.setViewportView(getLstFormats1());
585
			jScrollPane2.setPreferredSize(new java.awt.Dimension(100, 200));
586
			jScrollPane2.setBounds(297, 26, 183, 66);
587
		}
588

  
589
		return jScrollPane2;
590
	}
591

  
592
	/**
593
	 * This method initializes lstFormats1
594
	 *
595
	 * @return javax.swing.JList
596
	 */
597
	private javax.swing.JList getLstFormats1() {
598
		if (lstFormats1 == null) {
599
			lstFormats1 = new javax.swing.JList();
600
			lstFormats1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
601
			lstFormats1.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
602
					public void valueChanged(
603
						javax.swing.event.ListSelectionEvent e) {
604
						activarVisualizarBotones();
605
					}
606
				});
607
		}
608

  
609
		return lstFormats1;
610
	}
611

  
612
	/**
613
	 * This method initializes panelPage1
614
	 *
615
	 * @return javax.swing.JPanel
616
	 */
617
	private javax.swing.JPanel getPanelPage1() {
618
		if (panelPage1 == null) {
619
			panelPage1 = new javax.swing.JPanel();
620
			panelPage1.setLayout(null);
621
			panelPage1.setPreferredSize(new java.awt.Dimension(480, 220));
622
			panelPage1.setVisible(true);
623
			panelPage1.setBounds(15, 5, 480, 262);
624
			panelPage1.add(getJPanel1(), null);
625
			panelPage1.add(getJPanel(), null);
626
		}
627

  
628
		return panelPage1;
629
	}
630

  
631
	/**
632
	 * This method initializes panelPage2
633
	 *
634
	 * @return javax.swing.JPanel
635
	 */
636
	private javax.swing.JPanel getPanelPage2() {
637
		if (panelPage2 == null) {
638
			panelPage2 = new javax.swing.JPanel();
639
			panelPage2.setLayout(null);
640
			panelPage2.setPreferredSize(new java.awt.Dimension(490, 300));
641
			panelPage2.setVisible(false);
642
			panelPage2.setBounds(10, 5, 490, 276);
643
			panelPage2.add(getJPanel2(), null);
644
			panelPage2.add(getJPanel3(), null);
645
			panelPage2.add(getJPanel4(), null);
646
		}
647

  
648
		return panelPage2;
649
	}
650

  
651
	/**
652
	 * This method initializes jScrollPane5
653
	 *
654
	 * @return javax.swing.JScrollPane
655
	 */
656
	private javax.swing.JScrollPane getJScrollPane5() {
657
		if (jScrollPane5 == null) {
658
			jScrollPane5 = new javax.swing.JScrollPane();
659
			jScrollPane5.setViewportView(getLstSelectedLayers());
660
			jScrollPane5.setPreferredSize(new java.awt.Dimension(205, 75));
661
		}
662

  
663
		return jScrollPane5;
664
	}
665

  
666
	/**
667
	 * This method initializes lstSelectedLayers
668
	 *
669
	 * @return javax.swing.JList
670
	 */
671
	private javax.swing.JList getLstSelectedLayers() {
672
		if (lstSelectedLayers == null) {
673
			lstSelectedLayers = new javax.swing.JList();
674
			lstSelectedLayers.setModel(selectedLayersModel);
675
			lstSelectedLayers.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
676
			lstSelectedLayers.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
677
					public void valueChanged(
678
						javax.swing.event.ListSelectionEvent e) {
679
						activarVisualizarBotones();
680
					}
681
				});
682
		}
683

  
684
		return lstSelectedLayers;
685
	}
686

  
687
	/**
688
	 * This method initializes btnAdd
689
	 *
690
	 * @return javax.swing.JButton
691
	 */
692
	private javax.swing.JButton getBtnAdd() {
693
		if (btnAdd == null) {
694
			btnAdd = new javax.swing.JButton();
695
			btnAdd.setPreferredSize(new java.awt.Dimension(23, 23));
696
			btnAdd.setText(">");
697
			btnAdd.setMargin(new java.awt.Insets(2, 0, 2, 0));
698
			btnAdd.setEnabled(false);
699
			btnAdd.addActionListener(new java.awt.event.ActionListener() {
700
					public void actionPerformed(java.awt.event.ActionEvent e) {
701
						addLayer();
702
					}
703
				});
704
		}
705

  
706
		return btnAdd;
707
	}
708

  
709
	/**
710
	 * This method initializes btnDel
711
	 *
712
	 * @return javax.swing.JButton
713
	 */
714
	private javax.swing.JButton getBtnDel() {
715
		if (btnDel == null) {
716
			btnDel = new javax.swing.JButton();
717
			btnDel.setPreferredSize(new java.awt.Dimension(23, 23));
718
			btnDel.setText("<");
719
			btnDel.setMargin(new java.awt.Insets(2, 0, 2, 0));
720
			btnDel.setEnabled(false);
721
			btnDel.addActionListener(new java.awt.event.ActionListener() {
722
					public void actionPerformed(java.awt.event.ActionEvent e) {
723
						delLayer();
724
					}
725
				});
726
		}
727

  
728
		return btnDel;
729
	}
730

  
731
	/**
732
	 * This method initializes jScrollPane6
733
	 *
734
	 * @return javax.swing.JScrollPane
735
	 */
736
	private javax.swing.JScrollPane getJScrollPane6() {
737
		if (jScrollPane6 == null) {
738
			jScrollPane6 = new javax.swing.JScrollPane();
739
			jScrollPane6.setViewportView(getLstSRSs());
740
			jScrollPane6.setPreferredSize(new java.awt.Dimension(250, 200));
741
			jScrollPane6.setBounds(10, 26, 272, 68);
742
		}
743

  
744
		return jScrollPane6;
745
	}
746

  
747
	/**
748
	 * This method initializes lstSRSs
749
	 *
750
	 * @return javax.swing.JList
751
	 */
752
	private javax.swing.JList getLstSRSs() {
753
		if (lstSRSs == null) {
754
			lstSRSs = new javax.swing.JList();
755
			lstSRSs.setModel(new SRSListModel());
756
			lstSRSs.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
757
			lstSRSs.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
758
					public void valueChanged(
759
						javax.swing.event.ListSelectionEvent e) {
760
						activarVisualizarBotones();
761
					}
762
				});
763
		}
764

  
765
		return lstSRSs;
766
	}
767

  
768
	/**
769
	 * This method initializes btnSiguiente
770
	 *
771
	 * @return javax.swing.JButton
772
	 */
773
	private javax.swing.JButton getBtnSiguiente() {
774
		if (btnSiguiente == null) {
775
			btnSiguiente = new javax.swing.JButton();
776
			btnSiguiente.setPreferredSize(new java.awt.Dimension(100, 30));
777
			btnSiguiente.setText(PluginServices.getText(this, "siguiente"));
778
			btnSiguiente.setBounds(205, 282, 100, 21);
779
			btnSiguiente.addActionListener(new java.awt.event.ActionListener() {
780
					public void actionPerformed(java.awt.event.ActionEvent e) {
781
						page++;
782
						getPanelPage1().setVisible(false);
783
						getPanelPage2().setVisible(true);
784
						activarVisualizarBotones();
785
					}
786
				});
787
		}
788

  
789
		return btnSiguiente;
790
	}
791

  
792
	/**
793
	 * This method initializes btnAnterior
794
	 *
795
	 * @return javax.swing.JButton
796
	 */
797
	private javax.swing.JButton getBtnAnterior() {
798
		if (btnAnterior == null) {
799
			btnAnterior = new javax.swing.JButton();
800
			btnAnterior.setText(PluginServices.getText(this, "anterior"));
801
			btnAnterior.setPreferredSize(new java.awt.Dimension(100, 30));
802
			btnAnterior.setBounds(100, 282, 100, 21);
803
			btnAnterior.addActionListener(new java.awt.event.ActionListener() {
804
					public void actionPerformed(java.awt.event.ActionEvent e) {
805
						page--;
806
						getPanelPage1().setVisible(true);
807
						getPanelPage2().setVisible(false);
808
						activarVisualizarBotones();
809
					}
810
				});
811
		}
812

  
813
		return btnAnterior;
814
	}
815

  
816
	/**
817
	 * This method initializes jPanel1
818
	 *
819
	 * @return javax.swing.JPanel
820
	 */
821
	private javax.swing.JPanel getJPanel1() {
822
		if (jPanel1 == null) {
823
			jPanel1 = new javax.swing.JPanel();
824
			jPanel1.add(getTxtHost(), null);
825
			jPanel1.add(getBtnDetalles(), null);
826
			jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
827
					null, PluginServices.getText(this, "servidor"),
828
					javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
829
					javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
830
			jPanel1.setBounds(2, 5, 477, 57);
831
		}
832

  
833
		return jPanel1;
834
	}
835

  
836
	/**
837
	 * This method initializes jPanel2
838
	 *
839
	 * @return javax.swing.JPanel
840
	 */
841
	private javax.swing.JPanel getJPanel2() {
842
		if (jPanel2 == null) {
843
			jPanel2 = new javax.swing.JPanel();
844
			jPanel2.add(getJScrollPane1(), null);
845
			jPanel2.add(getBtnDel(), null);
846
			jPanel2.add(getBtnAdd(), null);
847
			jPanel2.add(getJScrollPane5(), null);
848
			jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(
849
					null, PluginServices.getText(this, "seleccionar_capas"),
850
					javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
851
					javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
852
			jPanel2.setBounds(-1, 5, 493, 112);
853
		}
854

  
855
		return jPanel2;
856
	}
857

  
858
	/**
859
	 * This method initializes jPanel3
860
	 *
861
	 * @return javax.swing.JPanel
862
	 */
863
	private javax.swing.JPanel getJPanel3() {
864
		if (jPanel3 == null) {
865
			jPanel3 = new javax.swing.JPanel();
866
			jPanel3.setLayout(null);
867
			jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(
868
					null, PluginServices.getText(this, "seleccionar_formato"),
869
					javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
870
					javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
871
			jPanel3.setPreferredSize(new java.awt.Dimension(493, 300));
872
			jPanel3.setLocation(-1, 122);
873
			jPanel3.setSize(493, 101);
874
			jPanel3.add(getJScrollPane6(), null);
875
			jPanel3.add(getJScrollPane2(), null);
876
		}
877

  
878
		return jPanel3;
879
	}
880

  
881
	/**
882
	 * DOCUMENT ME!
883
	 *
884
	 * @param listener
885
	 */
886
	public void addWizardListener(WizardListener listener) {
887
		listenerSupport.addWizardListener(listener);
888
	}
889

  
890
	/**
891
	 * DOCUMENT ME!
892
	 *
893
	 * @param listener
894
	 */
895
	public void removeWizardListener(WizardListener listener) {
896
		listenerSupport.removeWizardListener(listener);
897
	}
898

  
899
	/**
900
	 * DOCUMENT ME!
901
	 *
902
	 * @return
903
	 */
904
	public WizardDataSource getDataSource() {
905
		return dataSource;
906
	}
907

  
908
	/**
909
	 * DOCUMENT ME!
910
	 *
911
	 * @param source
912
	 */
913
	public void setDataSource(WizardDataSource source) {
914
		dataSource = source;
915
	}
916

  
917
	/**
918
	 * DOCUMENT ME!
919
	 *
920
	 * @return DOCUMENT ME!
921
	 */
922
	public String getLayersQuery() {
923
		LayerInfo[] layers = ((LayerListModel) lstSelectedLayers.getModel()).getElements();
924

  
925
		//Nombre separado por comas de las capas
926
		String layersQuery = layers[0].name;
927

  
928
		for (int i = 1; i < layers.length; i++) {
929
			layersQuery += ("," + layers[i].name);
930
		}
931

  
932
		return layersQuery;
933
	}
934

  
935
	/**
936
	 * DOCUMENT ME!
937
	 *
938
	 * @return DOCUMENT ME!
939
	 */
940
	public String getQueryableLayerQuery() {
941
		LayerInfo[] layers = ((LayerListModel) lstSelectedLayers.getModel()).getElements();
942

  
943
		//Nombre separado por comas de las capas
944
		String layersQuery = "";
945
		int i;
946

  
947
		for (i = 0; i < layers.length; i++) {
948
			if (layers[i].queryable) {
949
				layersQuery = layers[i].name;
950

  
951
				break;
952
			}
953
		}
954

  
955
		for (int j = i + 1; j < layers.length; j++) {
956
			if (layers[j].queryable) {
957
				layersQuery += ("," + layers[j].name);
958
			}
959
		}
960

  
961
		return layersQuery;
962
	}
963

  
964
	/**
965
	 * DOCUMENT ME!
966
	 *
967
	 * @return DOCUMENT ME!
968
	 */
969
	public String getSRS() {
970
		return (String) lstSRSs.getSelectedValue();
971
	}
972

  
973
	/**
974
	 * DOCUMENT ME!
975
	 *
976
	 * @return DOCUMENT ME!
977
	 */
978
	public String getFormat() {
979
		return (String) lstFormats1.getSelectedValue();
980
	}
981

  
982
	/**
983
	 * DOCUMENT ME!
984
	 *
985
	 * @return DOCUMENT ME!
986
	 */
987
	public TreePath[] getSelectedLayers() {
988
		return getTreeLayers1().getSelectionPaths();
989
	}
990

  
991
	/**
992
	 * DOCUMENT ME!
993
	 *
994
	 * @return DOCUMENT ME!
995
	 */
996
	public Rectangle2D getLayersRectangle() {
997
		TreePath[] layers = getSelectedLayers();
998

  
999
		//Boundingbox de todas las capas
1000
		ArrayList rectangulos = new ArrayList();
1001

  
1002
		Rectangle2D rect;
1003

  
1004
		for (int i = 0; i < layers.length; i++) {
1005
			String[] rutaCapa = new String[layers[i].getPathCount()];
1006

  
1007
			for (int j = 0; j < layers[i].getPathCount(); j++) {
1008
				rutaCapa[j] = ((LayerInfo) layers[i].getPathComponent(j)).text;
1009
			}
1010

  
1011
			rect = dataSource.getBoundingBox(rutaCapa, getSRS());
1012

  
1013
			if (rect != null) {
1014
				rectangulos.add(rect);
1015
			}
1016
		}
1017

  
1018
		rect = getRectangle((Rectangle2D.Double[]) rectangulos.toArray(
1019
					new Rectangle2D.Double[0]));
1020

  
1021
		return rect;
1022
	}
1023

  
1024
	/**
1025
	 * Obtiene el rect?ngulo que contiene a todos los otros
1026
	 *
1027
	 * @param rects rectangulos
1028
	 *
1029
	 * @return Rectangulo que contiene a todos los demas
1030
	 */
1031
	public static Rectangle2D getRectangle(Rectangle2D[] rects) {
1032
		Rectangle2D ret = rects[0];
1033

  
1034
		for (int i = 1; i < rects.length; i++) {
1035
			ret.add(rects[i]);
1036
		}
1037

  
1038
		return ret;
1039
	}
1040

  
1041
	/**
1042
	 * Devuelve el host que est? escrito en el cuadro de texto del host o null
1043
	 * en caso de que no haya nada escrito o est? mal escrito
1044
	 *
1045
	 * @return URL del host
1046
	 */
1047
	public URL getHost() {
1048
		try {
1049
			return new URL(cmbHost.getModel().getSelectedItem().toString());
1050
		} catch (MalformedURLException e) {
1051
			return null;
1052
		}
1053
	}
1054

  
1055
	/**
1056
	 * DOCUMENT ME!
1057
	 *
1058
	 * @return Nombre de la capa que aparece en el TOC.
1059
	 */
1060
	public String getLayerName() {
1061
		return jTxtNomCapa.getText();
1062
	}
1063

  
1064
	/**
1065
	 * This method initializes jPanel4
1066
	 *
1067
	 * @return javax.swing.JPanel
1068
	 */
1069
	private JPanel getJPanel4() {
1070
		if (jPanel4 == null) {
1071
			jPanel4 = new JPanel();
1072
			jPanel4.setLayout(null);
1073
			jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(
1074
					null, PluginServices.getText(this, "nombre_capa"),
1075
					javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
1076
					javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
1077
			jPanel4.setBounds(-1, 223, 493, 48);
1078
			jPanel4.add(getJTxtNomCapa(), null);
1079
		}
1080

  
1081
		return jPanel4;
1082
	}
1083

  
1084
	/**
1085
	 * This method initializes jTextField
1086
	 *
1087
	 * @return javax.swing.JTextField
1088
	 */
1089
	private JTextField getJTxtNomCapa() {
1090
		if (jTxtNomCapa == null) {
1091
			jTxtNomCapa = new JTextField();
1092
			jTxtNomCapa.setBounds(10, 19, 474, 20);
1093
			jTxtNomCapa.setText(PluginServices.getText(this, "capaWMS"));
1094
		}
1095

  
1096
		return jTxtNomCapa;
1097
	}
1098

  
1099
	/* (non-Javadoc)
1100
	 * @see com.iver.cit.gvsig.gui.WizardPanel#initWizard()
1101
	 */
1102
	public void initWizard() {
1103
		setDataSource(new WMSDataSourceAdapter()); 
1104
	}
1105

  
1106
	/* (non-Javadoc)
1107
	 * @see com.iver.cit.gvsig.gui.WizardPanel#execute()
1108
	 */
1109
	public void execute() {
1110
	}
1111

  
1112
	/* (non-Javadoc)
1113
	 * @see com.iver.cit.gvsig.gui.WizardPanel#getLayer()
1114
	 */
1115
	public FLayer getLayer() {
1116
		WMSWizard wms = this;
1117
		return LayerFactory.createLayer(wms.getLayerName(),
1118
				wms.getLayersRectangle(), wms.getHost(),
1119
				wms.getFormat(), wms.getLayersQuery(),
1120
				wms.getQueryableLayerQuery(), wms.getSRS());
1121
	}
1122
}
1123

  
1124
//  @jve:decl-index=0:visual-constraint="10,10"
1125
//  @jve:visual-info  decl-index=0 visual-constraint="16,10"
1126
//  @jve:visual-info  decl-index=0 visual-constraint="10,10"
1127
//  @jve:visual-info  decl-index=0 visual-constraint="10,10"
1128
//	@jve:visual-info  decl-index=0 visual-constraint="10,10"
0 1129

  
trunk/extensions/extWCS/src-gvsig/com/iver/cit/gvsig/gui/WizardPanel.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41
package com.iver.cit.gvsig.gui;
42

  
43
import javax.swing.JPanel;
44

  
45
import com.iver.cit.gvsig.fmap.layers.FLayer;
46
import com.iver.cit.gvsig.gui.wms.WizardListener;
47
import com.iver.cit.gvsig.gui.wms.WizardListenerSupport;
48

  
49

  
50
public abstract class WizardPanel extends JPanel{
51
	private String tabName = "TabName";
52
	private WizardListenerSupport listenerSupport = new WizardListenerSupport();
53

  
54
	public void addWizardListener(WizardListener listener) {
55
		listenerSupport.addWizardListener(listener);
56
	}
57
	public void callError(Exception descripcion) {
58
		listenerSupport.callError(descripcion);
59
	}
60
	public void removeWizardListener(WizardListener listener) {
61
		listenerSupport.removeWizardListener(listener);
62
	}
63
	public void callStateChanged(boolean finishable) {
64
		listenerSupport.callStateChanged(finishable);
65
	}
66
	protected void setTabName(String name) { tabName = name; }
67
	public String getTabName() { return tabName; }
68
	abstract public void initWizard();
69
	abstract public void execute();
70
	abstract public FLayer getLayer();
71
}
0 72

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff