Created
August 3, 2011 14:55
-
-
Save timaschew/1122827 to your computer and use it in GitHub Desktop.
funktioniert nicht so ganz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
final EditingModalGraphMouse<Number,Number> graphMouse = | |
new EditingModalGraphMouse<Number,Number>(vv.getRenderContext(), vertexFactory, edgeFactory, 1,1); | |
graphMouse.setZoomAtMouse(false); | |
// the EditingGraphMouse will pass mouse event coordinates to the | |
// vertexLocations function to set the locations of the vertices as | |
// they are created | |
// graphMouse.setVertexLocations(vertexLocations); | |
vv.setGraphMouse(graphMouse); | |
vv.addKeyListener(graphMouse.getModeKeyListener()); | |
vv.addMouseWheelListener(new MouseWheelListener() { | |
Point down = new Point(); | |
private int previous = 0; | |
@Override | |
public void mouseWheelMoved(MouseWheelEvent e) { | |
VisualizationViewer vv = (VisualizationViewer)e.getSource(); | |
if(true) { | |
MutableTransformer modelTransformer = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT); | |
// try { | |
JScrollBar sb = (JScrollBar)e.getSource(); | |
BoundedRangeModel m = sb.getModel(); | |
int vval = m.getValue(); | |
float dv = previous - vval; | |
previous = vval; | |
int hval = e.getUnitsToScroll(); | |
float dh = hval; | |
// float dh = previous - hval; | |
// previous = hval; | |
System.out.println("mouse scroll: "+dh); | |
if(dh != 0) { | |
// get the uniform scale of all transforms | |
float layoutScale = (float) vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT).getScale(); | |
dh *= layoutScale; | |
System.out.println("dh * scaled: "+dh); | |
AffineTransform at = AffineTransform.getTranslateInstance(0, -dh); | |
vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT).preConcatenate(at); | |
} | |
// Point2D q = vv.getRenderContext().getMultiLayerTransformer().inverseTransform(down); | |
// Point2D p = vv.getRenderContext().getMultiLayerTransformer().inverseTransform(e.getPoint()); | |
// float dx = (float) (p.getX()-q.getX()); | |
// float dy = (float) (p.getY()-q.getY()); | |
// | |
// modelTransformer.translate(dx, dy); | |
// down.x = e.getX(); | |
// down.y = e.getY(); | |
// } catch(RuntimeException ex) { | |
// System.err.println("down = "+down+", e = "+e); | |
// throw ex; | |
// } | |
// | |
e.consume(); | |
vv.repaint(); | |
} | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment