I tried to put a new attribute to a old Feature, I altered the Schema but
looks like the size of the array whete stay the data of the Feature is not
actualized.

I got the following Stack trace:

java.lang.ArrayIndexOutOfBoundsException: 3
        at
com.vividsolutions.jump.feature.BasicFeature.getAttribute(BasicFeature.java:82)
        at
com.vividsolutions.jump.workbench.ui.LayerTableModel$4.getValue(LayerTableModel.java:170)
        at
com.vividsolutions.jump.workbench.ui.LayerTableModel$MyColumn.getValueAt(LayerTableModel.java:75)
        at
com.vividsolutions.jump.workbench.ui.ColumnBasedTableModel.getValueAt(ColumnBasedTableModel.java:141)
        at
com.vividsolutions.jump.workbench.ui.GUIUtil.chooseGoodColumnWidths(GUIUtil.java:408)
        at
com.vividsolutions.jump.workbench.ui.AttributeTablePanel.initColumnWidths(AttributeTablePanel.java:415)
        at
com.vividsolutions.jump.workbench.ui.AttributeTablePanel.<init>(AttributeTablePanel.java:307)
        at
com.vividsolutions.jump.workbench.ui.AttributePanel.addTablePanel(AttributePanel.java:154)
        at
com.vividsolutions.jump.workbench.ui.AttributePanel.layerAdded(AttributePanel.java:136)
        at
com.vividsolutions.jump.workbench.ui.AttributeTab$5.layerAdded(AttributeTab.java:143)
        at
com.vividsolutions.jump.workbench.ui.InfoModel.add(InfoModel.java:88)
        at
com.vividsolutions.jump.workbench.ui.cursortool.FeatureInfoTool.gestureFinished(FeatureInfoTool.java:81)
        at
com.vividsolutions.jump.workbench.ui.cursortool.AbstractCursorTool.fireGestureFinished(AbstractCursorTool.java:446)
        at
com.vividsolutions.jump.workbench.ui.cursortool.SpecifyFeaturesTool.mouseClicked(SpecifyFeaturesTool.java:95)
        at
com.vividsolutions.jump.workbench.ui.cursortool.LeftClickFilter.mouseClicked(LeftClickFilter.java:81)
        at
com.vividsolutions.jump.workbench.ui.cursortool.DelegatingTool.mouseClicked(DelegatingTool.java:97)
        at
java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
        at java.awt.Component.processMouseEvent(Component.java:6266)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3255)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:4247)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

This is the code where I got the problem:

 Layer l = (Layer)cboLayers.getSelectedItem();
        FeatureCollectionWrapper col = l.getFeatureCollectionWrapper();
        FeatureSchema schema = col.getFeatureSchema();
        instalEsquema(schema,rs);
        List lista =col.getFeatures();
        while (rs.next()){
            for(Object o: lista){
                Feature f = (Feature) o;
                Feature fNew;
                String att =
f.getAttribute(cboAtributos.getSelectedItem().toString()).toString();
                if (att.equals(rs.getString(txtCampo.getText()))){
                    for(int i
=nroAtributosAntes;i<schema.getAttributeCount();i++){
                        f.setAttribute(i,
rs.getString(schema.getAttributeName(i))); //Here is the problem
                    }
                }
            }
        }

    private void instalEsquema(FeatureSchema schema, ResultSet rs) throws
SQLException {
    //Here everything works fine....
        nroAtributosAntes = schema.getAttributeCount();
        ResultSetMetaData meta = rs.getMetaData();
        for(int i =1;i<=meta.getColumnCount();i++){
            schema.addAttribute(meta.getColumnLabel(i),
AttributeType.STRING);
        }
    }


Thanks

-- 
Caroline Julliê de Freitas Ribeiro
Graduando em Análise e Desenvolvimento de Sistemas

Instituto Federal Minas Gerais - IFMG
Campus Bambuí
------------------------------------------------------------------------------

_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to