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
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