/******************************************************************************* * Copyright 2005-2007, CHISEL Group, University of Victoria, Victoria, BC, * Canada. All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which * accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: The Chisel Group, University of Victoria ******************************************************************************/ package org.eclipse.zest.tests.swt; import org.eclipse.zest.core.widgets.Graph; import org.eclipse.zest.core.widgets.GraphConnection; import org.eclipse.zest.core.widgets.GraphNode; import org.eclipse.zest.layouts.LayoutStyles; import org.eclipse.zest.layouts.algorithms.SpringLayoutAlgorithm; import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseMoveListener; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; /** * This snippet shows how to use the findFigureAt to get the figure under the mouse * * @author Ian Bull * */ public class GraphSnippet7 { /** * @param args */ public static void main(String[] args) { Display d = new Display(); Shell shell = new Shell(d); shell.setText("GraphSnippet7"); shell.setLayout(new FillLayout()); shell.setSize(400, 400); final Graph g = new Graph(shell, SWT.NONE); GraphNode n = new GraphNode(g, SWT.NONE, "Paper"); GraphNode n2 = new GraphNode(g, SWT.NONE, "Rock"); GraphNode n3 = new GraphNode(g, SWT.NONE, "Scissors"); new GraphConnection(g, SWT.NONE, n, n2); new GraphConnection(g, SWT.NONE, n2, n3); new GraphConnection(g, SWT.NONE, n3, n); g.setLayoutAlgorithm(new SpringLayoutAlgorithm(LayoutStyles.NO_LAYOUT_NODE_RESIZING), true); g.addMouseMoveListener(new MouseMoveListener() { public void mouseMove(MouseEvent e) { // Get the figure at the current mouse location Object o = g.getFigureAt(e.x, e.y); if ( o != null ) { System.out.println(o + " is at: (" + e.x + "," + e.y + ")"); } } }); shell.open(); while (!shell.isDisposed()) { while (!d.readAndDispatch()) { d.sleep(); } } } }