[Gvsig_desarrolladores] Funcionamiento anómalo durante la edición y etiquetado en gvSIG1.11

David Alda Fernandez de Lezea dalda en ikt.es
Mar Mayo 24 12:14:33 CEST 2011


Hola,

Estoy encontrandome con un comportamiento extraño por parte de gvSIG1.11 a la hora de crear una serie de poligonos en una capa Shape. Mientras tengo la capa en edición, creo un polígono, y después a través de un formulario relleno un par de campos del shape, teniendo el etiquetado por ese campo activado no consigo hacer que se muestre el valor que acabo de añadir a pesar de que en la tabla de atributos si que está. Lo que es curioso que cuando le doy a Stop Editing la capa como que se refresca y si se pinta la etiqueta. Tambien me ocurre lo mismo cuando esa entidad ya tenía ese relleno, si lo modifico puedo ver el cambio de valor de la etiqueta al momento, por lo que parece que sólo ocurre al principio. He probado también a hacerlo todo desde la tabla de atributos con el mismo resultado.

A cotinuación pongo el código con el que intento hacer esto:

FLayer[] layers =view.getMapControl().getMapContext().getLayers().getActives();
				FLyrVect myLyr = (FLyrVect) layers[0];
				
				//FBitSet bitSet = null;
				//SelectableDataSource sds = null;
				
				Value numexp=ValueFactory.createValue(this.txtNumExpediente.getText());
				Value ident=ValueFactory.createValue(this.txtIdentificador.getText());
			    
		    	VectorialLayerEdited vle = (VectorialLayerEdited)CADExtension.getEditionManager().getLayerEdited(myLyr);
				VectorialEditableAdapter vea = vle.getVEA();
			    
	    		FBitSet sel = null;
				try {
					sel = vea.getSelection();
				} catch (ReadDriverException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
					todoOK = false;
				}
	    		vea.startComplexRow();
	        	
	        	for(int i=sel.nextSetBit(0); i>=0; i=sel.nextSetBit(i+1)) { 
	        		IRowEdited edRow = null;
					try {
						edRow = vea.getRow(i);
					} catch (ExpansionFileReadException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (ReadDriverException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
	        		IFeature feat = (IFeature) edRow.getLinkedRow().cloneRow();
	        		Value[] atributos = feat.getAttributes();
	        		
	        		try {
						atributos[
						    myLyr.getRecordset().getFieldIndexByName("NUM_EXP")  
						]=numexp;
						
						atributos[
	  	        		    myLyr.getRecordset().getFieldIndexByName("IDENTIFICA")  
	  	        		]=ident;
					} catch (ReadDriverException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						todoOK = false;
					}
	        		
	        		

	        		feat.setAttributes(atributos);
			        try {
						vea.modifyRow(edRow.getIndex(),feat,myLyr.getName(),EditionEvent.CHANGE_TYPE_MODIFY);
					} catch (ExpansionFileWriteException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						todoOK = false;
					} catch (ExpansionFileReadException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						todoOK = false;
					} catch (ValidateRowException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						todoOK = false;
					} catch (ReadDriverException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						todoOK = false;
					}
	        	}
	        	
	            vea.endComplexRow(myLyr.getName());
	            
	            CADExtension.getCADToolAdapter().refreshEditedLayer();
	            try {
					myLyr.setLegend((IVectorLegend) myLyr.getLegend() );
				} catch (LegendLayerException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					todoOK = false;
				}

Alguien ha experimentado un comportamiento similar??

Gracias. 
 
Un saludo,
 
··················································································

David Alda Fernández de Lezea
Lurralde eta Biodibertsitate Saila / Dpto. de Territorio y Biodiversidad
 
IKT
Granja Modelo s/n · 01192 · Arkaute (Araba)

··················································································
Tlfnos.: 945-00-32-95                         Fax: 945-00.32.90
··················································································
email: dalda en ikt.es                                web: www.ikt.es
··················································································


Más información sobre la lista de distribución gvSIG_desarrolladores