Revision 11704 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/legend/gui/LegendManager.java
LegendManager.java | ||
---|---|---|
122 | 122 |
add(getSplitPane(), BorderLayout.CENTER); |
123 | 123 |
setSize(500, 360); |
124 | 124 |
treeModel = new DefaultTreeModel(root); |
125 |
fillDialog(); |
|
126 | 125 |
} |
127 | 126 |
|
128 | 127 |
private JSplitPane getSplitPane() { |
... | ... | |
309 | 308 |
ILegendPanel page; |
310 | 309 |
try { |
311 | 310 |
page = (ILegendPanel) pageClass.newInstance(); |
312 |
pages.put(page.getClass(), page); |
|
313 |
if (dirtyTree) { |
|
314 |
// rebuild page tree |
|
315 |
dirtyTree = false; |
|
311 |
if (page.isSuitableFor(layer)) { |
|
312 |
// this legend can be applied to this layer |
|
313 |
pages.put(page.getClass(), page); |
|
316 | 314 |
|
317 |
ArrayList legList = new ArrayList(pages.values()); |
|
318 |
ArrayList alreadyAdded = new ArrayList(); |
|
319 |
DefaultTreeModel model = new DefaultTreeModel(root); |
|
320 |
while (legList.size()>0) { |
|
321 |
ILegendPanel legend = (ILegendPanel) legList.get(0); |
|
322 |
Class parent = legend.getParentClass(); |
|
323 |
while (parent != null && |
|
324 |
!alreadyAdded.contains(pages.get(parent))) { |
|
325 |
legend = (ILegendPanel) pages.get(parent); |
|
315 |
if (dirtyTree) { |
|
316 |
// rebuild page tree |
|
317 |
dirtyTree = false; |
|
318 |
|
|
319 |
ArrayList legList = new ArrayList(pages.values()); |
|
320 |
ArrayList alreadyAdded = new ArrayList(); |
|
321 |
DefaultTreeModel model = new DefaultTreeModel(root); |
|
322 |
while (legList.size()>0) { |
|
323 |
ILegendPanel legend = (ILegendPanel) legList.get(0); |
|
324 |
Class parent = legend.getParentClass(); |
|
325 |
while (parent != null && |
|
326 |
!alreadyAdded.contains(pages.get(parent))) { |
|
327 |
legend = (ILegendPanel) pages.get(parent); |
|
328 |
} |
|
329 |
doInsertNode(model, legend); |
|
330 |
legList.remove(legend); |
|
331 |
alreadyAdded.add(legend); |
|
326 | 332 |
} |
327 |
doInsertNode(model, legend); |
|
328 |
legList.remove(legend); |
|
329 |
alreadyAdded.add(legend); |
|
333 |
treeModel = model; |
|
334 |
jTreeLegends.setModel(model); |
|
330 | 335 |
} |
331 |
treeModel = model;
|
|
332 |
jTreeLegends.setModel(model); |
|
336 |
doInsertNode(treeModel, page);
|
|
337 |
|
|
333 | 338 |
} |
339 |
getJTreeLegends().setModel(treeModel); |
|
334 | 340 |
|
335 |
doInsertNode(treeModel, page); |
|
336 |
getJTreeLegends().setModel(treeModel); |
|
337 | 341 |
} catch (InstantiationException e) { |
338 | 342 |
NotificationManager.addError("Trying to instantiate an interface" + |
339 | 343 |
" or abstract class + "+pageClass.getName(), e); |
... | ... | |
580 | 584 |
IClassifiedVectorialLegend cl = (IClassifiedVectorialLegend) legend; |
581 | 585 |
|
582 | 586 |
if (aux2 instanceof AlphanumericData) { |
583 |
DataSource rs; |
|
584 |
rs = ((AlphanumericData) aux2).getRecordset(); |
|
587 |
// DataSource rs;
|
|
588 |
// rs = ((AlphanumericData) aux2).getRecordset();
|
|
585 | 589 |
if (cl.getValues().length==0) { |
586 | 590 |
JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),PluginServices.getText(this,"no_es_posible_aplicar_leyenda_vacia")); |
587 | 591 |
return; |
588 | 592 |
} |
589 |
int idField = rs.getFieldIndexByName(cl.getFieldName());
|
|
593 |
// int idField = rs.getFieldIndexByName(cl.getFieldNames());
|
|
590 | 594 |
// if (idField != -1) { |
591 | 595 |
//TODO: Aqu? deber?amos comprobar si el tipo de campo |
592 | 596 |
// es el tipo de campo esperado. |
... | ... | |
601 | 605 |
} |
602 | 606 |
else if (legend instanceof SingleSymbolLegend) |
603 | 607 |
aux2.setLegend((IVectorialLegend) legend); |
604 |
} catch (ReadDriverException e) { |
|
605 |
NotificationManager.addError(PluginServices.getText(this, "driver_exception")+":" |
|
606 |
+e.getMessage(), e); |
|
608 |
// } catch (ReadDriverException e) {
|
|
609 |
// NotificationManager.addError(PluginServices.getText(this, "driver_exception")+":"
|
|
610 |
// +e.getMessage(), e);
|
|
607 | 611 |
} catch (LegendLayerException e) { |
608 | 612 |
NotificationManager.addError(PluginServices.getText(this, "legend_exception"), e); |
609 | 613 |
} |
... | ... | |
614 | 618 |
public void setModel(FLayer layer) { |
615 | 619 |
this.layer = layer; |
616 | 620 |
this.legend = ((Classifiable) layer).getLegend(); |
621 |
fillDialog(); |
|
617 | 622 |
Enumeration en = pages.keys(); |
618 | 623 |
while (en.hasMoreElements()) { |
619 | 624 |
ILegendPanel page = (ILegendPanel) pages.get(en.nextElement()); |
Also available in: Unified diff