X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FRotatableCanvas.java;h=be1d3f5774280188fcd62696a6502d3a4d5025dc;hb=c6032953b9b83b438ca8a1661d6b52a9a1950e23;hp=92abbf67a9c9e0502f52950f624d80622d0871a4;hpb=fb1ff6c555915bb15fd546c569faf59fdc2a1ff1;p=jalview.git diff --git a/src/jalview/gui/RotatableCanvas.java b/src/jalview/gui/RotatableCanvas.java index 92abbf6..be1d3f5 100755 --- a/src/jalview/gui/RotatableCanvas.java +++ b/src/jalview/gui/RotatableCanvas.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,8 +22,6 @@ import jalview.datamodel.*; import jalview.math.*; -import jalview.util.*; - import java.awt.*; import java.awt.event.*; @@ -74,13 +72,35 @@ public class RotatableCanvas extends JPanel implements MouseListener, int recty2; float scalefactor = 1; AlignViewport av; + AlignmentPanel ap; boolean showLabels = false; Color bgColour = Color.black; + boolean applyToAllViews = false; // Controller controller; - public RotatableCanvas(AlignViewport av) + public RotatableCanvas(AlignmentPanel ap) { - this.av = av; + this.av = ap.av; + this.ap = ap; + + addMouseWheelListener(new MouseWheelListener() + { + public void mouseWheelMoved(MouseWheelEvent e) + { + if (e.getWheelRotation() > 0) + { + scale = (float) (scale * 1.1); + repaint(); + } + + else + { + scale = (float) (scale * 0.9); + repaint(); + } + } + }); + } public void showLabels(boolean b) @@ -96,7 +116,6 @@ public class RotatableCanvas extends JPanel implements MouseListener, ToolTipManager.sharedInstance().registerComponent(this); ToolTipManager.sharedInstance().setInitialDelay(0); ToolTipManager.sharedInstance().setDismissDelay(10000); - PaintRefresher.Register(this, av.alignment); prefsize = getPreferredSize(); orig = new float[npoint][3]; @@ -140,7 +159,6 @@ public class RotatableCanvas extends JPanel implements MouseListener, scale = findScale(); addMouseListener(this); - addKeyListener(this); addMouseMotionListener(this); @@ -303,9 +321,13 @@ public class RotatableCanvas extends JPanel implements MouseListener, * * @param g DOCUMENT ME! */ - public void paintComponent(Graphics g) + public void paintComponent(Graphics g1) { + Graphics2D g = (Graphics2D) g1; + + g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); if(points==null) { g.setFont(new Font("Verdana", Font.PLAIN, 18)); @@ -345,12 +367,8 @@ public class RotatableCanvas extends JPanel implements MouseListener, * * @param g DOCUMENT ME! */ - public void drawAxes(Graphics g1) + public void drawAxes(Graphics g) { - Graphics2D g = (Graphics2D) g1; - - g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); g.setColor(Color.yellow); @@ -400,18 +418,18 @@ public class RotatableCanvas extends JPanel implements MouseListener, halfheight; float z = sp.coord[1] - centre[2]; - if (sp.sequence.getColor() == Color.black) + if (av.getSequenceColour(sp.sequence) == Color.black) { g.setColor(Color.white); } else { - g.setColor(sp.sequence.getColor()); + g.setColor(av.getSequenceColour(sp.sequence)); } if (av.getSelectionGroup() != null) { - if (av.getSelectionGroup().sequences.contains( + if (av.getSelectionGroup().getSequences(false).contains( ((SequencePoint) points.elementAt(i)).sequence)) { g.setColor(Color.gray); @@ -486,8 +504,6 @@ public class RotatableCanvas extends JPanel implements MouseListener, */ public void keyPressed(KeyEvent evt) { - requestFocus(); - if (evt.getKeyCode() == KeyEvent.VK_UP) { scalefactor = (float) (scalefactor * 1.1); @@ -511,24 +527,6 @@ public class RotatableCanvas extends JPanel implements MouseListener, repaint(); } - /** - * DOCUMENT ME! - */ - public void printPoints() - { - for (int i = 0; i < npoint; i++) - { - SequencePoint sp = (SequencePoint) points.elementAt(i); - Format.print(System.out, "%5d ", i); - - for (int j = 0; j < 3; j++) - { - Format.print(System.out, "%13.3f ", sp.coord[j]); - } - - System.out.println(); - } - } /** * DOCUMENT ME! @@ -595,17 +593,24 @@ public class RotatableCanvas extends JPanel implements MouseListener, if (found != null) { - if (av.getSelectionGroup() != null) + AlignmentPanel[] aps = getAssociatedPanels(); + + for (int a = 0; a < aps.length; a++) + { + if (aps[a].av.getSelectionGroup() != null) { - av.getSelectionGroup().addOrRemove(found, true); - PaintRefresher.Refresh(this, av.alignment); + aps[a].av.getSelectionGroup().addOrRemove(found, true); } else { - av.setSelectionGroup(new SequenceGroup()); - av.getSelectionGroup().addOrRemove(found, true); - av.getSelectionGroup().setEndRes(av.alignment.getWidth()-1); + aps[a].av.setSelectionGroup(new SequenceGroup()); + aps[a].av.getSelectionGroup().addOrRemove(found, true); + aps[a].av.getSelectionGroup().setEndRes( + aps[a].av.alignment.getWidth() - 1); } + } + + PaintRefresher.Refresh(this, av.getSequenceSetId()); } repaint(); @@ -689,8 +694,6 @@ public class RotatableCanvas extends JPanel implements MouseListener, */ public void rectSelect(int x1, int y1, int x2, int y2) { - boolean changedSel = false; - for (int i = 0; i < npoint; i++) { SequencePoint sp = (SequencePoint) points.elementAt(i); @@ -703,9 +706,8 @@ public class RotatableCanvas extends JPanel implements MouseListener, { if (av != null) { - if (!av.getSelectionGroup().sequences.contains(sp.sequence)) + if (!av.getSelectionGroup().getSequences(false).contains(sp.sequence)) { - changedSel = true; av.getSelectionGroup().addSequence(sp.sequence, true); } } @@ -756,25 +758,14 @@ public class RotatableCanvas extends JPanel implements MouseListener, } } - /* public boolean handleRubberbandEvent(RubberbandEvent evt) { - System.out.println("Rubberband handler called in RotatableCanvas with " + - evt.getBounds()); - - Rubberband rb = (Rubberband)evt.getSource(); - - // Clear the current selection (instance variable) - //if ((rb.getModifiers() & Event.SHIFT_MASK) == 0) { - // clearSelection(); - //} - - if (rb.getComponent() == this) { - Rectangle bounds = evt.getBounds(); - rectSelect(bounds.x,bounds.y,bounds.x+bounds.width,bounds.y+bounds.height); - } - - redrawneeded = true; - paint(this.getGraphics()); - - return true; - }*/ + AlignmentPanel[] getAssociatedPanels() + { + if (applyToAllViews) + { + return PaintRefresher.getAssociatedPanels(av.getSequenceSetId()); + } + else + return new AlignmentPanel[] + { ap }; + } }