This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
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