Re: 2 displays for one cross section (different GriddedSets) (fwd)

Hi Stu:

On Fri, 17 Aug 2001, Stu Wier wrote:
> Tom,
> 
> > I might be naive, but I'd use a CellImpl to listen for changes in your
> > sliceFF (or the user interface), and then inside its doAction()
> > method, I'd get the data from sliceFF and make slide2D, as you described
> > ...including a setData into the DataReference you're using for
> > the 2D display.  Does that make sense?

> Thanks for the help.  I have not used Cell or doAction at all, so
> I will learn about it and look into it and tell you how it works.
> 

Take a look at Test00.java.

Also, here's a small example I put together for ABoM training:

// import needed classes
import visad.*;
import visad.java2d.DisplayImplJ2D;
import visad.java2d.DirectManipulationRendererJ2D;
import java.rmi.RemoteException;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Dot {

  // type 'java Dot' to run this application
  public static void main(String args[])
         throws VisADException, RemoteException {

    final RealType x = new RealType("x");
    final RealType y = new RealType("y");
    Real[] coord = new Real[] {new Real(x,.7), new Real(y,-.3)};
    RealTuple coord_tuple = new RealTuple(coord);

    DisplayImpl disp = new DisplayImplJ2D("display");

    ScalarMap sx = new ScalarMap(x, Display.XAxis);
    sx.setRange(-1.0, 1.0);
    disp.addMap(sx);
    ScalarMap sy = new ScalarMap(y, Display.YAxis);
    sy.setRange(-1.0, 1.0);
    disp.addMap(sy);

    DataReferenceImpl ref_coord_tuple = new DataReferenceImpl("ref_c_t");
    ref_coord_tuple.setData(coord_tuple);

    GraphicsModeControl gmc = disp.getGraphicsModeControl();
    gmc.setPointSize(5.f);
    gmc.setPointMode(true);

    // for simple dipslay, use
    //disp.addReference(ref_coord_tuple);

    // ...or...for interactive display, use
    disp.addReferences(new DirectManipulationRendererJ2D(), ref_coord_tuple);
    
    // to list out the values at the cursor
    final DisplayRenderer dr = disp.getDisplayRenderer();

    CellImpl cell = new CellImpl() {
      public void doAction() throws VisADException {
        double xcoord = dr.getDirectAxisValue(x);
        double ycoord = dr.getDirectAxisValue(y);
        System.out.println("x,y ="+xcoord+"  "+ycoord);
      }
    };
    cell.addReference(ref_coord_tuple);
    // end of list out values addition...
    
    JFrame frame = new JFrame("Dot Application");
    frame.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {System.exit(0);}
    });

    // create JPanel in JFrame
    JPanel panel = new JPanel();
    frame.getContentPane().add(disp.getComponent());

    // set size of JFrame and make it visible
    frame.setSize(300, 300);
    frame.setVisible(true);
  }
}


And a similar example in the Jython tutorial:

http://www.ssec.wisc.edu/~tomw/visadtutor/t7example.html

(actually this will give you the flavor even if you're using that
"other" J language...)

Have a good weekend!

tom

--
Tom Whittaker  (tomw@xxxxxxxxxxxxx)
University of Wisconsin-Madison
Space Science and Engineering Center
Phone/Voicemail: 608/262-2759  
Fax: 608/263-6738



  • 2001 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the visad archives: