Hi Ralf,

I will try to answer your questions 2 and 3.

2) I have tried to reproduce your issue, but I couldn't reproduce it. 
With my example I always get one event fired. Could you please send a 
code snippet that reproduce your issue. Thanks

3) Could you please open a bug report for this.

Thanks,
Chris

Martin Wittemann schrieb:
> Hello Ralf,
> first of all thank you very much for the detailed description. This 
> gives us a good insight into your problems during the development.
> Im not the expert in all of your mentioned fields so I just pick some 
> of the statements and try to comment on them. Alex and Christian will 
> sure take care of the rest. :)
>
> 4. Thats right. You sure know that the trunk is moving fast and so the 
> input event is not deprecated anymore. We decided to offer both 
> possibilities, the input event or the changeValue event with 
> liveUpdate switched to true. So nothing you should care about in the 
> written application. Just for your information that you could use both 
> events next time.
>
> Best wished,
> Martin
>
>
> Am 05.07.2009 um 16:26 schrieb Ralf Nieuwenhuijsen:
>
>> I've had to create an app in an extreme hurry to save somebody's ass. 
>> ( a 2000 lines of qooxdoo code and my coworker working flash in 48 
>> hours with no sleep ;-)
>> In the procces i've found some weird behaviors, that I quickly wrote 
>> away.
>>
>> This is the summery of those issues. Perhaps some are real bugs, but 
>> most are not.  These issues apply to the trunk ( i needed the flash 
>> embed! ), some may also apply to older versions.
>> At the very least I wasn't able at that time, to do proper 
>> investigation. There are here for your information, perhaps you'll 
>> come across some of them as well. Perhaps some, now I have the time, 
>> warrant further investigation.
>>
>> *1. You can't change the source url of an PNG image, nor can you 
>> destroy the image container, on IE6/IE7.
>> *The error message is actually given by qooxdoo itself, 
>> unfortunately, it is only triggered on IE.
>>
>> Workarounds:
>>  -  use another format if the image needs to be changeable or destroyable
>>  - set visibility to Hidden and use a canvas element. Be aware that 
>> this solution costs increasingly more memory. But if the set of 
>> possible images is going to be fixed size, not really a problem.
>>
>> Why this isn't a real bug:
>>  - it seems a normal limitation of the png-transparency hack. It 
>> would be nice if this bug would always throw, also on other browser 
>> though!
>>
>> *2. TabView throws two changeSelection events when the user actually 
>> clicks on another tab*.
>> I dunno why. Perhaps first to deselect the current tab and then to 
>> select the new tab?
>>
>> Workarounds:
>> - ignore one of the two
>> - make your app reliable enough to not care about it being thrown twice
>>
>> Why this isn't a real bug:
>>  - It is defendable that inbetween tab 1 and tab 2 being selected, no 
>> tab is selected. It might be nice to have the guarantee that a 
>> TabView never ever has a null-selection.
>>
>> *3. Embedding flash, if resized, doesn't deal with focus properly on 
>> Linux/FF combination.*
>> If you click on the flash widget, it adds focus borders and input 
>> events from that point do not enter the flash app. Click somewhere 
>> else to make it loose 'qooxdoo' focus and then the next click will be 
>> registered.
>>
>> Workarounds:
>> - call setTabIndex(1); on the flash widget. Dunno why this works, but 
>> it makes the problem go away.
>>
>> Why this isn't a real bug:
>> - It's an alpha version of flash, and I haven't been able to pinpoint 
>> the exact preconditions that trigger this.
>>
>> *4. Input event is deprecated now.*
>> And keypress isn't really a valid alternative, since it is thrown 
>> _before_ the value actually changes
>>
>> Workarounds:
>>  - just use changeValue and turn on and use  
>> 'myTextField.setLiveUpdate( true );'
>>
>> Why this isn't a real bug:
>> - The workaround is a much nicer construct. It just took a while to 
>> figure out the new alternative. Perhaps it would be nice if the error 
>> message would talk about setLiveUpdate.
>>
>> *5. Animations can only be added to widgets that are already on the 
>> screen!
>> *The actual code to create an animation seems really low-level as 
>> well. You have to get a dom-node which only exists if a widget has 
>> 'appeared' on the screen.
>>
>> Workarounds:
>>  - move your animation creation code into an 
>> myWidget.addListener('appear', function(){
>>   // put it here!
>> }), myWidget);
>>
>> Why this isn't a real bug:
>> - It's just a questionable api design choice here. I would prefer to 
>> be able to to either add the animation to the widget and have the 
>> dom-details handeled by Qooxdoo.
>>
>> What about just adding a:
>>
>>   // sort of pseudo-code to explain the idea
>>   qx.ui.core.Widget.startAnimation: function( vAnim ){   
>>     if( this.getContainerElement().getDomElement() ){
>>       vAnim.setTargetNode( this.getContainerElement().getDomElement() 
>> );  // this method should be made available obviously
>>       vAnim.start();
>>     } else {
>>       this.addListenerOnce('appear', function() {
>>         vAnim.setTargetNode( 
>> this.getContainerElement().getDomElement() );  // this method should 
>> be made available obviously
>>         vAnim.start();
>>      }, this);
>>   }
>> }
>>
>> A nice bonus of such an architecture would be that we could reuse 
>> animation objects!
>> (Perhaps we already can but it wasn't very clear! I just create a new 
>> animation object for each and every subsequent animation)
>>
>> *6. You can't add an animation to a qx.ui.basic.image! *
>>
>> Workaround:
>>  - You need to put it into a qx.ui.container.Composite or 
>> qx.ui.container.Basic .. first, and add the animation to that.
>>
>> Why this isn't a real bug:
>>  - it seems logical you can't add animation to all types of gui 
>> objects, but at least it should throw a decent error message.
>>
>> *7. The positional modes of qx.fx.effect.core.Move 'absolute' and 
>> 'relative' do not do what you think they do.*
>> They are about whether positions are relative or absolute compared to 
>> the initial position of the widget. They are about subsequent 
>> animations, for one single animation they two modes do the exact same 
>> thing.
>>
>> Workaround:
>>   - to get a true 'absolute' position subtract the qooxdoo-top and 
>> qooxdoo-left properties of widgets
>>   - to get a true 'relative' position call it 'absolute'.
>>   - to get the subsequent 'relative' positions: either use 'relative' 
>> or update the qooxdoo-left and qooxdoo-top when the animation finishes.
>>
>> Why this isn't a real bug:
>> - it's just a matter of explaining the implementation better in the 
>> documentation I guess. The behavior where the animations take place 
>> in another realm and not deal with layout managers, seems the 
>> preferred choice, it's just that this choice should be communicated.
>>
>> Greetings,
>> Ralf
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> qooxdoo-devel mailing list
>> [email protected] 
>> <mailto:[email protected]>
>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>   


-- 
Christian Schmidt
Software Entwickler

1&1 Internet AG - Web Technologies
Ernst-Frey-Straße 9 · DE-76135 Karlsruhe
[email protected]

Amtsgericht Montabaur / HRB 6484
Vorstände: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich, Thomas 
Gottschlich, Robert Hoffmann, Markus Huhn, Hans-Henning Kettler, Dr. Oliver 
Mauss, Jan Oetjen
Aufsichtsratsvorsitzender: Michael Scheeren


------------------------------------------------------------------------------
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to