Merge: 497958b 68dcaa7
[jalview.git] / src / jalview / gui / AnnotationPanel.java
index 4adeb83..3a97f96 100755 (executable)
  */
 package jalview.gui;
 
-import java.awt.*;
-import java.awt.event.*;
-import java.awt.image.*;
-
-import javax.swing.*;
-
-import jalview.datamodel.*;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.Annotation;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.SequenceI;
 import jalview.renderer.AnnotationRenderer;
 import jalview.renderer.AwtRenderPanelI;
 import jalview.util.MessageManager;
 
+import java.awt.AlphaComposite;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FontMetrics;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.Rectangle;
+import java.awt.RenderingHints;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.AdjustmentEvent;
+import java.awt.event.AdjustmentListener;
+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.awt.image.BufferedImage;
+
+import javax.swing.JColorChooser;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
+import javax.swing.Scrollable;
+import javax.swing.SwingUtilities;
+import javax.swing.ToolTipManager;
+
 /**
  * AnnotationPanel displays visible portion of annotation rows below unwrapped
  * alignment
@@ -215,7 +241,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
   public void adjustmentValueChanged(AdjustmentEvent evt)
   {
     // update annotation label display
-    ap.alabels.setScrollOffset(-evt.getValue());
+    ap.getAlabels().setScrollOffset(-evt.getValue());
   }
 
   /**
@@ -289,7 +315,9 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
         int index = av.getColumnSelection().columnAt(i);
 
         if (!av.getColumnSelection().isVisible(index))
+        {
           continue;
+        }
 
         if (anot[index] == null)
         {
@@ -314,7 +342,9 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
         int index = av.getColumnSelection().columnAt(i);
 
         if (!av.getColumnSelection().isVisible(index))
+        {
           continue;
+        }
 
         if (anot[index] == null)
         {
@@ -373,14 +403,18 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
         int index = av.getColumnSelection().columnAt(i);
 
         if (!av.getColumnSelection().isVisible(index))
+        {
           continue;
+        }
 
         if (anot[index] == null)
         {
           anot[index] = new Annotation(label, "", type, 0);
         }
 
-        anot[index].secondaryStructure = type;
+        
+        anot[index].secondaryStructure = type != 'S' ? type : label
+                .length() == 0 ? ' ' : label.charAt(0);
         anot[index].displayCharacter = label;
 
       }
@@ -406,7 +440,9 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
       int index = columnSelection.columnAt(i);
       // always check for current display state - just in case
       if (!viscols.isVisible(index))
+      {
         continue;
+      }
       String tlabel = null;
       if (anot[index] != null)
       { // LML added stem code
@@ -530,7 +566,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
       return;
     }
 
-    ap.scalePanel.mousePressed(evt);
+    ap.getScalePanel().mousePressed(evt);
 
   }
 
@@ -546,7 +582,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
     graphStretch = -1;
     graphStretchY = -1;
     mouseDragging = false;
-    ap.scalePanel.mouseReleased(evt);
+    ap.getScalePanel().mouseReleased(evt);
   }
 
   /**
@@ -558,7 +594,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
   @Override
   public void mouseEntered(MouseEvent evt)
   {
-    ap.scalePanel.mouseEntered(evt);
+    ap.getScalePanel().mouseEntered(evt);
   }
 
   /**
@@ -570,7 +606,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
   @Override
   public void mouseExited(MouseEvent evt)
   {
-    ap.scalePanel.mouseExited(evt);
+    ap.getScalePanel().mouseExited(evt);
   }
 
   /**
@@ -596,7 +632,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
     }
     else
     {
-      ap.scalePanel.mouseDragged(evt);
+      ap.getScalePanel().mouseDragged(evt);
     }
   }
 
@@ -765,13 +801,15 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
     }
     imgWidth = (av.endRes - av.startRes + 1) * av.charWidth;
     if (imgWidth < 1)
+    {
       return;
+    }
     if (image == null || imgWidth != image.getWidth(this)
             || image.getHeight(this) != getHeight())
     {
       try
       {
-        image = new BufferedImage(imgWidth, ap.annotationPanel.getHeight(),
+        image = new BufferedImage(imgWidth, ap.getAnnotationPanel().getHeight(),
                 BufferedImage.TYPE_INT_RGB);
       } catch (OutOfMemoryError oom)
       {
@@ -975,15 +1013,17 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI,
   @Override
   public int[] getVisibleVRange()
   {
-    if (ap != null && ap.alabels != null)
+    if (ap != null && ap.getAlabels() != null)
     {
-      int sOffset = -ap.alabels.scrollOffset;
+      int sOffset = -ap.getAlabels().getScrollOffset();
       int visHeight = sOffset + ap.annotationSpaceFillerHolder.getHeight();
       bounds[0] = sOffset;
       bounds[1] = visHeight;
       return bounds;
     }
     else
+    {
       return null;
+    }
   }
 }