> What's the difference between you new SkinnablePopup and the existing SkinnablePopupContainer ?
It's how SkinnableComponent compares to SkinnableContainer, but for popups. So it allows you to create custom popups without having to wrap them in a SkinnablePopUpContainer or a PopUpAnchor. >From a pragmatic point of view it allows you to do things like this: <fx:Declarations> <rs:Alert id="alert" title="Hello world" text="Are you sure you wish to say hello?"/> </fx:Declarations> <s:Button label="Say hello" click="alert.open()"/> As another example implementation of SkinnablePopUp (besides Alert) I've created a Toaster class (you know, messages that pop up and stack up in a corner of the screen for a few seconds), which can be used like this: <fx:Declarations> <rs:Toaster id="toaster" width="150" bottom="20" right="20"/> </fx:Declarations> <s:Button label="Say hello" click="toaster.toast('Hello there from the Toaster')"/> M On Fri, Oct 11, 2013 at 11:34 AM, Maurice Amsellem < maurice.amsel...@systar.com> wrote: > BTW, I like the idea of the mxml based Alert (in addition to AS script > API) :-) > > Maurice > > -----Message d'origine----- > De : Maurice Amsellem [mailto:maurice.amsel...@systar.com] > Envoyé : vendredi 11 octobre 2013 11:31 > À : dev@flex.apache.org > Objet : RE: FLEX-33806 and spark Alert implementation > > Hi Maxime, > > What's the difference between you new SkinnablePopup and the existing > SkinnablePopupContainer ? > > Maurice > > -----Message d'origine----- > De : Maxime Cowez [mailto:maxime.co...@gmail.com] Envoyé : vendredi 11 > octobre 2013 11:25 À : dev@flex.apache.org Objet : Re: FLEX-33806 and > spark Alert implementation > > I've been working on a Spark implementation of Alert, which I've discussed > on this list before (see > http://apache-flex-development.2333347.n4.nabble.com/DISCUSS-Alerts-and-dialogs-in-Flex-4-x-Spark-was-Alerts-and-dialogs-in-FlexJS-td27595.html > ). > Unlike the current experimental implementation - which is a port of the > old mx Alert - it's rewritten from scratch. > I've been meaning to integrate it with the existing implementation so that > its API would be more or less backwards compatible and then submit it as a > patch, but haven't had a shred of spare time these last few months :( > > What's a bit different in my approach is that Alert extends SkinnablePopUp > (which is a new base class, and hence Alert is no longer a > SkinnableContainer). SkinnablePopUp can be extended and/or skinned any > which way you want and offers total flexibility, whereas Alert is a default > implementation with a few SkinParts. > I used these SkinParts: > > [SkinPart(required="true")] > public var textDisplay:IDisplayText; > > [SkinPart(required="false")] > public var titleDisplay:IDisplayText; > > [SkinPart(required="false")] > public var commitButton:IVisualElement; > > [SkinPart(required="false")] > public var discardButton:IVisualElement; > > [SkinPart(required="false")] > public var cancelButton:IVisualElement; > > [SkinPart(required="false")] > public var iconDisplay:BitmapImage; > > Only 'textDisplay' is required since an Alert without a message doesn't > make much sense; the others are optional. > > Max > > > > On Fri, Oct 11, 2013 at 9:34 AM, Maurice Amsellem < > maurice.amsel...@systar.com> wrote: > > > >Simplification tends to remove flexibility. Spark components are > supposed > > >to leave control of all visuals to the skin designer. For example, can > > >the custom skin designer swap out a messageDisplay that does plain > > >text > > with one that does rich text? > > > > If you replace plain text with rich text, it's not only a skin design > > change in my sense, because you are also changing the behavior (you > > have to change to calling code as well). > > Yet, you can do it by subclassing Alert to RichAlert and just swap the > > content and override one of the static methods to use your RichText. > > With the previous implementation, you could replace the skin part with > > RichText in the skin, but you will still have to subclass Alert to set > > the richText correctly. > > > > The problem here is that it's not a Skinnable Component but a > > Skinnable Container. > > It's different because Skinnable containers content is part on the "data" > > and not of the skin. > > It's not clear to me if changes in the content of SkinnableContainers > > should be set as skinParts and moved to the skin (and disabling the > > content > > skinpart) > > or just overriding the content in a subclass of the container. > > > > What do you think? > > > > Maurice > > > > -----Message d'origine----- > > De : Alex Harui [mailto:aha...@adobe.com] Envoyé : vendredi 11 octobre > > 2013 06:26 À : dev@flex.apache.org Objet : Re: FLEX-33806 and spark > > Alert implementation > > > > > > > > On 10/10/13 7:20 PM, "Justin Mclean" <jus...@classsoftware.com> wrote: > > > > >Hi, > > > > > >Being an experimental component I think just about any improvement is > > >a good idea. > > I agree with that statement, but is removing skinparts a "good idea"? > > Simplification tends to remove flexibility. Spark components are > supposed > > to leave control of all visuals to the skin designer. For example, can > > the custom skin designer swap out a messageDisplay that does plain > > text with one that does rich text? > > > > Getting rid of monkey patching PanelSkin sounds like a good idea though. > > And defaulting to BitmapImage and plain text. > > > > Have fun, > > -Alex > > > > >