X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FRotatableCanvas.java;h=0719fa0ed3f800c7c0ce9f746d8fabf5dd220b27;hb=af2dbf10bbcc54d9b9e4d398e9283b3c4a758e06;hp=3b983feeb7256930be176cf6162af0fcd4f8a123;hpb=fbd03b3f123f3462c5fe685c988e5c4ae601558c;p=jalview.git diff --git a/src/jalview/gui/RotatableCanvas.java b/src/jalview/gui/RotatableCanvas.java index 3b983fe..0719fa0 100755 --- a/src/jalview/gui/RotatableCanvas.java +++ b/src/jalview/gui/RotatableCanvas.java @@ -1,30 +1,52 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5) - * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.gui; -import java.util.*; - -import java.awt.*; -import java.awt.event.*; -import javax.swing.*; - -import jalview.datamodel.*; -import jalview.math.*; +import jalview.api.RotatableCanvasI; +import jalview.datamodel.SequenceGroup; +import jalview.datamodel.SequenceI; +import jalview.datamodel.SequencePoint; +import jalview.math.RotatableMatrix; +import jalview.util.MessageManager; +import jalview.viewmodel.AlignmentViewport; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.RenderingHints; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.event.MouseMotionListener; +import java.awt.event.MouseWheelEvent; +import java.awt.event.MouseWheelListener; +import java.util.Vector; + +import javax.swing.JPanel; +import javax.swing.ToolTipManager; /** * DOCUMENT ME! @@ -33,7 +55,7 @@ import jalview.math.*; * @version $Revision$ */ public class RotatableCanvas extends JPanel implements MouseListener, - MouseMotionListener, KeyListener + MouseMotionListener, KeyListener, RotatableCanvasI { RotatableMatrix idmat = new RotatableMatrix(3, 3); @@ -96,7 +118,7 @@ public class RotatableCanvas extends JPanel implements MouseListener, float scalefactor = 1; - AlignViewport av; + AlignmentViewport av; AlignmentPanel ap; @@ -138,14 +160,18 @@ public class RotatableCanvas extends JPanel implements MouseListener, repaint(); } + boolean first = true; + public void setPoints(Vector points, int npoint) { this.points = points; this.npoint = npoint; - ToolTipManager.sharedInstance().registerComponent(this); - ToolTipManager.sharedInstance().setInitialDelay(0); - ToolTipManager.sharedInstance().setDismissDelay(10000); - + if (first) + { + ToolTipManager.sharedInstance().registerComponent(this); + ToolTipManager.sharedInstance().setInitialDelay(0); + ToolTipManager.sharedInstance().setDismissDelay(10000); + } prefsize = getPreferredSize(); orig = new float[npoint][3]; @@ -186,11 +212,14 @@ public class RotatableCanvas extends JPanel implements MouseListener, findWidth(); scale = findScale(); + if (first) + { - addMouseListener(this); - - addMouseMotionListener(this); + addMouseListener(this); + addMouseMotionListener(this); + } + first = false; } public void initAxes() @@ -361,7 +390,8 @@ public class RotatableCanvas extends JPanel implements MouseListener, if (points == null) { g.setFont(new Font("Verdana", Font.PLAIN, 18)); - g.drawString("Calculating PCA....", 20, getHeight() / 2); + g.drawString(MessageManager.getString("label.calculating_pca") + + "....", 20, getHeight() / 2); } else { @@ -460,8 +490,8 @@ public class RotatableCanvas extends JPanel implements MouseListener, if (av.getSelectionGroup() != null) { - if (av.getSelectionGroup().getSequences(null).contains( - ((SequencePoint) points.elementAt(i)).sequence)) + if (av.getSelectionGroup().getSequences(null) + .contains(((SequencePoint) points.elementAt(i)).sequence)) { g.setColor(Color.gray); } @@ -476,8 +506,9 @@ public class RotatableCanvas extends JPanel implements MouseListener, if (showLabels) { g.setColor(Color.red); - g.drawString(((SequencePoint) points.elementAt(i)).sequence - .getName(), x - 3, y - 4); + g.drawString( + ((SequencePoint) points.elementAt(i)).sequence.getName(), + x - 3, y - 4); } } @@ -643,7 +674,7 @@ public class RotatableCanvas extends JPanel implements MouseListener, aps[a].av.setSelectionGroup(new SequenceGroup()); aps[a].av.getSelectionGroup().addOrRemove(found, true); aps[a].av.getSelectionGroup().setEndRes( - aps[a].av.alignment.getWidth() - 1); + aps[a].av.getAlignment().getWidth() - 1); } } PaintRefresher.Refresh(this, av.getSequenceSetId()); @@ -748,8 +779,8 @@ public class RotatableCanvas extends JPanel implements MouseListener, { if (av != null) { - if (!av.getSelectionGroup().getSequences(null).contains( - sp.sequence)) + if (!av.getSelectionGroup().getSequences(null) + .contains(sp.sequence)) { av.getSelectionGroup().addSequence(sp.sequence, true); } @@ -811,19 +842,19 @@ public class RotatableCanvas extends JPanel implements MouseListener, } else { - return new AlignmentPanel[] - { ap }; + return new AlignmentPanel[] { ap }; } } /** * - * @return x,y,z positions of point s (index into points) under current transform. + * @return x,y,z positions of point s (index into points) under current + * transform. */ public double[] getPointPosition(int s) { double pts[] = new double[3]; - float[] p = ((SequencePoint)points.elementAt(s)).coord; + float[] p = ((SequencePoint) points.elementAt(s)).coord; pts[0] = p[0]; pts[1] = p[1]; pts[2] = p[2];