Revision 23903 trunk/extensions/extSymbology/src/org/gvsig/symbology/gui/layerproperties/FeatureDependent.java

View differences:

FeatureDependent.java
43 43
import java.awt.BorderLayout;
44 44
import java.awt.Component;
45 45
import java.awt.Dimension;
46
import java.awt.List;
47 46
import java.awt.event.ActionEvent;
48 47
import java.awt.event.ActionListener;
49 48
import java.awt.event.MouseAdapter;
......
59 58
import javax.swing.JScrollPane;
60 59
import javax.swing.JTable;
61 60
import javax.swing.ListSelectionModel;
61
import javax.swing.event.TableModelEvent;
62
import javax.swing.event.TableModelListener;
62 63
import javax.swing.table.DefaultTableModel;
63 64
import javax.swing.table.TableCellEditor;
64 65
import javax.swing.table.TableCellRenderer;
......
188 189
			}
189 190
		});
190 191

  
192
		tblClasses.getModel().addTableModelListener(new TableModelListener() {
193

  
194
			public void tableChanged(TableModelEvent e) {
195
				if(e.getColumn() == VISIBLE_FIELD_INDEX){
196
					System.err.println("ahora toca cambiar la visibilidad");
197
					LabelClass oldLc = (LabelClass) tblClasses.getValueAt(e.getFirstRow(), PREVIEW_FIELD_INDEX);
198
					oldLc.setVisible(Boolean.valueOf(tblClasses.getValueAt(e.getFirstRow(), VISIBLE_FIELD_INDEX).toString()));
199
				}
200
			}
201

  
202
		});
203

  
191 204
		TableColumnModel cm = tblClasses.getColumnModel();
192 205

  
193 206
		tblClasses.getColumnModel().getColumn(PREVIEW_FIELD_INDEX).setCellRenderer(new TableCellRenderer() {
......
212 225
				if (expr == null)
213 226
					expr = LabelExpressionParser.tokenFor(LabelExpressionParser.EOEXPR);
214 227

  
215
				expr = expr.replaceAll(LabelExpressionParser.tokenFor(LabelExpressionParser.EOFIELD), " | ");
228
//				expr = expr.replaceAll(LabelExpressionParser.tokenFor(LabelExpressionParser.EOFIELD), " | ");
216 229
				expr = expr.substring(0, expr.length()-1);
217 230
				return new JLabel("<html><p>"+expr+"</p></html>", JLabel.CENTER);
218 231
			}
219 232
		});
220 233

  
221 234
		// the editors
235

  
222 236
		for (int i = 0; i < tblClasses.getColumnModel().getColumnCount(); i++) {
223 237
			if (i!= VISIBLE_FIELD_INDEX) {
224 238
				tblClasses.getColumnModel().getColumn(i).setCellEditor(new LabelClassCellEditor());
......
240 254
		public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
241 255
			if (openEditor) {
242 256
				LabelClass oldLc = (LabelClass) tblClasses.getValueAt(row, PREVIEW_FIELD_INDEX);
257
				oldLc.setVisible(Boolean.valueOf(tblClasses.getValueAt(row, VISIBLE_FIELD_INDEX).toString()));
243 258
				LabelClassProperties lcProp = new LabelClassProperties(fieldNames, fieldTypes);
244 259
				oldLc.setTexts(new String[] {oldLc.getName()});
245 260
				lcProp.setLabelClass(oldLc);
......
253 268
				if (!(oldLc.getName().equals(newLc.getName())))
254 269
					if(!checSameLablClassName(m,newLc.getName())){
255 270

  
256
						m.setValueAt(newLc.getLabelExpression(), row, LABEL_EXPRESSION_FIELD_INDEX);
271
						m.setValueAt(newLc.getStringLabelExpression(), row, LABEL_EXPRESSION_FIELD_INDEX);
257 272
						m.setValueAt(newLc.getName(), row, NAME_FIELD_INDEX);
258 273
						m.setValueAt(newLc, row, PREVIEW_FIELD_INDEX);
259 274
						m.setValueAt(newLc.getSQLQuery(), row, FILTER_FIELD_INDEX);
......
266 281
						changeDone = true;
267 282
					}
268 283
				if (!changeDone){
269
					m.setValueAt(newLc.getLabelExpression(), row, LABEL_EXPRESSION_FIELD_INDEX);
284
					m.setValueAt(newLc.getStringLabelExpression(), row, LABEL_EXPRESSION_FIELD_INDEX);
270 285
					m.setValueAt(newLc.getName(), row, NAME_FIELD_INDEX);
271 286
					m.setValueAt(newLc, row, PREVIEW_FIELD_INDEX);
272 287
					m.setValueAt(newLc.getSQLQuery(), row, FILTER_FIELD_INDEX);
......
275 290
					changeDone = true;
276 291
				}
277 292
			}
293

  
294
			method.clearAllClasses();
295
			LabelClass[] classes = ((LabelClassTableModel)tblClasses.getModel()).toLabelClassArray();
296
			for (int i = 0; i < classes.length; i++) {
297
				method.addLabelClass(classes[i]);
298
			}
299

  
278 300
			openEditor = false;
279 301
			return null;
280 302
		}
......
297 319

  
298 320
	private class LabelClassTableModel extends DefaultTableModel {
299 321
		private static final long serialVersionUID = -9152998982339430209L;
322
		Object[][] values;
300 323

  
301 324
		private String[] classesTableFieldNames = new String[] {
302 325
				PluginServices.getText(this, "name"),
......
311 334
			super();
312 335
			LabelClass[] labelClasses = method.getLabelClasses();
313 336

  
314
			Object[][] values = new Object[labelClasses.length][classesTableFieldNames.length];
337
			values = new Object[labelClasses.length][classesTableFieldNames.length];
315 338
			for (int i = 0; i < values.length; i++) {
316 339
				values[i][PREVIEW_FIELD_INDEX] = labelClasses[i];
317 340
				values[i][NAME_FIELD_INDEX] = labelClasses[i].getName();
318 341
				values[i][FILTER_FIELD_INDEX] = labelClasses[i].getSQLQuery();
319
				values[i][LABEL_EXPRESSION_FIELD_INDEX] = labelClasses[i].getLabelExpression();
342
				values[i][LABEL_EXPRESSION_FIELD_INDEX] = labelClasses[i].getStringLabelExpression();
320 343
				values[i][VISIBLE_FIELD_INDEX] = labelClasses[i].isVisible();
321 344
			}
322 345
			setDataVector(values, classesTableFieldNames);
......
355 378
					setValueAt(classes[i],i,PREVIEW_FIELD_INDEX);
356 379
					setValueAt(classes[i].getName(),i,NAME_FIELD_INDEX);
357 380
					setValueAt(classes[i].getSQLQuery(),i,FILTER_FIELD_INDEX);
358
					setValueAt(classes[i].getLabelExpression(),i,LABEL_EXPRESSION_FIELD_INDEX);
381
					setValueAt(classes[i].getStringLabelExpression(),i,LABEL_EXPRESSION_FIELD_INDEX);
359 382
					setValueAt(classes[i].isVisible(),i,VISIBLE_FIELD_INDEX);
360 383
			}
361 384

  
362 385
		}
386

  
363 387
	}
364 388

  
365 389
	@Override
......
425 449
				String.valueOf(count);
426 450
			}
427 451
			newClass.setName(name);
428
			mod.addRow(new Object[] {newClass.getName(), newClass, newClass.getSQLQuery(), newClass.getLabelExpression(), newClass.isVisible()});
452
			mod.addRow(new Object[] {newClass.getName(), newClass, newClass.getSQLQuery(), newClass.getStringLabelExpression(), newClass.isVisible()});
429 453
		} else if (c.equals(btnDelClass)) {
430 454
			if (mod.getRowCount()>=1) {
431 455
				int[] sRows = tblClasses.getSelectedRows();
......
470 494
			}
471 495
		}
472 496

  
497

  
473 498
		mod.fireTableDataChanged();
474 499
		method.clearAllClasses();
475 500
		LabelClass[] classes = ((LabelClassTableModel)tblClasses.getModel()).toLabelClassArray();

Also available in: Unified diff