IBM Support

PM32595: RBD8 Rui: custom widget class is set with starting EglRui

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Environment:
    - Windows XP
     - Rational Buissiness Developer v 801
    Reproducible Y/N: Y
    Description of problem:
    User created a custom widget, DateField, as a copy of TextField.
    It must use the TextField styling.
    
    However, by default RUI assigns a class with the widget name:
    EglRuiDateField. It appears that EGL runtime sets the default
    class after calling
    the onConstructionFunction function.
    (In the setTagName function to be precise.)
    
    For example : following code in the 'rendered' page source :
    
        },
        'setTagName': function(/*String*/ tagName)
        {
            if (!tagName) return;
            this.eze$$DOMElement = egl.createElement(tagName);
            this.eze$$getDOMElement().eze$$widget = this;
            var parts = tagName.match(/(\w)(\w*)/);
            this.setClass('EglRui' + parts[1].toUpperCase() +
    parts[2].toLowerCase());
        },
    
    Step to reproduce:
    Workaround:
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The css class set in onConstructionFunction is overwritten
    by a default class "EglRui" + widget name, like below:
    
    handler MyWidget type RUIWidget {tagName = "div",
    onConstructionFunction = start, cssFile="css/RUITest.css",
    @VEWidget{ category = "Custom" }}
    
     function start()
      class = "MyClass";
     end
    end
    
    The class for MyWidget is "RuiEglMyWidget", even if the
    class has been set to "MyClass".
    
    This is because the default class will be set after the
    onConstructionFunction invocation.
    

Problem conclusion

  • The solution is to not set the default class if the class
    has been set by the user in onConstructionFunction.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM32595

  • Reported component name

    RBD EGL FOR COB

  • Reported component ID

    5724S5001

  • Reported release

    751

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-02-14

  • Closed date

    2011-03-31

  • Last modified date

    2011-03-31

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    RBD EGL FOR COB

  • Fixed component ID

    5724S5001

Applicable component levels

  • R751 PSN

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMQ79","label":"Rational Business Developer"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
31 March 2011