Merge branch 'features/r2_11_2_alphafold/JAL-2349_JAL-3855' into develop
[jalview.git] / src / jalview / renderer / AnnotationRenderer.java
index be4f497..eb83f31 100644 (file)
@@ -30,6 +30,8 @@ import jalview.datamodel.Annotation;
 import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.ProfilesI;
+import jalview.renderer.api.AnnotationRendererFactoryI;
+import jalview.renderer.api.AnnotationRowRendererI;
 import jalview.schemes.ColourSchemeI;
 import jalview.schemes.NucleotideColourScheme;
 import jalview.schemes.ResidueProperties;
@@ -155,6 +157,7 @@ public class AnnotationRenderer
     hStrucConsensus = null;
     fadedImage = null;
     annotationPanel = null;
+    rendererFactoryI = null;
   }
 
   void drawStemAnnot(Graphics g, Annotation[] row_annotations, int lastSSX,
@@ -313,6 +316,7 @@ public class AnnotationRenderer
       useClip = false;
     }
 
+    rendererFactoryI = AnnotationRendererFactory.getRendererFactory();
     updateFromAlignViewport(av);
   }
 
@@ -417,6 +421,10 @@ public class AnnotationRenderer
     return null;
   }
 
+  boolean rna = false;
+
+  private AnnotationRendererFactoryI rendererFactoryI;
+
   /**
    * Render the annotation rows associated with an alignment.
    * 
@@ -1063,6 +1071,32 @@ public class AnnotationRenderer
                     row.graphMin, row.graphMax, y, renderHistogram,
                     renderProfile, normaliseProfile);
           }
+          else
+          {
+            AnnotationRowRendererI renderer = rendererFactoryI
+                    .getRendererFor(row);
+            if (renderer != null)
+            {
+              renderer.renderRow(g, charWidth, charHeight,
+                      hasHiddenColumns, av, hiddenColumns, columnSelection,
+                      row, row_annotations, startRes, endRes, row.graphMin,
+                      row.graphMax, y);
+            }
+            if (debugRedraw)
+            {
+              if (renderer == null)
+              {
+                System.err.println("No renderer found for "
+                        + row.toString());
+              }
+              else
+              {
+                System.err.println("rendered with "
+                        + renderer.getClass().toString());
+              }
+            }
+
+          }
         }
       }
       else