X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FRotatableCanvas.java;h=87266b46e51f1da6ff555387520bd17d68653d62;hb=3d64f036a9efc527f8f45ef43ead4c3bb64ae448;hp=2a49d0be7453792b970b0ed9797a9d39e059fa33;hpb=b04c79d1a830aa7ae7b88b2a5ddd07c9216c826f;p=jalview.git diff --git a/src/jalview/appletgui/RotatableCanvas.java b/src/jalview/appletgui/RotatableCanvas.java index 2a49d0b..87266b4 100755 --- a/src/jalview/appletgui/RotatableCanvas.java +++ b/src/jalview/appletgui/RotatableCanvas.java @@ -145,7 +145,7 @@ public class RotatableCanvas extends Panel implements MouseListener, scale = findScale(); - // System.out.println("Scale factor = " + scale); + // jalview.bin.Console.outPrintln("Scale factor = " + scale); addMouseListener(this); addKeyListener(this); @@ -301,7 +301,7 @@ public class RotatableCanvas extends Panel implements MouseListener, scale = findScale(); - // System.out.println("New scale = " + scale); + // jalview.bin.Console.outPrintln("New scale = " + scale); img = createImage(getSize().width, getSize().height); ig = img.getGraphics(); @@ -331,8 +331,10 @@ public class RotatableCanvas extends Panel implements MouseListener, for (int i = 0; i < 3; i++) { g.drawLine(getSize().width / 2, getSize().height / 2, - (int) (axisEndPoints[i].x * scale * max[0] + getSize().width / 2), - (int) (axisEndPoints[i].y * scale * max[1] + getSize().height / 2)); + (int) (axisEndPoints[i].x * scale * max[0] + + getSize().width / 2), + (int) (axisEndPoints[i].y * scale * max[1] + + getSize().height / 2)); } } @@ -353,8 +355,7 @@ public class RotatableCanvas extends Panel implements MouseListener, sequenceColour == Color.black ? Color.white : sequenceColour); if (av.getSelectionGroup() != null) { - if (av.getSelectionGroup().getSequences(null) - .contains(sequence)) + if (av.getSelectionGroup().getSequences(null).contains(sequence)) { g.setColor(Color.gray); } @@ -392,17 +393,41 @@ public class RotatableCanvas extends Panel implements MouseListener, @Override public void keyPressed(KeyEvent evt) { - if (evt.getKeyCode() == KeyEvent.VK_UP) + boolean shiftDown = evt.isShiftDown(); + int keyCode = evt.getKeyCode(); + if (keyCode == KeyEvent.VK_UP) { - zoom(1.1f); + if (shiftDown) + { + rotate(0f, -1f); + } + else + { + zoom(1.1f); + } } - else if (evt.getKeyCode() == KeyEvent.VK_DOWN) + else if (keyCode == KeyEvent.VK_DOWN) { - zoom(0.9f); + if (shiftDown) + { + rotate(0f, 1f); + } + else + { + zoom(0.9f); + } + } + else if (shiftDown && keyCode == KeyEvent.VK_LEFT) + { + rotate(1f, 0f); + } + else if (shiftDown && keyCode == KeyEvent.VK_RIGHT) + { + rotate(-1f, 0f); } else if (evt.getKeyChar() == 's') { - System.err.println("DEBUG: Rectangle selection"); // log.debug + jalview.bin.Console.errPrintln("DEBUG: Rectangle selection"); // log.debug if (rectx2 != -1 && recty2 != -1) { rectSelect(rectx1, recty1, rectx2, recty2); @@ -525,8 +550,7 @@ public class RotatableCanvas extends Panel implements MouseListener, { if (av != null) { - if (!av.getSelectionGroup().getSequences(null) - .contains(sequence)) + if (!av.getSelectionGroup().getSequences(null).contains(sequence)) { av.getSelectionGroup().addSequence(sequence, true); } @@ -555,10 +579,8 @@ public class RotatableCanvas extends Panel implements MouseListener, { SequencePoint sp = points.get(i); - int px = (int) ((sp.coord.x - centre.x) * scale) - + halfwidth; - int py = (int) ((sp.coord.y - centre.y) * scale) - + halfheight; + int px = (int) ((sp.coord.x - centre.x) * scale) + halfwidth; + int py = (int) ((sp.coord.y - centre.y) * scale) + halfheight; if (Math.abs(px - x) < 3 && Math.abs(py - y) < 3) { @@ -603,12 +625,12 @@ public class RotatableCanvas extends Panel implements MouseListener, { return; } - + /* * get the identity transformation... */ RotatableMatrix rotmat = new RotatableMatrix(); - + /* * rotate around the X axis for change in Y * (mouse movement up/down); note we are equating a @@ -618,7 +640,7 @@ public class RotatableCanvas extends Panel implements MouseListener, { rotmat.rotate(y, Axis.X); } - + /* * rotate around the Y axis for change in X * (mouse movement left/right) @@ -627,7 +649,7 @@ public class RotatableCanvas extends Panel implements MouseListener, { rotmat.rotate(x, Axis.Y); } - + /* * apply the composite transformation to sequence points */ @@ -642,7 +664,7 @@ public class RotatableCanvas extends Panel implements MouseListener, // Now translate back again sp.translate(centre.x, centre.y, centre.z); } - + /* * rotate the x/y/z axis positions */