[Gvsig_desarrolladores] Problemas Acceso a Datos

Jaime Traver revartj en gmail.com
Mar Mayo 1 21:11:54 CEST 2007


Hola a todos:

Estoy haciendo una extension, para la cual necesito acceso a los datos
vectoriales de una vista. Y tengo un problemilla, el planteamiento es el
siguiente, al igual que en la extension extDataLocator,  tengo dos paquetes
y dentro de cada uno, una clase; una de ellas  hereda Extension (... extends
Extension), en esta clase a parte de los metodos isVisible, isEnable...,
implemento execute de la siguiente forma:

 public void execute(String actionCommand) {
        vista = (View)PluginServices.getMDIManager().getActiveWindow();
        MapContext mapContext = vista.getModel().getMapContext();
        InputInfoPanel dataSelectionPanel = new InputInfoPanel(mapContext);
        PluginServices.getMDIManager().addWindow(dataSelectionPanel);


    }

Luego la otra clase hereda de JPanel (extends JPanel implements IWindow),
con sus correspondientes metodos, para pintar botones, campo de texto, etc.
El contructor de esta clase queda de la siguiente forma:

    public InputInfoPanel(MapContext mapContext){
        super();
        this.mapControl = new MapControl();
        mapControl.setMapContext(mapContext);
        lyr = mapControl.getMapContext().getGraphicsLayer();
        initialize(); //Muestra componente swing
    }

El metodo initialize() haria lo siguiente:

private void initialize(){
...
...
...
this.add(getOkCancelPanel(), null);
...
...
}

Pues bien, es en la funcion AcceptCancelPanel, donde se produce el error,
cuando  llega a (ds = ds.getDataSourceFactory().executeSQL(sql,
DataSourceFactory.AUTOMATIC_OPENING); ), saltando una excepcion indicando lo
siguiente "PluginServices.Error grave de la aplicación. Es conveniente que
salgas de la aplicación".



    private AcceptCancelPanel getOkCancelPanel() {

        if (okCancelPanel == null) {
            ActionListener okAction, cancelAction;
            okAction = new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {


                    layerTolocate =
mapControl.getMapContext().getLayers().getLayer(0);//
Atributo de esta clase definido asi--> Flayer layerTolocate;
                    AlphanumericData capa = (AlphanumericData)layerTolocate;
                    DataSource ds;
                    try {
                        ds = capa.getRecordset();
                        String sql = "select * from " + ds.getName() + "
;";
                        ds = ds.getDataSourceFactory().executeSQL(sql,
DataSourceFactory.AUTOMATIC_OPENING);

                        if (ds.getRowCount()!=0){
                            System.out.println("Hay resultados de la
sentencia SQL");
                        }
                        else
                            System.out.println("La sentencia SQL no  ha
producido resultados");


                    } catch (DriverException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    } catch (DriverLoadException e2) {
                        // TODO Auto-generated catch block
                        e2.printStackTrace();
                    } catch (ParseException e3) {
                        // TODO Auto-generated catch block
                        e3.printStackTrace();
                    } catch (
com.hardcode.gdbms.engine.data.driver.DriverException e4) {
                        // TODO Auto-generated catch block
                        e4.printStackTrace();
                    } catch (SemanticException e5) {
                        // TODO Auto-generated catch block
                        e5.printStackTrace();
                    } catch (IOException e6) {
                        // TODO Auto-generated catch block
                        e6.printStackTrace();
                    } catch (EvaluationException e7) {
                        // TODO Auto-generated catch block
                        e7.printStackTrace();
                    }

                }
            };
            cancelAction = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    closeThis();
                }
            };
            okCancelPanel = new AcceptCancelPanel(okAction, cancelAction);
            okCancelPanel.setBounds(new java.awt.Rectangle(60, 110, 210,
30));//88,260
        }
        return okCancelPanel;
    }


Querria saber como podria solucionar este problema.
Gracias

Un saludo tod en s.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20070501/4587da0e/attachment-0001.htm


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