3 import jalview.jbgui.GAlignmentPanel;
\r
5 import javax.swing.*;
\r
6 import java.awt.event.*;
\r
8 public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListener
\r
12 public SeqPanel seqPanel;
\r
13 public IdPanel idPanel;
\r
14 public AlignFrame alignFrame;
\r
15 public ScalePanel scalePanel;
\r
16 public ScorePanel scorePanel;
\r
18 public boolean groupEdit = false;
\r
20 public AlignmentPanel(AlignFrame af, AlignViewport av)
\r
24 seqPanel = new SeqPanel (av, this);
\r
25 idPanel = new IdPanel (av, this);
\r
26 scalePanel = new ScalePanel(av);
\r
27 scorePanel = new ScorePanel(av);
\r
29 idPanelHolder.add(idPanel, BorderLayout.CENTER);
\r
30 scalePanelHolder.add(scalePanel, BorderLayout.CENTER);
\r
31 scorePanelHolder.add(scorePanel, BorderLayout.CENTER);
\r
32 seqPanelHolder.add(seqPanel, BorderLayout.CENTER);
\r
33 setScrollValues(0,0);
\r
35 hscroll.addAdjustmentListener(this);
\r
36 vscroll.addAdjustmentListener(this);
\r
39 addComponentListener(new ComponentAdapter()
\r
41 public void componentResized(ComponentEvent evt)
\r
42 { RefreshPanels(); }
\r
47 public int countSelected()
\r
49 return av.getSelection().size();
\r
52 public void selectAll(boolean flag) {
\r
55 while (i < seqPanel.align.getHeight()) {
\r
56 if (! av.getSelection().contains(av.getAlignment().getSequenceAt(i))) {
\r
57 av.getSelection().addElement(av.getAlignment().getSequenceAt(i));
\r
62 av.getSelection().clear();
\r
68 public void setGraphPanelVisible(boolean b)
\r
70 scorePanelHolder.setVisible(b);
\r
71 idSpaceFillerPanel.setVisible(b);
\r
77 public void RefreshPanels()
\r
80 idPanelHolder.setPreferredSize( idPanel.idCanvas.getPreferredSize() );
\r
82 idPanel.idCanvas.paintFlag = true;
\r
83 seqPanel.seqCanvas.paintFlag = true;
\r
84 setScrollValues(av.getStartRes(), av.getStartSeq());
\r
85 av.getConsensus(true);
\r
92 public void setScrollValues(int x, int y)
\r
94 hextent = (int)(seqPanel.seqCanvas.getWidth()/av.getCharWidth());
\r
95 vextent = seqPanel.seqCanvas.getHeight()/av.getCharHeight();
\r
97 if(hextent+x > av.getAlignment().getWidth())
\r
98 x = av.getAlignment().getWidth()- hextent;
\r
100 if(vextent+y > av.getAlignment().getHeight())
\r
101 y = av.getAlignment().getHeight() - vextent;
\r
109 hscroll.setValues(x,hextent,0,av.getAlignment().getWidth());
\r
110 vscroll.setValues(y,vextent,0,av.getAlignment().getHeight() );
\r
115 public void adjustmentValueChanged(AdjustmentEvent evt) {
\r
117 if (evt.getSource() == hscroll)
\r
119 int x = hscroll.getValue();
\r
121 av.setEndRes(x + (int)(seqPanel.seqCanvas.getWidth()/av.getCharWidth()-1));
\r
124 if (evt.getSource() == vscroll)
\r
126 int offy = vscroll.getValue();
\r
127 av.setStartSeq(offy);
\r
128 av.setEndSeq(offy + seqPanel.seqCanvas.getHeight()/av.getCharHeight());
\r