From: <bma...@us...> - 2011-07-08 13:26:35
|
Revision: 6325 http://fudaa.svn.sourceforge.net/fudaa/?rev=6325&view=rev Author: bmarchan Date: 2011-07-08 13:26:28 +0000 (Fri, 08 Jul 2011) Log Message: ----------- Fix : Plantage lors de recherches Globales ou Atomiques Modified Paths: -------------- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/find/EbliFindExpressionDefault.java Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java =================================================================== --- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java 2011-07-06 22:13:51 UTC (rev 6324) +++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/find/CalqueFindActionAtomic.java 2011-07-08 13:26:28 UTC (rev 6325) @@ -15,7 +15,6 @@ import org.fudaa.ebli.calque.ZCalqueGeometry; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.commun.EbliListeSelectionMulti; -import org.fudaa.ebli.commun.EbliSelectionState; import org.fudaa.ebli.find.EbliFindComponent; import org.fudaa.ebli.find.EbliFindComponentExpr; import org.fudaa.ebli.find.EbliFindable; @@ -47,6 +46,7 @@ _calque.addPropertyChangeListener("mode",this); } + @Override public boolean find(final Object _idx, final String _action, final int _selOption, final EbliFindable _parent) { if (_action.startsWith(CalqueFindComponentPolygone.getID())) { return findPolygone(_idx, _action, _selOption, _parent); @@ -101,7 +101,13 @@ // Mode atomique. if (((ZCalqueGeometry)layer_).isAtomicMode()) { + // On recupere le tableau pour chaque atomique stock\xE9 dans la valeur de la variable + for (int i=0; i<values.length; i++) { + values[i]=vars[i].getValue(); + } + int nbAtomics=((ZCalqueGeometry)layer_).modeleDonnees().getNbPointForGeometry(idxGeom); + for (int iat=0; iat<nbAtomics; iat++) { for (int j=0; j<vars.length; j++) { vars[j].setValue(((Object[])values[j])[iat]); @@ -115,9 +121,6 @@ // Mode global else { - for (int j=0; j<vars.length; j++) { - vars[j].setValue(values[j]); - } final int val=(int)expr_.getParser().getValue(); if (val==1) { // La liste des sous objets est vide, mais pr\xE9sente. @@ -132,6 +135,7 @@ } + @Override protected EbliFindComponent buildExprComp() { exprComp_=(EbliFindComponentExpr)super.buildExprComp(); exprComp_.setFindOnAtomic(((ZCalqueGeometry)layer_).isAtomicMode()); @@ -139,6 +143,7 @@ return exprComp_; } + @Override protected EbliFindComponent buildPolygoneComponent(final EbliFindable _parent) { polyComp_ = new CalqueFindComponentPolygone(((ZEbliCalquesPanel) _parent).getDonneesCalque()); polyComp_.setFindOnAtomic(((ZCalqueGeometry)layer_).isAtomicMode()); @@ -147,7 +152,7 @@ public void propertyChange(PropertyChangeEvent _evt) { if ("mode".equals(_evt.getPropertyName())) { - boolean isAtomic=((Boolean)_evt.getNewValue()).booleanValue(); + boolean isAtomic=ZCalqueGeometry.SelectionMode.ATOMIC.equals(_evt.getNewValue()); buildExpr(); if (exprComp_!=null) { Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/find/EbliFindExpressionDefault.java =================================================================== --- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/find/EbliFindExpressionDefault.java 2011-07-06 22:13:51 UTC (rev 6324) +++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/find/EbliFindExpressionDefault.java 2011-07-08 13:26:28 UTC (rev 6325) @@ -45,7 +45,9 @@ } public void majVariable(final int _idx, final Variable[] _varToUpdate) { - i_.setValue(CtuluLib.getDouble(_idx + 1)); + // Integer : Important pour obtenir un nombre entier lors de l'op\xE9ration Add() + // avec un String. + i_.setValue(new Integer(_idx + 1)); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |