Hi Maria,

You could also try to use Alert, which has AlertView - which could be
extended. In AlertView you have method createContent which can be override
and you could assign completely new content to that.

śr., 22 gru 2021 o 09:43 Maria Jose Esteve <mjest...@iest.com> napisał(a):

> For now I have implemented the second option:
>
>                                override public function set
> content(value:org.apache.royale.core.UIBase):void
>                                {
>                                                if(content != value)
>                                                {
>
>  super.content = value;
>
>  content.className="jewel contextmenupopupcontent";
>                                                }
>                                }
>
> This is the result [1]
>
> [1]
> https://drive.google.com/file/d/1qoeo_p4L4rcuk45DDwy_Ph4w6k-dj9Gv/view?usp=sharing
>
> Hiedra
>
> -----Mensaje original-----
> De: Maria Jose Esteve <mjest...@iest.com>
> Enviado el: martes, 21 de diciembre de 2021 23:41
> Para: dev@royale.apache.org
> Asunto: New Jewel ContextMenuPopUp
>
> Hi, I need some advice...
>
> I'm trying to implement a ContextMenuPopUp, similar to the current Jewel
> PopUp but without background color and whose positioning is based on mouse
> coordinates.
> In this first attempt I have extended ContextMenuPopUp from PopUp to be
> able to change the typeNames and className of "content" and some other
> things like changing the IBeadView to a new ContextMenuPopUpView or
> IBeadController to a new ContextMenuPopUpMouseController.
> My problem is when I override the setter of "content" because the variable
> "_content" is private in PopUp:
>
> In Jewel PopUp.as:
>
>                                public function PopUp()
>                                {
>                                                super();
>                                                typeNames = "jewel popup";
>                                }
>                                public function set
> content(value:UIBase):void
>                                {
>                                                if(_content != value)
>                                                {
>                                                                _content =
> value;
>
>  _content.className="jewel popupcontent";
>                                                }
>                                }
>
> In ContextMenuPopUp.as:
>
>                                public function ContextMenuPopUp()
>                                {
>                                                super();
>                                                typeNames = "jewel
> contextmenupopup";
>                                }
>
>                                override public function set
> content(value:org.apache.royale.core.UIBase):void
>                                {
>                                                if(_content != value)
>                                                {
>                                                                _content =
> value;
>
>  _content.className="jewel contextmenupopupcontent";
>                                                }
>                                }
>
> But sure, I can't refer to _content because it is private in the base
> class.
> The options I'm shuffling:
> - Change the scope from private to protected in PopUp.as and leave the
> code that I have shown above.
> - Change the override to something like this: (work)
>
>
>                                override public function set
> content(value:org.apache.royale.core.UIBase):void
>
>                                {
>
>                                                if(content != value)
>
>                                                {
>
>
>  super.content = value;
>
>
>  content.className="jewel contextmenupopupcontent";
>
>                                                }
>
>                                }
> - Or, clone PopUp.as and change what I need directly.
>
> How would you extend PopUp?
>
> Hiedra
>
>

-- 

Piotr Zarzycki

Reply via email to