Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save timaschew/1122827 to your computer and use it in GitHub Desktop.
Save timaschew/1122827 to your computer and use it in GitHub Desktop.
funktioniert nicht so ganz
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