<Swing Dev> <AWT Dev> Review request #3: 6852592 (revalidate() must be smarter)

Anthony Petrov Anthony.Petrov at Sun.COM
Thu Jul 23 18:03:28 UTC 2009


Hi Christopher,

On 7/23/2009 7:06 PM Christopher Deckers wrote:
>>    applet.getParent().validate();
> 
> I remember a project where we had an Web 2.0 like page that contained
> many applets. We decided to rewrite the UI framework in Swing but the
> applets couldn't be migrated: applets were simple components for the
> web page and became simple components of our Swing application.
> Why would isValidateRoot not be coded like this for applets:
> return getParent() == null? true: false;
Applets always have a parent: it's either an embedded frame on the 
web-page, or your own container (such as a JFrame, or whatever). So this 
condition is not going to work as we would like it to.

> And as to how we would validate it, if the applet contains some Swing
> code, I guess users would not even notice what is happening behind the
> scene:
> someComponentInTheApplet.revalidate();
Calling the validate() method indicates that Artem is referring to an 
AWT application.

> Note that I don't particularily care about whether or not applets are
> validate roots, such applet integration is not very common.
Do the applets migrated from a web-page into your application resize 
themselves? If not, that means that they do not actually affect the 
layout of their containers, which, in turn, is the definition for 
validate roots. I bet in most cases the size of applets is specified by 
their embedder - a web-page, or an application. So I believe making the 
Applet class a validate root should not harm much. Though if in 0.001% 
of cases it does harm, one may easily override the method in their 
applet to return false, like: myContainer.add(new MyApplet() { public 
boolean isValidateRoot() { return false; } });

--
best regards,
Anthony



More information about the swing-dev mailing list