The mouse event is handled in MouseManager11.java:
> public void mouseClicked(MouseEvent e) {
> mouseClicked(e.getWhen(), e.getX(), e.getY(), e.getModifiers(),
> e.getClickCount());
> }
This passes to MouseManager.java, where we have:
void mouseClicked(long time, int x, int y, int modifiers, int
clickCount) {
...
int nearestAtomIndex = (drawMode ? -1 :
viewer.findNearestAtomIndex(x, y));
...
}
But can't you just set your statusListener to intercept this action at a
higher level (shown here for the applet)?
class MyStatusListener implements JmolStatusListener {
...
public void notifyAtomPicked(int atomIndex, String strInfo) {
showStatusAndConsole(strInfo);
if (pickCallback != null && jsoWindow != null)
if (pickCallback.equals("alert"))
jsoWindow.call(pickCallback, new Object[] { strInfo });
else
jsoWindow.call(pickCallback, new Object[] { htmlName, strInfo,
new Integer(atomIndex) });
}
...
}
Bob
Maria Brandl wrote:
>We also tried to import Jmol into eclipse to trace the sequence of
>classes called, but were not successful in doing so. Has that been
>done ? Are there any other ways of depicting the flow of commands in
>Jmol ?
>
>
>
Nico and I use Eclipse extensively. There should be no problem starting
an SVN project in Eclipse. He's the expert -- what's the problem in Eclipse?
>Thanks a lot,
>
>Maria
>
>
>
>------------------------------------------------------------------------
>
>// Fig. 11.28: MouseTrackerFrame.java
>// Demonstrating mouse events.
>import java.awt.Color;
>import java.awt.BorderLayout;
>import java.awt.event.MouseListener;
>import java.awt.event.MouseMotionListener;
>import java.awt.event.MouseEvent;
>import javax.swing.JFrame;
>import javax.swing.JLabel;
>import javax.swing.JPanel;
>
>
>import javax.swing.*;
>import java.io.*;
>
>import java.awt.*;
>import java.awt.event.*;
>import java.util.*;
>import javax.swing.*;
>import javax.swing.event.*;
>import javax.swing.table.*;
>// jmol-packages and classes
>import org.openscience.jmol.app.*;
>import org.jmol.api.*;
>//import org.jmol.adapter.cdk.CdkJmolAdapter;
>import org.jmol.adapter.smarter.SmarterJmolAdapter;
>//import org.jmol.util.GT;
>import org.jmol.i18n.GT;
>//import org.openscience.cdk.applications.plugin.CDKPluginManager;
>//import org.openscience.jmol.ui.JmolPopup;
>import Acme.JPM.Encoders.PpmEncoder;
>import com.lowagie.text.Document;
>import com.lowagie.text.DocumentException;
>import com.lowagie.text.pdf.PdfContentByte;
>import com.lowagie.text.pdf.PdfTemplate;
>import com.lowagie.text.pdf.PdfWriter;
>import com.obrador.JpegEncoder;
>import org.jmol.viewer.*;
>
>
>public class MouseTrackerFrame extends JFrame
>{
> private Jmol mousePanel; // panel in which mouse events will occur
> private JLabel statusBar; // label that displays event information
> public JmolViewer viewer;
>
> // MouseTrackerFrame constructor sets up GUI and
> // registers mouse event handlers
> public MouseTrackerFrame()
> {
> super( "Trying to implement additional MouseTracking to Jmol" );
>
> mousePanel = Jmol.getJmol(this,300, 300);
> this.viewer = mousePanel.viewer;
> add( mousePanel, BorderLayout.CENTER ); // add panel to JFrame
>
> statusBar = new JLabel( "Mouse outside JPanel" );
> add( statusBar, BorderLayout.SOUTH ); // add label to JFrame
>
> // create and register listener for mouse and mouse motion events
> MouseHandler handler = new MouseHandler();
> mousePanel.addMouseListener( handler );
> mousePanel.addMouseMotionListener( handler );
> } // end MouseTrackerFrame constructor
>
> private class MouseHandler implements MouseListener,
> MouseMotionListener
> {
> // MouseListener event handlers
> // handle event when mouse released immediately after press
> public void mouseClicked( MouseEvent event )
> {
> statusBar.setText( String.format( "Clicked at [%d, %d]",
> event.getX(), event.getY() ) );
> System.out.println("REGISTERED MOUSECLICK");
> int pos = ((Viewer)viewer).findNearestAtomIndex( event.getX(),
> event.getY());
> int pas = ((Viewer)viewer).findNearestAtomIndex(100, 100);
>
> System.out.println(pos);
> System.out.println(pas);
> if ( pos == -1 ) { return;}
> } // end method mouseClicked
>
>
>
> // handle event when mouse pressed
> public void mousePressed( MouseEvent event )
> {
> statusBar.setText( String.format( "Pressed at [%d, %d]",
> event.getX(), event.getY() ) );
> } // end method mousePressed
>
> // handle event when mouse released after dragging
> public void mouseReleased( MouseEvent event )
> {
> statusBar.setText( String.format( "Released at [%d, %d]",
> event.getX(), event.getY() ) );
> } // end method mouseReleased
>
> // handle event when mouse enters area
> public void mouseEntered( MouseEvent event )
> {
> statusBar.setText( String.format( "Mouse entered at [%d, %d]",
> event.getX(), event.getY() ) );
> // mousePanel.setBackground( Color.GREEN );
> } // end method mouseEntered
>
> // handle event when mouse exits area
> public void mouseExited( MouseEvent event )
> {
> statusBar.setText( "Mouse outside JPanel" );
> // mousePanel.setBackground( Color.WHITE );
> } // end method mouseExited
>
> // MouseMotionListener event handlers
> // handle event when user drags mouse with button pressed
> public void mouseDragged( MouseEvent event )
> {
> statusBar.setText( String.format( "Dragged at [%d, %d]",
> event.getX(), event.getY() ) );
> } // end method mouseDragged
>
> // handle event when user moves mouse
> public void mouseMoved( MouseEvent event )
> {
> statusBar.setText( String.format( "Moved at [%d, %d]",
> event.getX(), event.getY() ) );
> } // end method mouseMoved
>
>
> } // end inner class MouseHandler
>} // end class MouseTrackerFrame
>
>
>
>------------------------------------------------------------------------
>
>// Fig. 11.29: MouseTrackerFrame.java
>import javax.swing.JFrame;
>
>import javax.swing.*;
>import java.io.*;
>
>import java.awt.*;
>import java.awt.event.*;
>import java.util.*;
>import javax.swing.*;
>import javax.swing.event.*;
>import javax.swing.table.*;
>// jmol-packages and classes
>import org.openscience.jmol.app.*;
>import org.jmol.api.*;
>//import org.jmol.adapter.cdk.CdkJmolAdapter;
>import org.jmol.adapter.smarter.SmarterJmolAdapter;
>//import org.jmol.util.GT;
>import org.jmol.i18n.GT;
>//import org.openscience.cdk.applications.plugin.CDKPluginManager;
>//import org.openscience.jmol.ui.JmolPopup;
>import Acme.JPM.Encoders.PpmEncoder;
>import com.lowagie.text.Document;
>import com.lowagie.text.DocumentException;
>import com.lowagie.text.pdf.PdfContentByte;
>import com.lowagie.text.pdf.PdfTemplate;
>import com.lowagie.text.pdf.PdfWriter;
>import com.obrador.JpegEncoder;
>import org.jmol.viewer.*;
>
>
>public class MouseTracker
>{
> public static void main( String args[] )
> {
> MouseTrackerFrame mouseTrackerFrame = new MouseTrackerFrame();
> mouseTrackerFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
> mouseTrackerFrame.setVisible( true ); // display frame
> } // end main
>} // end class MouseTracker
>
>
>
>------------------------------------------------------------------------
>
>-------------------------------------------------------------------------
>Take Surveys. Earn Cash. Influence the Future of IT
>Join SourceForge.net's Techsay panel and you'll get the chance to share your
>opinions on IT & business topics through brief surveys -- and earn cash
>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Jmol-developers mailing list
>[email protected]
>https://lists.sourceforge.net/lists/listinfo/jmol-developers
>
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Jmol-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-developers