[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[IDV #HDK-655572]: Weirdness with component groups



Hi
Hi Jonathon,

> 
> The IDV svn repo has been amazing to watch recently. ...I've secretly
> started taking bets on the number of commits per day...
Yuan and I have been on a roll lately. We've been working on storm track data 
and displays.

> 
> Anyway, us McV folks, we love component groups. However, we've noticed
> that sometimes there are occasional problems with drawing "visad
> panels" in the first tab/component holder. Some people, like Tom
> Whittaker, see this problem basically all the time. I see it maybe
> once out of every 10-15 restarts of McV or the IDV, with it happening
> slightly more on Linux than OS X.
> 
> One of the particularly strange things is that aside from the visad
> part, the rest of the UI acts normally. Also, if another panel is
> created or interacted with, the "crazy" visad panel will draw itself!
> 
> Tom Rink and myself are currently thinking it's a threading thing
> (owing to the fact that it doesn't always happen)... any suggestions?
> If you'd like to try to see it, saving off a default bundle that uses
> component groups seems to be the easiest way.
> 


This is  a heavyweight component mixing with lightweight component problem.
I'm actually suprised this doesn't show up more. I have a utility method in 
GuiUtils:
    public static void handleHeavyWeightComponentsInTabs(JTabbedPane)
That sort of fixes this. It listens for tab changes and then recurses down the 
component tree and turns off the visibility of any heavyweight components.

I was not using this for the ComponentGroup but I am checking in a change now 
that does.

To try this out today just change ucar.unidata.ui.ComponentGroup.doMakeContents 
and add the GuiUtils call after the tabbedPane is created:
    public JComponent doMakeContents() {
        desktop        = new JDesktopPane();
        tabbedPane     = new JTabbedPane();
        GuiUtils.handleHeavyWeightComponentsInTabs(tabbedPane);


This is working on my laptop but I'd like to hear if it fixes your problem.

-Jeff


Ticket Details
===================
Ticket ID: HDK-655572
Department: Support IDV
Priority: Normal
Status: Open