*/
package jalview.appletgui;
-import java.awt.*;
-import java.awt.event.*;
-
import jalview.api.AlignmentViewPanel;
-import jalview.datamodel.*;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SearchResults;
+import jalview.datamodel.SequenceI;
import jalview.structure.StructureSelectionManager;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FontMetrics;
+import java.awt.Frame;
+import java.awt.Graphics;
+import java.awt.Panel;
+import java.awt.Scrollbar;
+import java.awt.event.AdjustmentEvent;
+import java.awt.event.AdjustmentListener;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+
public class AlignmentPanel extends Panel implements AdjustmentListener,
AlignmentViewPanel
{
{
return seqPanel.seqCanvas.sr;
}
-
- public FeatureRenderer getFeatureRenderer()
+ @Override
+ public jalview.api.FeatureRenderer getFeatureRenderer()
{
return seqPanel.seqCanvas.fr;
}
-
+ @Override
+ public jalview.api.FeatureRenderer cloneFeatureRenderer()
+ {
+ FeatureRenderer nfr = new FeatureRenderer(av);
+ nfr.transferSettings(seqPanel.seqCanvas.fr);
+ return nfr;
+ }
public void alignmentChanged()
{
av.alignmentChanged(this);
{
annotationSpaceFillerHolder.setVisible(b);
annotationPanelHolder.setVisible(b);
- } else {
+ }
+ else
+ {
annotationSpaceFillerHolder.setVisible(false);
annotationPanelHolder.setVisible(false);
}
if (adjustPanelHeight)
{
- // NOTE: this logic is different in the application. Need a better algorithm to define behaviour
+ // NOTE: this logic is different in the application. Need a better
+ // algorithm to define behaviour
// sets initial preferred height
// try and set height according to alignment
- float sscaling = (float) ((av.getCharHeight() * av.getAlignment().getHeight())/(1.0*mheight));
+ float sscaling = (float) ((av.getCharHeight() * av.getAlignment()
+ .getHeight()) / (1.0 * mheight));
if (sscaling > 0.5)
{
// if the alignment is too big then
}
else
{
- // otherwise just set the panel so that one row of sequence is visible
+ // otherwise just set the panel so that one row of sequence is visible
height = -av.getCharHeight() * 1
+ (int) (seqandannot * (1 - sscaling));
}
annotationPanelHolder.setVisible(true);
annotationSpaceFillerHolder.setVisible(true);
}
-
+
idSpaceFillerPanel1.setVisible(!wrap);
fontChanged(); // This is so that the scalePanel is resized correctly
validate();
- sequenceHolderPanel.revalidate();
+ sequenceHolderPanel.validate();
repaint();
}
seqPanel.seqCanvas.repaint();
idPanel.idCanvas.repaint();
- if (!av.wrapAlignment)
+ if (!av.wrapAlignment)
{
if (av.showAnnotation)
{
}
scalePanel.repaint();
}
-
+
}
protected Panel sequenceHolderPanel = new Panel();
}
@Override
+ public String getViewName()
+ {
+ return getName();
+ }
+
+ @Override
public StructureSelectionManager getStructureSelectionManager()
{
return StructureSelectionManager