3 import jalview.jbgui.GAlignmentPanel;
\r
5 import java.awt.event.*;
\r
7 public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListener
\r
11 OverviewPanel overviewPanel;
\r
14 public AlignFrame alignFrame;
\r
15 ScalePanel scalePanel;
\r
16 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 idPanel.addNotify();
\r
31 scalePanelHolder.add(scalePanel, BorderLayout.CENTER);
\r
32 scorePanelHolder.add(scorePanel, BorderLayout.CENTER);
\r
33 seqPanelHolder.add(seqPanel, BorderLayout.CENTER);
\r
34 setScrollValues(0,0);
\r
36 hscroll.addAdjustmentListener(this);
\r
37 vscroll.addAdjustmentListener(this);
\r
40 addComponentListener(new ComponentAdapter()
\r
42 public void componentResized(ComponentEvent evt)
\r
50 public int countSelected()
\r
52 return av.getSelection().size();
\r
55 public void selectAll(boolean flag) {
\r
58 while (i < av.getAlignment().getHeight()) {
\r
59 if (! av.getSelection().contains(av.getAlignment().getSequenceAt(i))) {
\r
60 av.getSelection().addElement(av.getAlignment().getSequenceAt(i));
\r
65 av.getSelection().clear();
\r
69 public OverviewPanel getOverviewPanel()
\r
71 return overviewPanel;
\r
74 public void setOverviewPanel(OverviewPanel op)
\r
80 public void setGraphPanelVisible(boolean b)
\r
82 scorePanelHolder.setVisible(b);
\r
83 idSpaceFillerPanel.setVisible(b);
\r
87 public void setWrapAlignment(boolean wrap)
\r
90 scalePanelHolder.setVisible(!wrap);
\r
91 scorePanelHolder.setVisible(!wrap);
\r
93 hscroll.setVisible(!wrap);
\r
94 idSpaceFillerPanel.setVisible(!wrap);
\r
95 idSpaceFillerPanel1.setVisible(!wrap);
\r
100 public void setColourScheme(jalview.schemes.ColourSchemeI cs, boolean conservation)
\r
102 seqPanel.setColourScheme(cs, conservation);
\r
103 if(overviewPanel!=null)
\r
104 overviewPanel.updateOverviewImage();
\r
108 public void RefreshPanels()
\r
112 idPanel.idCanvas.paintFlag = true;
\r
113 idPanelHolder.setPreferredSize( idPanel.idCanvas.getPreferredSize() );
\r
114 seqPanel.seqCanvas.paintFlag = true;
\r
115 setScrollValues(av.getStartRes(), av.getStartSeq());
\r
116 av.getConsensus(true);
\r
119 if(overviewPanel!=null)
\r
120 overviewPanel.updateOverviewImage();
\r
127 public void setScrollValues(int x, int y)
\r
129 hextent = (int)(seqPanel.seqCanvas.getWidth()/av.getCharWidth());
\r
130 vextent = seqPanel.seqCanvas.getHeight()/av.getCharHeight();
\r
132 if(hextent+x > av.getAlignment().getWidth())
\r
133 x = av.getAlignment().getWidth()- hextent;
\r
135 if(vextent+y > av.getAlignment().getHeight())
\r
136 y = av.getAlignment().getHeight() - vextent;
\r
144 hscroll.setValues(x,hextent,0,av.getAlignment().getWidth());
\r
145 vscroll.setValues(y,vextent,0,av.getAlignment().getHeight() );
\r
146 seqPanel.seqCanvas.paintFlag = true;
\r
152 public void adjustmentValueChanged(AdjustmentEvent evt)
\r
155 if (evt.getSource() == hscroll)
\r
157 int x = hscroll.getValue();
\r
159 av.setEndRes(x + (int)(seqPanel.seqCanvas.getWidth()/av.getCharWidth()-1));
\r
162 if (evt.getSource() == vscroll)
\r
164 int offy = vscroll.getValue();
\r
165 av.setStartSeq(offy);
\r
166 av.setEndSeq(offy + seqPanel.seqCanvas.getHeight()/av.getCharHeight());
\r
170 if(overviewPanel!=null)
\r
171 overviewPanel.setBoxPosition();
\r