Announcement

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

    Bug report [Fix included] - Reusable SectionStacks with controls not rendering correctly

    Hi, I've been tracking down why a reusable SectionStack wasn't rendering correctly its header controls consistently and believe I have tracked the issue down to a code typo in the framework.

    Tested using v120d_2017-09-28_LGPL (affects earlier versions too).

    Inside the SectionStack class definition you have the following code:
    Code:
    isc.SectionStack.registerDupProperties(
         "sections",
          // second array is sub-properties!
         ["items"],
         ["controls"]);
    The code comment appears correct - the 2nd argument should be an array of sub-properties but instead the 'controls' sub-property is passed as a 3rd argument. I think code should be as follows (and making this change fixes the issue I was investigating):

    Code:
     isc.SectionStack.registerDupProperties(
         "sections",
         // second array is sub-properties!
         ["items", "controls"]);
    Last edited by jaredm; 1 Oct 2017, 16:49.

    #2
    Thanks for the report. The issue has been fixed. Please try the next nightly build, dated October 03.

    Regards
    Isomorphic Software

    Comment


      #3
      Thanks guys! I found another one (although less sure about it). It's not causing me any impact but came across it while diagnosing something else.

      In the _resized method of StatefulCanvas you have:
      Code:
       
       this.invokeSuper(isc.StatefulCanvas, this._$_resized, deltaX,deltaY,a,b,c);
      That looks to me like its improper and should be:
      Code:
       
       this.invokeSuper(isc.StatefulCanvas, this._$_resized, [deltaX,deltaY,a,b,c]);
      Please excuse me if I'm wrong.

      Comment


        #4
        That call is actually correct - invokeSuper() is a little different from Super(), and doesn't use an array for arguments.

        Comment


          #5
          Originally posted by Isomorphic View Post
          That call is actually correct - invokeSuper() is a little different from Super(), and doesn't use an array for arguments.
          Thank you, I stand corrected.

          Please find one more issue (that I am certain is wrong). I'm trying to add a custom grid component by overriding gridComponents and using the 'showMyComponent' property to control whether it gets rendered. The ListGrid has a method called shouldShowGridComponent and within it the code is using a function reference to toUpperCase rather than a function call which causes showComponentPropertyMap to be incorrectly populated. As a result the showComponentPropertyMap gets populated with something like 'showfunction toUpperCase() { [native code] }yComponent' instead of 'showMyComponent':

          Code:
           this.showComponentPropertyMap[component] = property = "show" + component.substring(0,1).toUpperCase + component.substring(1);
          should be:
          Code:
           this.showComponentPropertyMap[component] = property = "show" + component.substring(0,1).toUpperCase() + component.substring(1);
          Verified in latest nightly (SmartClient_SNAPSHOT_v120d_2017-10-07_LGPL)

          Comment


            #6
            The issue has been fixed. Please try the next nightly build, dated October 10.

            Regards
            Isomorphic Software

            Comment

            Working...
            X