[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[IDV #HDK-655572]: Weirdness with component groups
- Subject: [IDV #HDK-655572]: Weirdness with component groups
- Date: Wed, 14 May 2008 03:42:35 -0600
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