Revision 36220 branches/v2_0_0_prep/libraries/org.gvsig.newlayer/org.gvsig.newlayer.lib/org.gvsig.newlayer.lib.impl/src/main/java/org/gvsig/newlayer/impl/FeatureTypePanel.java

View differences:

FeatureTypePanel.java
3 3
import java.awt.BorderLayout;
4 4
import java.util.ArrayList;
5 5
import java.util.Iterator;
6
import java.util.List;
6 7

  
7 8
import javax.swing.DefaultCellEditor;
8 9
import javax.swing.JButton;
......
18 19
import javax.swing.table.TableColumn;
19 20

  
20 21
import org.gvsig.fmap.dal.DataServerExplorer;
21
import org.gvsig.fmap.dal.exception.DataException;
22 22
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
23 23
import org.gvsig.fmap.dal.feature.EditableFeatureType;
24 24
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
25
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
26 25
import org.gvsig.gui.beans.wizard.panel.NotContinueWizardException;
27 26
import org.gvsig.gui.beans.wizard.panel.OptionPanel;
28 27
import org.gvsig.i18n.Messages;
......
47 46
	private JButton jButtonAddField = null;
48 47
	private JButton jButtonDeleteField = null;
49 48
	protected int MAX_FIELD_LENGTH = 254;
49
	private List removedFields;
50 50

  
51 51
	private DataServerExplorer explorer = null;
52 52

  
53 53
	public FeatureTypePanel(NewLayerWizard wizard){
54 54
		this.wizard = wizard;
55
		removedFields = new ArrayList<String>();
55 56
	}
56 57

  
57 58
    private void initializeComponents() {
......
91 92
			DefaultTableModel tm = (DefaultTableModel) jTable.getModel();
92 93
			tm.addColumn(Messages.getText("field"));
93 94

  
94
			// TableColumn fieldTypeColumn = new TableColumn(1);
95
			// fieldTypeColumn.setHeaderValue("Type");
96
			// jTable.addColumn(fieldTypeColumn);
97 95
			tm.addColumn(Messages.getText("type"));
98
			// MIRAR EL C?DIGO DEL BOT?N DE A?ADIR CAMPO PARA VER EL CellEditor con comboBox
99

  
100
			/* TableColumn fieldLengthColumn = new TableColumn(2);
101
			fieldLengthColumn.setHeaderValue("Length");
102
			// fieldLengthColumn.setCellRenderer(new DefaultTableCellRenderer());
103
			jTable.addColumn(fieldLengthColumn); */
104 96
			tm.addColumn(Messages.getText("length"));
105 97

  
106 98
//			Ask to be notified of selection changes.
......
116 108
			            //no rows are selected
117 109
			        	jButtonDeleteField.setEnabled(false);
118 110
			        } else {
119
			            // int selectedRow = lsm.getMinSelectionIndex();
120
			            //selectedRow is selected
121 111
			        	jButtonDeleteField.setEnabled(true);
122 112
			        }
123 113
			    }
......
125 115
			jTable.getColumn(Messages.getText("field")).setWidth(180);
126 116

  
127 117
			//Rellenado de la tabla
128
			EditableFeatureType featureType = this.wizard.getService().getProvider().getFeatureType();
118
			EditableFeatureType featureType = this.wizard.getService().getFeatureType();
129 119
			if( featureType != null ){
130 120
				int row = 0;
131 121
				int column = 0;
......
240 230
					int[] selecteds = jTable.getSelectedRows();
241 231
					DefaultTableModel tm = (DefaultTableModel) jTable.getModel();
242 232

  
243
					for (int i=selecteds.length-1; i >=0; i--)
233
					for (int i=selecteds.length-1; i >=0; i--){
234
						removedFields.add((String) tm.getValueAt(i,0));
244 235
						tm.removeRow(selecteds[i]);
236
					}
245 237
				}
246 238
			});
247 239
		}
......
255 247
	}
256 248

  
257 249
	public void nextPanel() throws NotContinueWizardException {
250
		fillFeatureType();
251
	}
252
	
253
	private void fillFeatureType() {
258 254
		/* 
259
		 * TODO Coge los datos del formulario y los guarda en
255
		 * Coge los datos del formulario y los guarda en
260 256
		 * this.service.getFeatureType()
261 257
		 */
258
		EditableFeatureType featureType = this.wizard.getService().getFeatureType();
262 259
		
260
		for (Iterator iterator = removedFields.iterator(); iterator.hasNext();) {
261
			String name = (String) iterator.next();
262
			featureType.remove(name);
263
		}
264
		removedFields.clear();
263 265
		
264
	}
265

  
266
	public void lastPanel() {
267
		// TODO Auto-generated method stub
268
		
269
	}
270

  
271
	public void updatePanel() {
272
		initializeComponents();
273
		
274
	}
275

  
276
	public JPanel getJPanel() {
277
		return this;
278
	}
279

  
280
	/**
281
	 * Convierte lo que hay en la tabla en una definici?n de campos
282
	 * adecuada para crear un LayerDefinition
283
	 * @return
284
	 * @throws DataException 
285
	 */
286
	private EditableFeatureType getFeatureType() throws DataException {
287 266
		DefaultTableModel tm = (DefaultTableModel) jTable.getModel();
288
		NewFeatureStoreParameters addParameters = (NewFeatureStoreParameters) explorer.getAddParameters("");
289
		EditableFeatureType type = addParameters.getDefaultFeatureType();
290

  
291 267
		for (int i=0; i < tm.getRowCount(); i++)
292 268
		{
293 269
			int dataType=0;
......
308 284
			// TODO: HACERLO BIEN
309 285
			if (strType.equals("Double"))
310 286
				fieldLength=5;
311
			EditableFeatureAttributeDescriptor efad1 = type.add((String) tm.getValueAt(i,0), dataType, fieldLength);
287
			//FIXME: Arreglar lo que pasa si en el siguiente panel volvemos hacia atras, y en este volvemos a ir hacia adelante
288
			String fieldName = (String) tm.getValueAt(i,0);
289
			EditableFeatureAttributeDescriptor attrDescriptor = (EditableFeatureAttributeDescriptor) featureType.getAttributeDescriptor(fieldName);
290
			if (attrDescriptor != null) {
291
				featureType.remove(attrDescriptor);
292
			}
293
			EditableFeatureAttributeDescriptor efad1 = featureType.add((String) tm.getValueAt(i,0), dataType, fieldLength);
312 294
		}
295
	}
313 296

  
314
		return type;
297
	public void lastPanel() {
298
		// TODO Auto-generated method stub
299
		logger.info("FeatureTypePanel: lastPanel");
315 300
	}
316 301

  
302
	public void updatePanel() {
303
		initializeComponents();
304
		
305
	}
306

  
307
	public JPanel getJPanel() {
308
		return this;
309
	}
310

  
317 311
}

Also available in: Unified diff