/* Copyright 2008-2010 Gephi Authors : Mathieu Bastian <mathieu.bastian@gephi.org> Website : http://www.gephi.org This file is part of Gephi. Gephi is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Gephi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with Gephi. If not, see <http://www.gnu.org/licenses/>. */ package org.gephi.tools.spi; import org.gephi.graph.api.Node; /** * Tool mouse press and dragging listener. Listen to a single node press on the * visualization window and trigger selected nodes, then triggers continuously * the recorded drag displacement. * <p> * The drag displacement is the difference between the start position and the * current position in a 2D bottom-left coordinate system. * <p> * A tool which declares this listener is notified at a certain rate, up to * multiple times per second, the selected nodes. * * @author Mathieu Bastian * @see Tool */ public interface NodePressAndDraggingEventListener extends ToolEventListener { /** * Notify <code>nodes</code> have been pressed by user on the visualization window. * @param nodes the clicked nodes */ public void pressNodes(Node[] nodes); /** * Notify mouse is dragging */ public void drag(float displacementX, float displacementY); /** * Notify mouse has been released. */ public void released(); }