NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Ugo,Many thanks for that tip. Basically it worked (after translation to Jython, and a little tweaking).
-Frank At 03:26 AM 8/14/2002, you wrote:
Hi Frank, Frank Gibbons wrote: > > Thanks for yesterday's tip, Bill, on getting two displays into a single > container. I've been playing around with different layout managers. I > notice that with FlowLayout and GridLayout, the displays are always square. > How do I control the geometry of the displays? I'd like them to make better > use of my screen real estate, by conforming to the JFrame geometry, but > they only obey the vertical size of the container, not its horizontal size. Perhaps what you want is described in: http://www.geogr.uni-jena.de/~p6taug/visad/tutorial/s4/Section4.html#section4_12 If you display is in a JFrame, then you can also: jFrame.addComponentListener( new ComponentAdapter(){ public void componentResized(ComponentEvent e) { if(sticky){ // if sticky, VisAD display takes dimensions of parent frame Dimension dim = display.getComponent().getSize();// jFrame.getSize(); int x = dim.width; int y = dim.height; double f = (x >= y) ? (double) x : (double) y; setAspect( new double[]{1,(double) y/f, 1} ); // see below... } } }); where public void setAspect(double[] aspect){ try{ ProjectionControl projCont = display.getProjectionControl(); // display is you VisAD.DisplayImpl projCont.setAspectCartesian(aspect); } catch (RemoteException re) {re.printStackTrace(); } catch (VisADException ve) {ve.printStackTrace();} } Note the difference between projCont.setAspectCartesian(aspect); -> keeps proportions and projCont.setAspect(aspect); -> squeezes axis (fonts, cross-cursor,...) according to aspect. If you have display inside some other component, then use the appropriate listener. > > Forgive me if this is an obvious window-manager issue. But I thought > GridLayout should control both dimensions of the geometry. Hope that helps. > > Thanks for any suggestions, as always. > > -Frank > > PhD, Computational Biologist,> Harvard Medical School BCMP/SGM-322, 250 Longwood Ave, Boston MA 02115, USA.> Tel: 617-432-3555 Fax: > 617-432-3557 http://llama.med.harvard.edu/~fgibbons Cheers, Ugo
PhD, Computational Biologist, Harvard Medical School BCMP/SGM-322, 250 Longwood Ave, Boston MA 02115, USA.Tel: 617-432-3555 Fax: 617-432-3557 http://llama.med.harvard.edu/~fgibbons
visad
archives: