JAL-2348 JAL-2349 refactored contact map renderer and renderer factory implementation
authorJim Procter <jprocter@issues.jalview.org>
Sun, 4 Dec 2016 10:59:34 +0000 (10:59 +0000)
committerJim Procter <jprocter@issues.jalview.org>
Sun, 4 Dec 2016 10:59:34 +0000 (10:59 +0000)
src/jalview/renderer/AnnotationRenderer.java
src/jalview/renderer/AnnotationRendererFactory.java [new file with mode: 0644]

index 096c6a7..18cc627 100644 (file)
@@ -302,6 +302,7 @@ public class AnnotationRenderer
       useClip = false;
     }
 
+    rendererFactoryI = AnnotationRendererFactory.getRendererFactory();
     updateFromAlignViewport(av);
   }
 
diff --git a/src/jalview/renderer/AnnotationRendererFactory.java b/src/jalview/renderer/AnnotationRendererFactory.java
new file mode 100644 (file)
index 0000000..1bee418
--- /dev/null
@@ -0,0 +1,41 @@
+package jalview.renderer;
+
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.renderer.api.AnnotationRendererFactoryI;
+import jalview.renderer.api.AnnotationRowRendererI;
+
+import java.util.IdentityHashMap;
+
+public class AnnotationRendererFactory implements
+        AnnotationRendererFactoryI
+{
+
+  private static AnnotationRendererFactoryI factory = null;
+
+  public static AnnotationRendererFactoryI getRendererFactory()
+  {
+    if (factory == null)
+    {
+      factory = new AnnotationRendererFactory();
+    }
+    return factory;
+  }
+
+  IdentityHashMap<Object, AnnotationRowRendererI> renderers = new IdentityHashMap<Object, AnnotationRowRendererI>();
+
+  public AnnotationRendererFactory()
+  {
+    // renderers.put)
+  }
+
+  @Override
+  public AnnotationRowRendererI getRendererFor(AlignmentAnnotation row)
+  {
+    if (row.graph == AlignmentAnnotation.CUSTOMRENDERER)
+    {
+      return new ContactMapRenderer();
+    }
+    return null;
+  }
+
+}