No announcement yet.
  • Filter
  • Time
Clear All
new posts

    Question about recordComponentPoolingMode of recycle

    Hi, we ran into an issue with Smartclient 12.1 PowerEdition. We were using recordComponentPoolingMode="recycle" and set grid.recordComponentPosition="within". The issue we see is that when components are stored in the component pool in recycle mode, they are getting stored with "embeddedPosition"=null rather than "within". As a result of that, the updateHeightForEmbeddedComponents() method is returning a height that is too large because getMaxEmbeddedComponentHeight() method call is returning a details objects that reports allWithin:false.

    Is that by design to store components in the pool with embeddedPosition=null even if we explicitly set grid.recordComponentPositon="within" and set embeddedPosition="within" directly on the component when it is first created? Also, it seems like getMaxEmbeddedComponentHeight should treat a null or missing value for embeddedPosition as the default of "within"

    For now, we've switched to "viewport" mode to avoid this issue, but we'd like to consider using "recycle" mode if there is a way to configure this so the components in the pool maintain the embeddedPosition="within" properly.

    Not really clear from your description, you you seem to be saying you are directly assigning to component.embeddedPosition, which would be invalid and might cause the problem you're talking about.

    We can't really comment on whether the value for embeddedPosition is being mishandled somehow within the framework without first seeing the usage that is not working.


      Hi, I only tried setting component.embeddedPosition directly as I was debugging this and it seemed to have no impact. The real issue is that grid.recordComponentPosition ="within" seemed to initially cause the embeddedPosition to be properly set to "within". But, that value wasn't persisted when components were added to the component pool and recycled. I'm not going to be able to invest the time to provide detailed examples when viewport seems to work well enough for us, unfortunately.

      However, is it possible this line in getMaxEmbeddedComponentHeight() is a problem?

      var isWithin = (component.embeddedPosition == this._$within);

      It seems like if component.embeddedPosition is null, then it should be using "within" as the default. But, that line is causing a null value to set isWithin to false.


        Since you were kind enough to point out a possible smoking gun, we'll take a look at it without requiring a working test case.


          We've made a change to address this - please retest with a build dated July 3 or later.