3 import jalview.datamodel.*;
\r
5 import java.awt.event.*;
\r
6 import javax.swing.*;
\r
8 public class ScalePanel extends JPanel
\r
11 protected ScaleCanvas scaleCanvas;
\r
16 protected AlignViewport av;
\r
19 public ScalePanel(AlignViewport av, AlignmentPanel ap)
\r
24 scaleCanvas = new ScaleCanvas(av);
\r
25 setLayout(new BorderLayout());
\r
26 add(scaleCanvas, BorderLayout.CENTER);
\r
27 addMouseListener(new MouseAdapter()
\r
29 public void mousePressed(MouseEvent evt)
\r
31 doMousePressed(evt);
\r
33 public void mouseReleased(MouseEvent evt)
\r
35 doMouseReleased(evt);
\r
39 addMouseMotionListener(new MouseMotionAdapter()
\r
41 public void mouseDragged(MouseEvent evt)
\r
43 doMouseDragged(evt);
\r
49 public Dimension getMinimumSize() {
\r
50 return scaleCanvas.getMinimumSize();
\r
53 public Dimension getPreferredSize() {
\r
54 return scaleCanvas.getPreferredSize();
\r
57 public void doMousePressed(MouseEvent evt) {
\r
59 int res = x/av.getCharWidth() + av.getStartRes();
\r
61 if (! av.getColumnSelection().contains(res))
\r
62 av.getColumnSelection().addElement(res);
\r
66 SequenceGroup sg = new SequenceGroup();
\r
67 for(int i=0; i<av.alignment.getSequences().size(); i++)
\r
68 sg.addSequence(av.alignment.getSequenceAt(i));
\r
70 sg.setStartRes(res);
\r
72 av.setRubberbandGroup(sg);
\r
76 public void doMouseReleased(MouseEvent evt)
\r
79 int res = x/av.getCharWidth() + av.getStartRes();
\r
81 if (! av.getColumnSelection().contains(res))
\r
82 av.getColumnSelection().addElement(res);
\r
84 SequenceGroup sg = av.getRubberbandGroup();
\r
86 if(res>sg.getStartRes())
\r
88 else if(res<sg.getStartRes())
\r
89 sg.setStartRes(res);
\r
94 public void doMouseDragged(MouseEvent evt)
\r
97 int res = x/av.getCharWidth() + av.getStartRes();
\r
99 SequenceGroup sg = av.getRubberbandGroup();
\r
101 if(res>sg.getStartRes())
\r
103 else if(res<sg.getStartRes())
\r
104 sg.setStartRes(res);
\r
107 ap.RefreshPanels();
\r