[Gvsig_desarrolladores] Re: Crear Tabla

Jaime Traver revartj en gmail.com
Mie Jul 11 20:39:31 CEST 2007


Hola de nuevo, como os he comentado mi intención era crear una tabla nueva
desde cero, entonces os comento, como creo que puede ser y ya me indicáis si
voy por el camino correcto:

            String[] Campos=
{"fieldA","fieldB","fieldC","fieldD","fieldE","fieldF"};
            int [] fieldTypes={12,12,12,12,12,12};
            DBFDriver driver = new DBFDriver();
            String name = "Tabla";

            LayerFactory.getDataSourceFactory().createFileDataSource(
driver.getName(), name, "Archivo", Campos, fieldTypes);

            DataSource dataSource = null;
            DataSourceFactory dsf = new DataSourceFactory();
            dsf.createFileDataSource(driver.getName(), name, "jame", Campos,
fieldTypes);

            Supongo, que aquí habrá que añadir las tuplas al datasource, y
no se como se haría exactamente. Aquí, tal como esta salta una exception
indicando java.lang.NullPointerException

            dataSource.setDataSourceFactory(dsf);
            SelectableDataSource sds = new SelectableDataSource(dataSource);
            EditableAdapter auxea = new EditableAdapter();
            auxea.setOriginalDataSource(sds);

            Luego para agregar la tabla al proyecto seria así, como comento
Jorge Piera.

            ProjectTable projectTables = ProjectFactory.createTable(name,
                    auxea);

            ProjectExtension ext =
(ProjectExtension)PluginServices.getExtension(ProjectExtension.class);
            ext.getProject().addDocument(projectTable);

Un Saludo


El día 10/07/07, Vicente Caballero Navarro <vicente.caballero en iver.es>
escribió:
>
> Hola Jaime.
> Para cambiar la estructura de la tabla tendrás que introducir en el
> writer la descripción de la tabla con los datos necesarios de las
> columnas que quieres introducir:
> A partir de lo que ha comentado Jorge:
>     A auxea le puedes ir introduciendo registros.
>                 ies.addRow(row,"description",EditionEvent.ALPHANUMERIC);
>
>                   if (auxea instanceof IWriteable)
>                  {
>                      IWriteable w = (IWriteable) auxea;
>                      IWriter writer = w.getWriter();
>                      if (writer == null)
>                      {
>                          NotificationManager.addError("No existe driver
> de escritura para la tabla"
>                                  + getModel().getName(), new
> EditionException());
>                      }
>                      else
>                      {
>                          tableDef=new TableDefinition();
>                          FieldDescription[] fieldDescriptions=new
> FieldDescription[3];
>                          fieldDescriptions[0].setFieldName("name1");
>                          fieldDescriptions[0].setFieldType(type);
>                          ...
>                          tableDef.setFieldsDesc(fieldDescriptions);
>                          writer.initialize(tableDef);
>
>
> auxea.stopEdition(writer,EditionEvent.ALPHANUMERIC);
>                     }
>                  }
>
> Jorge Piera escribió:
> > Hola Jaime.
> >       Para ver una tabla en gvSIG, tienes que crear un objeto de tipo
> > ProjectTable, asociarle una fuente de datos (desde un dbf en tu caso)
> > y añadirlo al proyecto. Te adjunto un trozo que código que hace todo
> > esto:
> >
> >        DBFDriver driver = new DBFDriver();
> >        String name = "my name";
> >
> > LayerFactory.getDataSourceFactory().addFileDataSource(driver.getName(),
> >                name,
> >               "/home/revartj/Desktop/tabla.dbf");
> >        DataSource dataSource =
> > LayerFactory.getDataSourceFactory().createRandomDataSource(name,
> >                DataSourceFactory.AUTOMATIC_OPENING);
> >
> >        SelectableDataSource sds = new SelectableDataSource(dataSource);
> >        EditableAdapter auxea = new EditableAdapter();
> >        auxea.setOriginalDataSource(sds);
> >
> >        ProjectTable projectTable = ProjectFactory.createTable(name,
> >                auxea);
> >
> >        ProjectExtension ext = (ProjectExtension)
> > PluginServices.getExtension(ProjectExtension.class);
> >        ext.getProject().addDocument(projectTable);
> > Un saludo
> >
> > Jaime Traver wrote:
> >> Hola a todos de nuevo, buscando he encontrado algo pero no se
> >> exactamente que estoy haciendo mal, porque no me escribe nada en el
> >> fichero indicado, mi intención es crear una tabla.dbf para guardar
> >> información obtenida de otro procesos. En teoría, este trozo de
> >> código, tendría que me crearme únicamente la tabla con los nombre de
> >> los campos.
> >>
> >>             DBFDriver Fic = new DBFDriver();
> >>             String[] Campos=
> >> {"fieldA","fieldB","fieldC","fieldD","fieldE","fieldF"};
> >>             int [] fieldTypes={12,12,12,12,12,12};
> >>             File f= new
> >> File("/home/revartj/Desktop/tabla.dbf");
> >> Fic.open(f);
> >>             Fic.createSource("1", Campos, fieldTypes);
> >>             Fic.close();
> >>
> >>
> >> Un Saludo
> >>
> ------------------------------------------------------------------------
> >>
> >> _______________________________________________
> >> gvSIG_desarrolladores mailing list
> >> gvSIG_desarrolladores en runas.cap.gva.es
> >> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
> >>
> >
> > _______________________________________________
> > gvSIG_desarrolladores mailing list
> > gvSIG_desarrolladores en runas.cap.gva.es
> > http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
> >
> >
> >
> Un saludo.
>
> --
> Vicente Caballero Navarro
> Grupo desarrollo gvSIG.
> IVER TI S.A.
> C/ Lérida, 20
> 46005-Valencia
> Tlf.+34963354983
> www.iver.es
> www.gvsig.com
>
>
> _______________________________________________
> 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 adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20070711/9d388604/attachment-0001.htm


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