             
             if (iconInstance)
             {
-                if (iconInstance is UIComponent)
-                {
-                    iconWidth = UIComponent(iconInstance).getExplicitOrMeasuredWidth();
-                    iconHeight = UIComponent(iconInstance).getExplicitOrMeasuredHeight();
+                if (iconInstance is ILayoutElement)
+                {
+                    iconWidth = ILayoutElement(iconInstance).getPreferredBoundsWidth();
+                    iconHeight = ILayoutElement(iconInstance).getPreferredBoundsHeight();
                 }
                 else
                 {

            }
            
            labelDisplayShadow.commitStyles();
            labelDisplayShadow.x = Math.max(0, Math.round(labelX));
            labelDisplayShadow.y = Math.max(0, Math.round(labelY + 1));
            labelDisplayShadow.height = labelHeight;
            labelDisplayShadow.width = labelWidth;
            
            // if labelDisplay is truncated, then push it down here as well.
            // otherwise, it would have gotten pushed in the labelDisplay_valueCommitHandler()

                labelDisplayShadow.text = labelDisplay.text;
            
            if (iconInstance)
            {
                resizePart(iconInstance, iconWidth, iconHeight);
                positionPart(iconInstance, Math.max(0, Math.round(iconX)), Math.max(0, Math.round(iconY))); 
            }        
        }
        
