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
>
>

Reply via email to