Revision 23903 trunk/extensions/extSymbology/src/org/gvsig/symbology/gui/layerproperties/FeatureDependent.java
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