[Gvsig_desarrolladores] Tablas - gvsig

maro1 en alu.um.es maro1 en alu.um.es
Mar Nov 20 20:41:31 CET 2007


Hola buenos día,
Te adjunto el fichero con el código.
También lo pego en el correo por si hubiese problemas con ficheros adjuntos



- código -
package com.iver.cit.gvsig.infoMapa.tools;
import java.awt.Cursor;
import java.awt.geom.Point2D;
import java.io.IOException;
import com.hardcode.gdbms.engine.data.DataSource;
import com.hardcode.gdbms.engine.values.Value;
import com.iver.andami.PluginServices;
import com.iver.cit.gvsig.fmap.DriverException;
import com.iver.cit.gvsig.fmap.MapControl;
import com.iver.cit.gvsig.fmap.core.IRow;
import com.iver.cit.gvsig.fmap.drivers.DriverIOException;
import com.iver.cit.gvsig.fmap.edition.DefaultRowEdited;
import com.iver.cit.gvsig.fmap.edition.EditionEvent;
import com.iver.cit.gvsig.fmap.edition.IEditableSource;
import com.iver.cit.gvsig.fmap.edition.IRowEdited;
import com.iver.cit.gvsig.fmap.edition.VectorialEditableAdapter;
import com.iver.cit.gvsig.fmap.layers.FBitSet;
import com.iver.cit.gvsig.fmap.layers.FLayers;
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
import com.iver.cit.gvsig.fmap.layers.layerOperations.AlphanumericData;
import com.iver.cit.gvsig.fmap.tools.BehaviorException;
import com.iver.cit.gvsig.fmap.tools.Events.PointEvent;
import com.iver.cit.gvsig.fmap.tools.Listeners.PointListener;
import com.iver.cit.gvsig.infoMapa.panels.ProvinciasPanel;
import com.iver.cit.gvsig.project.documents.view.gui.IView;




public class InfoByPointListener implements PointListener{
 private MapControl mapControl = null;




 public InfoByPointListener(MapControl mapControl){
  this.mapControl = mapControl;


 }
 public void point(PointEvent event) throws BehaviorException {
  //LECTURA DE LOS CAMPOS

  IView view = (IView)PluginServices.getMDIManager().getActiveWindow();
  FLayers layers = view.getMapControl().getMapContext().getLayers();
  FLyrVect lyrparcelas = (FLyrVect)layers.getLayer("parcelas.shp");
  Point2D pReal = event.getPoint();
  Point2D mapPoint = mapControl.getViewPort().toMapPoint((int)pReal.getX(), 
(int) pReal.getY());
   double tol = mapControl.getViewPort().toMapDistance(1);


   //Obtenemos los campos de la fila seleccionada dela tabla asignada a la 
capa cuando el usuario hace click sobre la capa


  try {

   FBitSet selection = lyrparcelas.queryByPoint(mapPoint,tol);
   if (!selection.isEmpty()){

    DataSource ds = ((AlphanumericData)lyrparcelas).getRecordset();
    ds.start();
    // PESTAÑA INFO
       int idmunicipio = ds.getFieldIndexByName("MUNICIPIO");
       int idparcela = ds.getFieldIndexByName("PARCELA");
       int idpoligono = ds.getFieldIndexByName("POLIGONO");
       int idrecinto = ds.getFieldIndexByName("RECINTO");
       int idfvalidacion = ds.getFieldIndexByName("fvalidaci");
       int idarea = ds.getFieldIndexByName("Shape_Area");

       //------------------------------------------------------
       int idgrupo = ds.getFieldIndexByName("GRUP_CULT");
       int idcultivo= ds.getFieldIndexByName("CULTIV");
                int idvariedad = ds.getFieldIndexByName("VARIED");
       int idriego = ds.getFieldIndexByName("SISTEMARIE");
       int idmetodo = ds.getFieldIndexByName("METODOCULT");
                int idedad = ds.getFieldIndexByName("EDADCULT");
       int idfuente = ds.getFieldIndexByName("Fuente");
       int idnota = ds.getFieldIndexByName("NOTA");
       int idbalsa =ds.getFieldIndexByName("BALSA");


       Value strmunicipio = ds.getFieldValue(selection.nextSetBit(0), 
idmunicipio);
       Value strparcela = ds.getFieldValue(selection.nextSetBit(0), 
idparcela);
       Value strpoligono = ds.getFieldValue(selection.nextSetBit(0), 
idpoligono);
       Value strrecinto = ds.getFieldValue(selection.nextSetBit(0), 
idrecinto);
       Value strfvalidacion = ds.getFieldValue(selection.nextSetBit(0), 
idfvalidacion);
       Value strgrupo = ds.getFieldValue(selection.nextSetBit(0), idgrupo);
       Value strcultivo = ds.getFieldValue(selection.nextSetBit(0), 
idcultivo);
       Value strvariedad = ds.getFieldValue(selection.nextSetBit(0), 
idvariedad);
       Value strsistriego = ds.getFieldValue(selection.nextSetBit(0), 
idriego);
       Value strmtdcultivo = ds.getFieldValue(selection.nextSetBit(0), 
idmetodo);
       Value stredad = ds.getFieldValue(selection.nextSetBit(0), idedad);
       Value strfuente = ds.getFieldValue(selection.nextSetBit(0), 
idfuente);
       Value strnota = ds.getFieldValue(selection.nextSetBit(0), idnota);
       Value strarea= ds.getFieldValue(selection.nextSetBit(0), idarea);
       Value strbalsa = ds.getFieldValue(selection.nextSetBit(0), idbalsa);

        ds.stop();







       //creamos una ventana de tipo (frame dialog) donde se visualiza una 
ventana donde sale la información del punto seleccionado por el usuario en 
la capa
       //paso como parámetro los campos de la fila seleccionada de la tabla.
  ProvinciasPanel panel = new 
ProvinciasPanel("Modificar","Cultivos",strparcela.toString(),strmunicipio.toString(),strpoligono.toString(),strrecinto.toString(),strfvalidacion.toString(),strarea.toString(),strgrupo.toString(),strcultivo.toString(),strvariedad.toString(),strsistriego.toString(),strmtdcultivo.toString(),stredad.toString(),strfuente.toString(),strnota.toString(),strbalsa.toString());
  PluginServices.getMDIManager().addWindow(panel);

  // La ventana que se le muestra al usuario puede modificar los datos, y 
cambiarlos ( la ventana contiene cajas de texto y comobox donde el usuario 
puede
  //modificar la información y poner otra.
   //EL CÓDIGO QUE VIENE A CONTINUACIÓN es el que me da problema al compilar 
en la línea de código 
lyrparcelas=(FLyrVect)table.getModel().getAssociatedTable();


   //obtengo los valores modificados de la ventana
   Values[]valores panel.obtenerdatosmodificados();


  //Aquí con este código tengo que grabar:

    int 
i=lyrparcelas.getSource().getRecordset().getSelection().nextSetBit(0);
          lyrparcelas=(FLyrVect)table.getModel().getAssociatedTable();
          IEditableSource ies = (VectorialEditableAdapter) 
lyrparcelas.getSource();
          IRow feat=null;

          try {
              feat = ies.getRow(i).getLinkedRow().cloneRow();
          } catch (DriverIOException e1) {
              e1.printStackTrace();
          } catch (IOException e1) {
              e1.printStackTrace();
          }

          Value[] values = feat.getAttributes();
          values[selectedIndex] = value;
          feat.setAttributes(values);

          IRowEdited edRow = new DefaultRowEdited(feat,
                  IRowEdited.STATUS_MODIFIED, i);

          try {
              ies.modifyRow(edRow.getIndex(), edRow.getLinkedRow(), "",
                       EditionEvent.ALPHANUMERIC);
          } catch (IOException e) {
              e.printStackTrace();
          } catch (DriverIOException e) {
              e.printStackTrace();
          }






   }

  } catch (DriverException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (com.hardcode.gdbms.engine.data.driver.DriverException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

 }

 public void pointDoubleClick(PointEvent event) throws BehaviorException {
  // TODO Auto-generated method stub

 }

 public Cursor getCursor() {
  // TODO Auto-generated method stub
  return null;
 }

 public boolean cancelDrawing() {
  // TODO Auto-generated method stub
  return false;
 }




}




----- Original Message ----- 
From: "César Martínez Izquierdo" <cesar.martinez en iver.es>
To: "Lista de Desarrolladores de gvSIG" 
<gvsig_desarrolladores en runas.cap.gva.es>
Sent: Tuesday, November 20, 2007 3:52 PM
Subject: Re: [Gvsig_desarrolladores] Tablas - gvsig


> Hola de nuevo,
>
> Seguramente "table" te da error porque es una variable que no has 
> declarado.
>
> ¿puedes enviar el código completo de la función que estás haciendo para 
> que entendamos mejor lo que quieres hacer? ¿Quieres obtener una vista, o 
> su vista asociada? ¿U otra cosa distinta?
>
> Saludos,
>
>
>
> RINCON OLIVA, Mª ARANZAZU escribió:
>>
>> Hola buenos días,
>>
>> Tengo un problema al obtener la tabla asociada a la capa.
>> Me da un error de compilación en la palabra "table".
>> He importado el paquete: import 
>> com.iver.cit.gvsig.project.documents.table.*, pero el error de 
>> compilación persiste.
>> El código es el siguiente:
>>
>>   int 
>> i=lyrparcelas.getSource().getRecordset().getSelection().nextSetBit(0);
>>   FLyrVect lyrparcelas 
>> =(FLyrVect)table.getModel().getAssociatedTable();-->error
>>   IEditableSource ies = (VectorialEditableAdapter) lv.getSource();
>>
>>
>>
>> Muchas gracias
>> Un saludo
>>
>
>
> -- 
> César Martínez Izquierdo
> Equipo de desarrollo gvSIG
> http://www.gvsig.gva.es
>
> IVER T.I.
> C/ Lérida 20
> 46009 Valencia - Spain
> http://www.iver.es
>
>
> Este mensaje y sus archivos son confidenciales. No está permitida su 
> reproducción o distribución sin la autorización expresa de "IVER 
> Tecnologías de la Información". Si usted no es el destinatario previsto, 
> queda desautorizado cualquier uso, acceso o copia de este mensaje. Si ha 
> recibido este mensaje por error, por favor bórrelo e infórmenos por esta 
> misma vía.
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores 
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : InfoByPointListener.java
Tipo       : application/octet-stream
Tamaño     : 7364 bytes
Descripción: no disponible
Url        : http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20071120/88aed89e/InfoByPointListener-0001.obj


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