X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FRotatableCanvas.java;h=be1d3f5774280188fcd62696a6502d3a4d5025dc;hb=b69e028fe41a867e72cda2a6d69182ff0c6bd90e;hp=fc72b4b827094e42950d862bd6b39868090b35b5;hpb=9c5d69ef1e102b1eac18ec13c362522f40c9000d;p=jalview.git diff --git a/src/jalview/gui/RotatableCanvas.java b/src/jalview/gui/RotatableCanvas.java index fc72b4b..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); @@ -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); @@ -509,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! @@ -593,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(); @@ -687,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); @@ -701,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); } } @@ -754,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 }; + } }