RFC: Loading animation for applets

Omair Majid omajid at redhat.com
Wed May 27 13:38:59 PDT 2009


Deepak Bhole wrote:
> * Omair Majid <omajid at redhat.com> [2009-05-27 15:36]:
>> Deepak Bhole wrote:
>>> * Omair Majid <omajid at redhat.com> [2009-05-27 13:31]:
>>>> Hi,
>>>>
>>>> The attached patch adds an applet loading animation for IcedTeaPlugin 
>>>> to  icedtea6.
>>>>
>>>> The patch adds binary files (images). A mercurial bundle is available 
>>>>  from 
>>>> http://icedtea.classpath.org/~omajid/applet-loading-animation.hg.   
>>>> (Use hg unbundle to apply it.)
>>>>
>>>> The main change is adding an animator class to NetxPanel. This   
>>>> PluginAppetLoadingAnimator shows the animation in the panel until the 
>>>>  applet has initialized. To have the animator stop when the applet 
>>>> has  finished initializing, extra events have been added. All these 
>>>> events  are now sent by AppletPanel instead of NetxPanel since only 
>>>> AppletPanel  knows exactly what the state of the applet it.
>>>>
>>> I see you are patching AppletPanel. Can't this be done instead by
>>> drawing the image in a panel added to the main applet panel via  
>>> PluginAppletViewer? Changing upstream classes for the plugin should be
>>> avoided unless absolutely necessary...
>>>
>> The hook for the image drawing code is through NetxPanel which is not  
>> part of upstream. The patch to AppletPanel makes the applet emit more  
>> events to any AppletListener listening. This allows us to find out when  
>> Applet.init() completes and stop the animation, which matches the  
>> behaviour of Sun's plugin. Without this patch, the animation would only  
>> display until init() is called.
>>
>> I agree about patching upstream classes, but I couldn't see any other  
>> way to find out when init() has completed (short of adding more code and  
>> a specialized listener class to AppletPanel). If you still think this is  
>> a bad idea, let me know, and I will remove it.
>>
> 
> That is the only time we should be drawing for, should we not? I thought
> the Sun plugin drew only while the jars were downloading, and then
> delegated to the applet? If the applet has a splash screen that it
> displays in its init(), wouldn't this patch override it with our splash?
> 

Sun's plugin draws while init() is running, just like this patch. I will 
try to fix this so the applet has full control after init() starts.

Cheers,
Omair



More information about the distro-pkg-dev mailing list