[udig-devel] Problem with FeatureCollection,
FeatureTableControl and CollectionListener
Jesse Eichar
jeichar at refractions.net
Thu Feb 14 21:24:58 PST 2008
And thank you for this email. You just pointed out the cause of a bug
that has been driving me mad for ages. :)
Jesse
Le 14-Feb-08 à 4:26 PM, Ingmar Eveslage a écrit :
>
> Hello,
>
> i try to do the following:
>
> //create FeatureType
> CoordinateReferenceSystem crs = CRS.decode("EPSG:4326");
> AttributeType point =
> AttributeTypeFactory.newAttributeType("Location",Point.class,true,
> null,null,crs );
> AttributeType name = AttributeTypeFactory.newAttributeType("Name",
> String.class, false, null, "Station", null);
> FeatureType stationFeatureType =
> FeatureTypeBuilder.newFeatureType(new
> AttributeType[] { point, name }, "StationFeatureType");
>
> //create IGeoResource
> IGeoResource stationGeoResource =
> CatalogPlugin
> .getDefault
> ().getLocalCatalog().createTemporaryResource(stationFeatureType);
>
> //create list of IGeoResource
> List <IGeoResource> geoResourceList = new LinkedList<IGeoResource>();
> geoResourceList.add(stationGeoResource);
>
> //create new map
> ApplicationGIS.createAndOpenMap(geoResourceList, null, true);
>
> //get the new layer
> ILayer stationLayer = null;
> List <ILayer> layerList = network.getEditorMap().getMapLayers();
> for (ILayer layer: layerList) {
> if (layer.getName().compareTo("StationFeatureType") == 0)
> stationLayer = layer;
> }
>
> //get FeatureSource
> FeatureSource stationFeatureSource =
> stationLayer.getResource(FeatureSource.class, null);
>
> //get FeatureCollection
> FeatureCollection features = stationFeatureSource.getFeatures();
>
> //AFTER all this i create i view wich displays a FeatureTableControl
> FeatureTableControl ftc = new FeatureTableControl(parent, features);
>
> All seams fine, but i notices a few problems:
>
> 1) the automatic created column header for the AttributeType point is
> "GEOMETRY". but i defined it as "Location". The first thing is a
> nullPointerException if the FeatureTableControl wants to display a
> feature.
> When i change the name of my attributetype to "GEOMETRY" all is
> fine. But i
> think this is a bug.
>
> 2) if i add features to the layer, no updates in the table will be
> displayed. and i do not realy know which listener i should take. i
> tried the
> following:
> every implementation of the changed method makes a tfc.update.
>
> map.getEditManager().addListener(view_i_created);
> --> all updates are seen, but if i make i commit of the station
> layer i get
> a "invalid thread access exception"
> stationFeatureSource.addFeatureListener(view_i_created);
> --> all updates are listed in the table, but the commit of the
> station
> layer makes no update. so all the FID are still "new*" and not the
> real one
> features.addListener(view_i_created);
> --> nothing happens. no CollectionEvent fired
>
> i looked in the FeatureTableControl implementation and i think this
> implementation uses the CollectionListener interface too. but when no
> CollectionEvents are fired, no updates are displayed.
>
> i hope someone can help me with my 2 problem. perhaps this are bugs
> or do i
> missunderstand the api?
>
> thanks forward
>
> Ingmar
>
>
> --
> View this message in context: http://www.nabble.com/Problem-with-FeatureCollection%2C-FeatureTableControl-and-CollectionListener-tp15492607p15492607.html
> Sent from the udig-devel mailing list archive at Nabble.com.
>
> _______________________________________________
> User-friendly Desktop Internet GIS (uDig)
> http://udig.refractions.net
> http://lists.refractions.net/mailman/listinfo/udig-devel
More information about the udig-devel
mailing list