Revision 11704 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/legend/gui/LegendManager.java

View differences:

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