
com.mxgraph.swing.handler.mxPanningHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jgraphx Show documentation
Show all versions of jgraphx Show documentation
JGraphX Swing Component - Java Graph Visualization Library
This is a binary & source redistribution of the original, unmodified
JGraphX library originating from:
"https://github.com/jgraph/jgraphx/archive/v3.3.1.1.tar.gz".
The purpose of this redistribution is to make the library available
to other Maven projects.
The newest version!
/**
* Copyright (c) 2008, Gaudenz Alder
*/
package com.mxgraph.swing.handler;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import com.mxgraph.swing.mxGraphComponent;
import com.mxgraph.swing.util.mxMouseAdapter;
/**
*
*/
public class mxPanningHandler extends mxMouseAdapter
{
/**
*
*/
private static final long serialVersionUID = 7969814728058376339L;
/**
*
*/
protected mxGraphComponent graphComponent;
/**
*
*/
protected boolean enabled = true;
/**
*
*/
protected transient Point start;
/**
*
* @param graphComponent
*/
public mxPanningHandler(mxGraphComponent graphComponent)
{
this.graphComponent = graphComponent;
graphComponent.getGraphControl().addMouseListener(this);
graphComponent.getGraphControl().addMouseMotionListener(this);
}
/**
*
*/
public boolean isEnabled()
{
return enabled;
}
/**
*
*/
public void setEnabled(boolean value)
{
enabled = value;
}
/**
*
*/
public void mousePressed(MouseEvent e)
{
if (isEnabled() && !e.isConsumed() && graphComponent.isPanningEvent(e)
&& !e.isPopupTrigger())
{
start = e.getPoint();
}
}
/**
*
*/
public void mouseDragged(MouseEvent e)
{
if (!e.isConsumed() && start != null)
{
int dx = e.getX() - start.x;
int dy = e.getY() - start.y;
Rectangle r = graphComponent.getViewport().getViewRect();
int right = r.x + ((dx > 0) ? 0 : r.width) - dx;
int bottom = r.y + ((dy > 0) ? 0 : r.height) - dy;
graphComponent.getGraphControl().scrollRectToVisible(
new Rectangle(right, bottom, 0, 0));
e.consume();
}
}
/**
*
*/
public void mouseReleased(MouseEvent e)
{
if (!e.isConsumed() && start != null)
{
int dx = Math.abs(start.x - e.getX());
int dy = Math.abs(start.y - e.getY());
if (graphComponent.isSignificant(dx, dy))
{
e.consume();
}
}
start = null;
}
/**
* Whether or not panning is currently active
* @return Whether or not panning is currently active
*/
public boolean isActive()
{
return (start != null);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy