History | Log In     View a printable version of the current page.  
Issue Details (XML)

Key: SDK-9485
Type: Bug Bug
Status: Closed Closed
Resolution: Deferred
Priority: D D
Assignee: PR Muruganandh
Reporter: Robert Vollmar
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Flex SDK

Using upSkin/overSkin/etc. on a Button selector is incorrectly picked up by un-skinned ComboBox and ColorPicker

Created: 04/02/07 03:09 PM   Updated: 07/10/08 05:33 PM
Component/s: Skin States
Security Level: Public (All JIRA Users )

File Attachments: 1. File colorpick.mxml (0.3 kb)

Image Attachments:

1. x.gif
(1 kb)
Issue Links:
Relationship
 
This issue is related to by:
SDK-12760 A ColorPicker does not appear correct... C Closed

Severity: Incorrectly Functioning with Workaround
Reproducibility: Every Time
Discoverability: Low
Found in Version: None
Affected OS(s): All OS Platforms - All
Steps to Reproduce:
 Reproduction:
1. Load the bug file. It has a single Button type selector with values for upSkin, overSkin, downSkin, and disabledSkin. It also contains a ColorPicker and a ComboBox

Actual Results:
The ColorPicker and ComboBox appear incorrectly.


        
Language Found: English
Bugbase Id: 202912
Needs Release Note: Yes
Triaged: Yes
Regression: Yes
QA Owner: PR Muruganandh
Resolved by: Joan Lafferty
Participants: Brian Raymes, BugDB Migration, Glenn Ruehle, Jason Szeto, JIRA Migration Admin, Joan Lafferty, Joann Chuang, PR Muruganandh and Robert Vollmar


 All   Comments      Sort Order:
JIRA Migration Admin - [05/12/07 05:14 PM ]
Move from BugDB issue number 202912

JIRA Migration Admin - [05/12/07 05:14 PM ]
Milestone ID = 1593
Milestone = M2_Moxie
Build ID = 25200
Build = 165218_flex_M1_Alpha
Fix Build ID = null
Fix Build = null

BugDB Migration - [05/14/07 05:04 PM ]
[rvollmar 4/2/07] Entered Bug. Injection, worked fine in 2.0.1.
[brbaker 4/3/07] Sending to QRB
[laupark 4/6/07] QRB opened to gruehle for M2_Moxie

Glenn Ruehle - [05/18/07 02:01 PM ]
Rewrote bug to reflect the actual problem.

Jason Szeto - [05/24/07 06:18 PM ]
The problem that is occurring here is that the Button type selector is defining values for the up/down/over/disabledSkin styles. These take precedence over the skin style defined in the type selectors for ColorPicker and ComboBox. In the past, we didn't have these duel ways of setting skin styles. So the ColorPicker/ComboBox type selectors defined values for the up/down/over/disabledSkin styles. These then took precedence over the ones defined in the Button type selector.


Jason Szeto - [05/24/07 06:30 PM ]
I suggest that we defer this bug for now and just recommend the workaround. I believe the only way we can fix this bug is to deprecate the up/down/over/disabledSkin styles and replace them with another style name. This is how other components like NumericStepper and DateChooser handle the skin styles of their subcomponents. They give them style names like upArrowUpSkin or downArrowOverSkin.

In addition, we'd need to change the names that the ColorPickerSkin and the ComboBoxArrowSkin use for their name property.

Deprecating these styles for M2 is probably too risky at this point. Plus, deprecating styles gets a bit nasty in terms of supporting both sets of styles and calculating priority levels.

Joan Lafferty - [06/15/07 03:45 PM ]
IRB -> OK, we will defer this and make sure it gets into the Release Notes. Rob, if you don't agree, please send this back.

Joan Lafferty - [06/15/07 03:46 PM ]
Marking for Release Note.

Joann Chuang - [09/25/07 05:43 PM ]
Release Note: When skin styles are set for Button, these take precedence over the default skin styles for ColorPicker and ComboBox. To work around this, you can explicitly set the skins for ComboBox and ColorPicker:

ColorPicker
{
upSkin: ClassReference("mx.skins.halo.ColorPickerSkin");
overSkin: ClassReference("mx.skins.halo.ColorPickerSkin");
downSkin: ClassReference("mx.skins.halo.ColorPickerSkin");
disabledSkin: ClassReference("mx.skins.halo.ColorPickerSkin");
}

ComboBox
{
upSkin: ClassReference("mx.skins.halo.ComboBoxArrowSkin");
overSkin: ClassReference("mx.skins.halo.ComboBoxArrowSkin");
downSkin: ClassReference("mx.skins.halo.ComboBoxArrowSkin");
disabledSkin: ClassReference("mx.skins.halo.ComboBoxArrowSkin");
}

Brian Raymes - [07/10/08 02:02 PM ]
Are there any other components that could also require explicit skinning in order to not receive this error?

I am also receiving this error:

ArgumentError: Error #2004: One of the parameters is invalid.
at flash.display::Graphics/drawRoundRect()
at mx.skins::ProgrammaticSkin/drawRoundRect()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\skins\ProgrammaticSkin.as:745]
at mx.skins.halo::ButtonSkin/updateDisplayList()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\skins\halo\ButtonSkin.as:217]
at mx.skins::ProgrammaticSkin/validateDisplayList()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\skins\ProgrammaticSkin.as:421]
at mx.managers::LayoutManager/validateDisplayList()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:605]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:678]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8564]
at mx.core::UIComponent/callLaterDispatcher()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8507]

In my case, the above fix does not help, but after some hefty searching, I'm fairly certain this is of the same issue.

Brian Raymes - [07/10/08 05:33 PM ]
Turns out I had to individually set the styleName of a ComboBox with the skins mentioned above to overcome this error, instead of a generic type selector.

i.e.,

.myComboBox
{
upSkin: ClassReference("mx.skins.halo.ComboBoxArrowSkin");
overSkin: ClassReference("mx.skins.halo.ComboBoxArrowSkin");
downSkin: ClassReference("mx.skins.halo.ComboBoxArrowSkin");
disabledSkin: ClassReference("mx.skins.halo.ComboBoxArrowSkin");
}

<mx:ComboBox styleName="myComboBox"/>