Revision 4911 trunk/extensions/extWFS2/src/com/iver/cit/gvsig/gui/panels/WFSSelectFeaturePanel.java

View differences:

WFSSelectFeaturePanel.java
1 1
package com.iver.cit.gvsig.gui.panels;
2 2

  
3
import java.awt.event.MouseAdapter;
4
import java.awt.event.MouseEvent;
5

  
6
import javax.swing.ImageIcon;
7
import javax.swing.JButton;
8 3
import javax.swing.JCheckBox;
4
import javax.swing.JLabel;
9 5
import javax.swing.JPanel;
10 6
import javax.swing.JScrollPane;
11 7
import javax.swing.JTextField;
12 8

  
13
import org.gvsig.gui.beans.controls.dnd.JDnDListModel;
14

  
15 9
import com.iver.andami.PluginServices;
16
import com.iver.cit.gvsig.gui.wizards.FormatListModel;
17
import com.iver.cit.gvsig.gui.wizards.LayerTreeModel;
10
import com.iver.cit.gvsig.fmap.layers.WFSLayerNode;
18 11
import com.iver.cit.gvsig.gui.wizards.WFSWizardData;
19 12

  
20 13
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
......
61 54
 *
62 55
 * $Id$
63 56
 * $Log$
64
 * Revision 1.1  2006-04-19 12:50:16  jorpiell
65
 * Primer commit de la aplicaci?n. Se puede hacer un getCapabilities y ver el mensaje de vienvenida del servidor
57
 * Revision 1.2  2006-04-20 16:38:24  jorpiell
58
 * Ahora mismo ya se puede hacer un getCapabilities y un getDescribeType de la capa seleccionada para ver los atributos a dibujar. Queda implementar el panel de opciones y hacer el getFeature().
66 59
 *
67 60
 *
68 61
 */
69 62
/**
70 63
 * @author Jorge Piera Llodr? (piera_jor@gva.es)
71 64
 */
72
public class WFSSelectFeaturePanel extends JPanel{
73

  
74
	private JPanel layerNamePanel = null;
75
	private JPanel selectionPanel = null;
76
	private JTextField jTxtNomCapa = null;
65
public class WFSSelectFeaturePanel extends JPanel {
66
	private JPanel coveragesListPanel = null;
67
	private JScrollPane jScrollPane = null;
68
	private LayerList lstFeatures = null;
69
	private JTextField txtName = null;
70
	private JLabel jLabel = null;
77 71
	private JCheckBox chkExtendedNames = null; 
78
	private JScrollPane jScrollPane1 = null;
79
	private LayerTree treeLayers = null;
80
	private JButton btnDel = null;
81
	private JButton btnAdd = null; 
82
	private JButton btnUp = null; 
83
	private JScrollPane jScrollPane5 = null;
84
	private JButton btnDown = null;
85
	private JCheckBox chkDisagregate = null;
86
	private LayerList lstSelectedLayers = null;
87 72
	private WFSWizardData data = null;
73
	private WFSParamsPanel parent = null;
88 74

  
89 75
	/**
90 76
	 * This method initializes 
91 77
	 * 
92 78
	 */
93
	public WFSSelectFeaturePanel() {
79
	public WFSSelectFeaturePanel(WFSParamsPanel parent) {
94 80
		super();
81
		this.parent = parent;
95 82
		initialize();
96 83
	}
97 84

  
......
100 87
	 * 
101 88
	 */
102 89
	private void initialize() {
90
		jLabel = new JLabel();
103 91
		this.setLayout(null);
104
        this.add(getLayerNamePanel(), null);
105
        this.add(getSelectionPanel(), null);
92
		this.setBounds(10, 5, 481, 427);
93
		jLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
94
		jLabel.setBounds(7, 5, 130, 22);
95
		jLabel.setText(PluginServices.getText(this, "nombre_feature"));
96
		
97
		this.add(getCoveragesListPanel(), null);
98
        this.add(getTxtName(), null);
99
		this.add(jLabel, null);
100
		this.add(getChkExtendedNames(), null);
106 101
			
107 102
	}
108
	
109 103

  
110 104
	/**
111
	 * This method initializes layerNamePanel	
105
	 * This method initializes coveragesListPanel	
112 106
	 * 	
113 107
	 * @return javax.swing.JPanel	
114 108
	 */
115
	private JPanel getLayerNamePanel() {
116
		if (layerNamePanel == null) {
117
			layerNamePanel = new JPanel();
118
			layerNamePanel.setLayout(null);
119
			layerNamePanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
120
						null, PluginServices.getText(this, "layer_name"),
121
						javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
122
						javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
123
			layerNamePanel.setBounds(4, 8, 457, 49);
124
			layerNamePanel.add(getJTxtNomCapa(), null);
125
		
109
	private JPanel getCoveragesListPanel() {
110
		if (coveragesListPanel == null) {
111
			coveragesListPanel = new JPanel();
112
			coveragesListPanel.setLayout(null);
113
			coveragesListPanel.setBounds(7, 33, 460, 328);
114
			coveragesListPanel.add(getJScrollPane(), null);
115
			coveragesListPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
116
					null, PluginServices.getText(this, "select_features"),
117
					javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
118
					javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
126 119
		}
127
		return layerNamePanel;
120
		return coveragesListPanel;
128 121
	}
129 122
	
130 123
	/**
131
	 * This method initializes jTextField
132
	 *
133
	 * @return javax.swing.JTextField
134
	 */
135
	public JTextField getJTxtNomCapa() {
136
		if (jTxtNomCapa == null) {
137
			jTxtNomCapa = new JTextField();
138
			jTxtNomCapa.setBounds(10, 19, 437, 20);
139
			jTxtNomCapa.setText(PluginServices.getText(this, "WFSLayer"));
140
			jTxtNomCapa.addKeyListener(new java.awt.event.KeyAdapter() { 
141
				public void keyTyped(java.awt.event.KeyEvent e) {    
142
//					fireWizardComplete(isCorrectlyConfigured());
124
	 * This method initializes jScrollPane	
125
	 * 	
126
	 * @return javax.swing.JScrollPane	
127
	 */    
128
	private JScrollPane getJScrollPane() {
129
		if (jScrollPane == null) {
130
			jScrollPane = new JScrollPane();
131
			jScrollPane.setBounds(6, 17, 446, 306);
132
			jScrollPane.setViewportView(getLstFeatures());
133
		}
134
		return jScrollPane;
135
	}
136
	
137
	/**
138
	 * This method initializes jList1	
139
	 * 	
140
	 * @return javax.swing.JList	
141
	 */    
142
	public LayerList getLstFeatures() {
143
		if (lstFeatures == null) {
144
			lstFeatures = new LayerList();
145
			lstFeatures.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
146
			lstFeatures.addListSelectionListener(new javax.swing.event.ListSelectionListener() { 
147
				public void valueChanged(javax.swing.event.ListSelectionEvent e) {    
148
					refreshData();
143 149
				}
144 150
			});
145 151
		}
146

  
147
		return jTxtNomCapa;
152
		return lstFeatures;
148 153
	}
149

  
154
	
150 155
	/**
151
	 * This method initializes selectionPanel	
156
	 * This method initializes jTextField	
152 157
	 * 	
153
	 * @return javax.swing.JPanel	
154
	 */
155
	private JPanel getSelectionPanel() {
156
		if (selectionPanel == null) {
157
			selectionPanel = new javax.swing.JPanel();
158
			selectionPanel.setLayout(null);
159
			selectionPanel.setBounds(4, 59, 457, 328);
160
			selectionPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
161
					null, PluginServices.getText(this, "select_layers"),
162
					javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
163
					javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
164
			selectionPanel.add(getChkExtendedNames(), null);
165
			selectionPanel.add(getJScrollPane1(), null);
166
			selectionPanel.add(getBtnDel(), null);
167
			selectionPanel.add(getBtnAdd(), null);
168
			selectionPanel.add(getJScrollPane5(), null);
169
			selectionPanel.add(getBtnUp(), null);
170
			selectionPanel.add(getBtnDown(), null);
171
			selectionPanel.add(getChkDisagregate(), null);
158
	 * @return javax.swing.JTextField	
159
	 */    
160
	public JTextField getTxtName() {
161
		if (txtName == null) {
162
 			txtName = new JTextField();
163
			txtName.setBounds(141, 6, 326, 21);
172 164
		}
173
		return selectionPanel;
165
		return txtName;
174 166
	}
175
	
176 167
	/**
177 168
	 * This method initializes chkExtendedNames	
178 169
	 * 	
......
184 175
			chkExtendedNames.setText(PluginServices.getText(this, "show_layer_names"));
185 176
			chkExtendedNames.addItemListener(new java.awt.event.ItemListener() { 
186 177
				public void itemStateChanged(java.awt.event.ItemEvent e) {
187
//					boolean b = chkExtendedNames.isSelected();
188
//					getTreeLayers().showLayerNames = b;
189
//					getTreeLayers().repaint();
190
//					getLstSelectedLayers().showLayerNames = b;
191
//					getLstSelectedLayers().repaint();
192
//					getStyleTree().showLayerNames = b;
178
					boolean b = chkExtendedNames.isSelected();
179
					getLstFeatures().showLayerNames = b;
180
					getLstFeatures().repaint();
193 181
				}
194 182
			});
195 183
			chkExtendedNames.addActionListener(new java.awt.event.ActionListener() { 
......
197 185
//					fPrefs.putBoolean("show_layer_names", chkExtendedNames.isSelected());
198 186
				}
199 187
			});
200
			chkExtendedNames.setBounds(46, 300, 150, 20);
188
			chkExtendedNames.setBounds(10, 368, 150, 20);
201 189
//			chkExtendedNames.setSelected(fPrefs.getBoolean("show_layer_names", false));
202 190
			
203 191
		}
......
205 193
	}
206 194
	
207 195
	/**
208
	 * This method initializes jScrollPane1
209
	 *
210
	 * @return javax.swing.JScrollPane
196
	 * 
197
	 * @return The selected Feature
211 198
	 */
212
	private JScrollPane getJScrollPane1() {
213
		if (jScrollPane1 == null) {
214
			jScrollPane1 = new javax.swing.JScrollPane();
215
			jScrollPane1.setBounds(11, 22, 430, 123);
216
			jScrollPane1.setViewportView(getTreeLayers());
217
			jScrollPane1.setPreferredSize(new java.awt.Dimension(205, 75));
218
		}
219

  
220
		return jScrollPane1;
199
	public Object getSelectedFeature(){
200
		return getLstFeatures().getSelectedValue();
221 201
	}
222 202
	
223 203
	/**
224
	 * This method initializes treeLayers
225
	 *
226
	 * @return javax.swing.JTree
204
	 * Sets the object that holds the wizard data.
205
	 * 
206
	 * Establece el objeto que contiene los datos del wizard.
207
	 * 
208
	 * @param data
227 209
	 */
228
	private LayerTree getTreeLayers() {
229
		if (treeLayers == null) {
230
			treeLayers = new LayerTree();
231
			treeLayers.setRootVisible(true);
232
			treeLayers.addMouseListener(new java.awt.event.MouseAdapter() { 
233
				public void mouseClicked(java.awt.event.MouseEvent e) {    
234
//					if (e.getClickCount() == 2){
235
//                        addLayer();
236
//                    }
237
				}
238
			});
239
			treeLayers.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
240
					public void valueChanged(
241
						javax.swing.event.TreeSelectionEvent e) {
242
						
243
//                        boolean isGetMapable = false; // pffff, jajaja
244
//                        TreePath[] selecciones = getTreeLayers().getSelectionPaths();
245
//                        if (selecciones!=null) // no entenc perqu� peta ac� i li arriba null a voltes...
246
//                        {
247
//                        	for (int i = 0; i < selecciones.length && !isGetMapable; i++) {
248
//                        		WMSLayerNode layer = ((WMSLayerNode) selecciones[i].getLastPathComponent());
249
//                        		isGetMapable = layer.getChildren().size()==0 || layer.getName()!=null;
250
//                        	}
251
//                        	
252
//                        }
253
//                        getBtnAdd().setEnabled(isGetMapable);
254
//                    	fireWizardComplete(isCorrectlyConfigured());
255
					}
256
				});
257
		}
258

  
259
		return treeLayers;
210
	public void setWizardData(WFSWizardData data) {
211
		this.data = data;
212
		refreshInfo();
260 213
	}
261 214
	
262 215
	/**
263
	 * This method initializes btnDel
216
	 * Refresh the features list
264 217
	 *
265
	 * @return javax.swing.JButton
266 218
	 */
267
	private JButton getBtnDel() {
268
		if (btnDel == null) {
269
			btnDel = new javax.swing.JButton();
270
			//btnDel.setPreferredSize(new java.awt.Dimension(23, 23));
271
			btnDel.setText(PluginServices.getText(this, "remove"));
272
			btnDel.setMargin(new java.awt.Insets(2, 0, 2, 0));
273
			btnDel.setBounds(339, 300, 101, 20);
274
			btnDel.setEnabled(false);
275
			btnDel.addActionListener(new java.awt.event.ActionListener() {
276
					public void actionPerformed(java.awt.event.ActionEvent e) {
277
//						delLayer();
278
					}
279
				});
280
		}
281
		return btnDel;
219
	public void refreshInfo(){
220
		getLstFeatures().addFeatures(data.getFeatures());
282 221
	}
283 222
	
284 223
	/**
285
	 * This method initializes btnAdd
286
	 *
287
	 * @return javax.swing.JButton
224
	 * Refreshes the wizard components data each time a feature
225
	 * is selected. The describeFeatureType operation must be 
226
	 * sent 
288 227
	 */
289
	private JButton getBtnAdd() {
290
		if (btnAdd == null) {
291
			btnAdd = new javax.swing.JButton();
292
			//btnAdd.setPreferredSize(new java.awt.Dimension(23, 23));
293
			btnAdd.setText(PluginServices.getText(this, "add"));
294
			btnAdd.setMargin(new java.awt.Insets(2, 0, 2, 0));
295
			btnAdd.setBounds(236, 300, 101, 20);
296
			btnAdd.setEnabled(false);
297
			btnAdd.addActionListener(new java.awt.event.ActionListener() {
298
					public void actionPerformed(java.awt.event.ActionEvent e) {
299
//						addLayer();
300
					}
301
				});
302
		}
303
		return btnAdd;
228
	public void refreshData(){
229
		WFSLayerNode lyr = (WFSLayerNode)getLstFeatures().getSelectedValue();
230
		getTxtName().setText(lyr.getTitle());
231
		parent.refreshData(lyr);		
304 232
	}
305 233
	
306
	/**
307
	 * This method initializes btnUp	
308
	 * 	
309
	 * @return javax.swing.JButton	
310
	 */    
311
	private JButton getBtnUp() {
312
		if (btnUp == null) {
313
			btnUp = new JButton();
314
			btnUp.setBounds(11, 184, 30, 30);
315
			btnUp.setToolTipText(PluginServices.getText(this, "move_layer_up"));
316
			btnUp.addActionListener(new java.awt.event.ActionListener() { 
317
				public void actionPerformed(java.awt.event.ActionEvent e) {
318
//					LayerList list = getLstSelectedLayers();
319
//					int[] selectedIndices = list.getSelectedIndices();
320
//					int index = list.getSelectedIndex();
321
//					if (selectedIndices != null && selectedIndices.length==1 && index > 0 ) {
322
//						JDnDListModel m = (JDnDListModel) list.getModel();
323
//						m.itemsMoved(index - 1, new int[] {index});
324
//						list.setSelectedIndex(index - 1);
325
//					}
326
				}
327
			});
328
			btnUp.setIcon(new ImageIcon(getClass().getClassLoader().getResource("images/up-arrow.png")));
329
		}
330
		return btnUp;
331
	}
332 234
	
333
	/**
334
	 * This method initializes btnDown	
335
	 * 	
336
	 * @return javax.swing.JButton	
337
	 */    
338
	private JButton getBtnDown() {
339
		if (btnDown == null) {
340
			btnDown = new JButton();
341
			btnDown.setBounds(11, 215, 30, 30);
342
			btnDown.setToolTipText(PluginServices.getText(this, "move_layer_down"));
343
			btnDown.addActionListener(new java.awt.event.ActionListener() { 
344
				public void actionPerformed(java.awt.event.ActionEvent e) {
345
//					LayerList list = getLstSelectedLayers();
346
//					int[] selectedIndices = list.getSelectedIndices();
347
//					int index = list.getSelectedIndex();
348
//					if (selectedIndices != null && selectedIndices.length == 1 && index < getLstSelectedLayers().getModel().getSize()-1) {
349
//						JDnDListModel m = (JDnDListModel) list.getModel();
350
//						m.itemsMoved(index + 1, new int[] {index});
351
//						list.setSelectedIndex( index + 1);
352
//					}
353
				}
354
			});
355
			btnDown.setIcon(new ImageIcon(getClass().getClassLoader().getResource("images/down-arrow.png")));
356
		}
357
		return btnDown;
358
	}
359

  
360 235
	
361
	/**
362
	 * This method initializes jScrollPane5
363
	 *
364
	 * @return javax.swing.JScrollPane
365
	 */
366
	private JScrollPane getJScrollPane5() {
367
		if (jScrollPane5 == null) {
368
			jScrollPane5 = new javax.swing.JScrollPane();
369
			jScrollPane5.setBounds(47, 155, 394, 120);
370
			jScrollPane5.setViewportView(getLstSelectedLayers());
371
			jScrollPane5.setPreferredSize(new java.awt.Dimension(205, 75));
372
		}
373 236

  
374
		return jScrollPane5;
375
	}
376
	
377
	/**
378
	 * This method initializes lstSelectedLayers
379
	 *
380
	 * @return javax.swing.JList
381
	 */
382
	public LayerList getLstSelectedLayers() {
383
		if (lstSelectedLayers == null) {
384
            lstSelectedLayers = new LayerList();
385
			lstSelectedLayers.setModel(new JDnDListModel());
386
			lstSelectedLayers.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
387
			lstSelectedLayers.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
388
			    public void valueChanged(javax.swing.event.ListSelectionEvent e) {
389
//			        fireWizardComplete(isCorrectlyConfigured());
390
			    }
391
			});
392
			lstSelectedLayers.addMouseListener(new MouseAdapter(){
393
				public void mouseReleased(MouseEvent e) {
394
//					refreshData();	
395
				}
396
			});
397
		}
398

  
399
		return lstSelectedLayers;
400
	}
401
	
402
	
403
	/**
404
	 * This method initializes chkDisagregate	
405
	 * 	
406
	 * @return javax.swing.JCheckBox	
407
	 */
408
	private JCheckBox getChkDisagregate() {
409
		if (chkDisagregate == null) {
410
			chkDisagregate = new JCheckBox();
411
			chkDisagregate.setBounds(new java.awt.Rectangle(46,276,247,20));
412
			chkDisagregate.setText(PluginServices.getText(this, "disagregate_layers"));
413
		}
414
		return chkDisagregate;
415
	}
416
	
417
	/**
418
	 * Sets the features list
419
	 * @param data
420
	 */
421
	public void setFeatures(WFSWizardData data) {
422
		this.data = data; 
423
		refreshData();
424
	}
425
	
426
	/**
427
	 * Refresh the features list
428
	 *
429
	 */
430
	private void refreshData(){
431
		((JDnDListModel) getLstSelectedLayers().getModel()).clear();
432
		getLstSelectedLayers().repaint();
433
        
434
//		getLstFormats().setModel(new FormatListModel(this.dataSource.getFormats()));
435
//		getTreeLayers().setModel(new LayerTreeModel(data.getFeatures()));
436
      }
437

  
438
}
237
}  //  @jve:decl-index=0:visual-constraint="10,16"

Also available in: Unified diff