Hi Alex,
Working at last! :)
that was the trick, I left the Piotr changes so we remove one HTML
dependency (RadioButtonIcon)
I was not setting up the listener you told me, and the clue was in your
last one.
COMPILE::JS
override public function addEventListener(type:String,
handler:Function, opt_capture:Boolean = false, opt_handlerScope:Object =
null):void
{
if (type == "click")
{
icon.addEventListener(type, handler, opt_capture);
}
else
{
super.addEventListener(type, handler, opt_capture,
opt_handlerScope);
}
}
and could remove all the dead code and do some cleaning :)
Thanks! :)
2017-02-03 18:21 GMT+01:00 Alex Harui <[email protected]>:
> I don't understand the changes you and Piotr have been making.
> -Why does RadioButtonIcon not extend EventDispatcher or UIBase?
> -Why did Piotr replace RadioButtonIcon with an HTMLInputElement?
> -Why are both of you calling the clickHandler? It shouldn't be needed.
>
> I did not use Piotr's last change or yours. Instead I commented out the
> one call to call clickHandler when the element dispatches a click:
>
> //element.addEventListener("click", clickHandler, false);
>
>
> Then I put in the following:
>
> override public function addEventListener(type:String, handler:Function,
> opt_capture:Boolean = false, opt_handlerScope:Object = null):void
> {
> if (type == "click")
> icon.element.addEventListener(type, handler, opt_capture);
> else
> super.addEventListener(type, handler, opt_capture, opt_handlerScope);
> }
>
> And everything appears to be working for me. Please try it this way so I
> don't have to spend time debugging the recent changes you have made. And
> if there is a problem, please explain as clearly as you can what the
> problem is.
>
> I'm assuming the code is setting up the DOM just like the "no-Flex"
> example I posted yesterday. In that example, there appears to be enough
> code in the MDL JS file to make the RadioButtons function correctly
> without any FlexJS code involved. So, in theory, all the FlexJS code
> should be doing is setting up the DOM correctly and then the getters and
> setters and event listeners should just be monitoring the DOM widgets and
> dispatching new events as needed. I don't understand why the code in
> clickHandler should be needed at all.
>
>
> HTH,
> -Alex
>
> On 2/3/17, 12:30 AM, "[email protected] on behalf of Carlos Rovira"
> <[email protected] on behalf of [email protected]>
> wrote:
>
> >Hi Alex,
> >
> >for "App counter" I'm referring to the example in MDLExample or the same
> >in
> >MDLRadioButton example that I uploaded for Peter and you to check.
> >
> >I'm saying that click is working as you said, internaly to the class. I
> >don't recognize the code diff you post.
> >
> >this is the last one:
> >
> >COMPILE::JS
> > override public function addEventListener(type:String,
> >handler:Function, opt_capture:Boolean = false, opt_handlerScope:Object =
> >null):void
> > {
> > if (type == "click")
> > {
> > icon.addEventListener("click", clickHandler, false); <--
> >this is working ok
> > }
> > else
> > {
> > super.addEventListener(type, handler);
> > }
> > }
> >
> >and
> >
> >COMPILE::JS
> > public function clickHandler(event:Event):void
> > {
> > selected = !selected; <-- this is called too as I click a RB
> > }
> >
> >as I click In a radio button, I see clickHandler is called, but, in my App
> >the event is not reaching since the counter is not incremented
> >
> >I mean here one instance of RadioButton in the App is like this:
> >
> ><mdl:RadioButton groupName="g2" text="Black" click="counter7++"/>
> >
> ><js:Label text="RadioButtons throw 'click' event {counter7} times"/>
> >
> >and the label is not getting incremented.
> >
> >Hope is more clear now
> >
> >Thanks
> >
> >
> >2017-02-03 0:41 GMT+01:00 Alex Harui <[email protected]>:
> >
> >> What is the "App counter"?
> >>
> >> Without taking Piotr's or your changes and just doing the changes below,
> >> the click event counter increments as expected.
> >>
> >> -Alex
> >>
> >> diff --git
> >> a/frameworks/projects/MaterialDesignLite/src/main/
> >> flex/org/apache/flex/mdl/
> >> RadioButton.as
> >> b/frameworks/projects/MaterialDesignLite/src/main/
> >> flex/org/apache/flex/mdl/
> >> RadioButton.as
> >> index 0366013..001c587 100644
> >> ---
> >> a/frameworks/projects/MaterialDesignLite/src/main/
> >> flex/org/apache/flex/mdl/
> >> RadioButton.as
> >> +++
> >> b/frameworks/projects/MaterialDesignLite/src/main/
> >> flex/org/apache/flex/mdl/
> >> RadioButton.as
> >> @@ -321,7 +321,7 @@ package org.apache.flex.mdl
> >> (icon.element as WrappedHTMLElement).flexjs_wrapper =
> this;
> >> (radio as WrappedHTMLElement).flexjs_wrapper = this;
> >>
> >> - element.addEventListener("click", clickHandler, false);
> >> + //element.addEventListener("click", clickHandler, false);
> >>
> >> return element;
> >> };
> >> @@ -464,6 +464,15 @@ package org.apache.flex.mdl
> >> }
> >> }
> >> }
> >> +
> >> + override public function addEventListener(type:String,
> >> handler:Function, opt_capture:Boolean = false, opt_handlerScope:Object =
> >> null):void
> >> + {
> >> + if (type == "click")
> >> + icon.element.addEventListener(type,
> >> handler, opt_capture);
> >> + else
> >> + super.addEventListener(type, handler,
> >> opt_capture, opt_handlerScope);
> >> + }
> >> +
> >> /**
> >> * @param e The event object.
> >> */
> >>
> >>
> >>
> >
> >
> >--
> >
> >Carlos Rovira
> >Director General
> >M: +34 607 22 60 05
> >http://www.codeoscopic.com
> >http://www.avant2.es
> >
> >Este mensaje se dirige exclusivamente a su destinatario y puede contener
> >información privilegiada o confidencial. Si ha recibido este mensaje por
> >error, le rogamos que nos lo comunique inmediatamente por esta misma vía y
> >proceda a su destrucción.
> >
> >De la vigente Ley Orgánica de Protección de Datos (15/1999), le
> >comunicamos
> >que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC
> >S.A. La finalidad de dicho tratamiento es facilitar la prestación del
> >servicio o información solicitados, teniendo usted derecho de acceso,
> >rectificación, cancelación y oposición de sus datos dirigiéndose a
> >nuestras
> >oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación
> >necesaria.
>
>
--
Carlos Rovira
Director General
M: +34 607 22 60 05
http://www.codeoscopic.com
http://www.avant2.es
Este mensaje se dirige exclusivamente a su destinatario y puede contener
información privilegiada o confidencial. Si ha recibido este mensaje por
error, le rogamos que nos lo comunique inmediatamente por esta misma vía y
proceda a su destrucción.
De la vigente Ley Orgánica de Protección de Datos (15/1999), le comunicamos
que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC
S.A. La finalidad de dicho tratamiento es facilitar la prestación del
servicio o información solicitados, teniendo usted derecho de acceso,
rectificación, cancelación y oposición de sus datos dirigiéndose a nuestras
oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación
necesaria.