From: Jonathan A. <jon...@gm...> - 2005-12-31 06:13:35
|
Hi Paulo: Try this: (the second line is new) Feature feature =3D (Feature) i.next(); Feature.setSchema(currentLayer.getFeatureCollectionWrapper().getFeatureSc= hem a()); feature.setAttribute(attributeIndex, (Object)new Integer(123)); --=20 Jon Aquino (Victoria BC Canada) http://jonathanaquino.com -----Original Message----- From: jum...@li... [mailto:jum...@li...] On Behalf Of Paulo = JMS Magalh=E3es Sent: Friday, December 30, 2005 3:52 AM To: jum...@li... Subject: Re: [JPP-Devel] beginner question Hi. Thank you for you answer. Still, I feel lost after all my debugging. I've reduced the problem to a minimum sample for you to easily spot=20 what I'm doing wrong (something silly, most likely). Below is a myDebug=20 function that I call directly from the plugin #execute. The debug string = contains 15/16/15 but the setAttribute throws arrayIndexOutOfBounds(15). = Still, the attribute is created because after the plugin run, I can see=20 it on the schema. I've based my code on the=20 CalculateAreasAndLenghtsPlugIn.java that comes in OpenJump. Oh, this code doesn't do anything useful and "portugal" is a layer that=20 I explicitly open only for this debugging purposes. Please let me know=20 if you need any further info and I'm sorry for this beginner question=20 once again. Thank you in advance, Paulo M private void myDebug(PlugInContext context) { final String MY_ATTR =3D "test"; final String LAYERNAME =3D "portugal"; String debug; =09 Layer currentLayer =3D context.getLayerManager().getLayer(LAYERNAME); debug =3D (new=20 Integer(currentLayer.getFeatureCollectionWrapper().getFeatureSchema().get= Att ributeCount()).toString()); =09 currentLayer.getFeatureCollectionWrapper().getFeatureSchema().addAttribut= e(M Y_ATTR,=20 AttributeType.INTEGER); debug =3D debug + "/" + (new=20 Integer(currentLayer.getFeatureCollectionWrapper().getFeatureSchema().get= Att ributeCount()).toString()); =09 int attributeIndex =3D=20 currentLayer.getFeatureCollectionWrapper().getFeatureSchema().getAttribut= eIn dex(MY_ATTR); debug =3D debug + "/" + attributeIndex; context.getWorkbenchFrame().warnUser(debug); =09 for (Iterator i =3D=20 currentLayer.getFeatureCollectionWrapper().getFeatures().iterator();=20 i.hasNext();) { Feature feature =3D (Feature) i.next(); feature.setAttribute(attributeIndex, (Object)new Integer(123)); }=09 Jonathan Aquino wrote: > Hi Paulo - Two things to check: (1) that your new attribute has been=20 > added to the FeatureSchema (2) that the layer *and* all its features=20 > point to this FeatureSchema. >=20 > I'm guessing that the layer or one of the features is pointing to an=20 > old FeatureSchema. >=20 ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log = files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick _______________________________________________ Jump-pilot-devel mailing list Jum...@li... https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel |