JAL-1517 update copyright to version 2.8.2
[jalview.git] / src / jalview / gui / FeatureRenderer.java
old mode 100755 (executable)
new mode 100644 (file)
index 4abc85a..28ecc86
@@ -1,19 +1,20 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
+ * Copyright (C) 2014 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  * Jalview is free software: you can redistribute it and/or
  * modify it under the terms of the GNU General Public License 
  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- * 
+ *  
  * Jalview is distributed in the hope that it will be useful, but 
  * WITHOUT ANY WARRANTY; without even the implied warranty 
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  * PURPOSE.  See the GNU General Public License for more details.
  * 
  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.gui;
 
@@ -30,6 +31,7 @@ import javax.swing.*;
 
 import jalview.datamodel.*;
 import jalview.schemes.GraduatedColor;
+import jalview.util.MessageManager;
 
 /**
  * DOCUMENT ME!
@@ -53,7 +55,7 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
   FontMetrics fm;
 
   int charOffset;
+
   Map featureColours = new ConcurrentHashMap();
 
   // A higher level for grouping features of a
@@ -80,6 +82,11 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
   {
     this.ap = ap;
     this.av = ap.av;
+    if (ap != null && ap.seqPanel != null && ap.seqPanel.seqCanvas != null
+            && ap.seqPanel.seqCanvas.fr != null)
+    {
+      transferSettings(ap.seqPanel.seqCanvas.fr);
+    }
   }
 
   public class FeatureRendererSettings implements Cloneable
@@ -163,7 +170,10 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
     this.transparency = fr.transparency;
     this.featureOrder = fr.featureOrder;
   }
-
+  /**
+   * update from another feature renderer
+   * @param fr settings to copy
+   */
   public void transferSettings(FeatureRenderer fr)
   {
     FeatureRendererSettings frs = new FeatureRendererSettings(fr);
@@ -172,7 +182,7 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
     this.featureColours = frs.featureColours;
     this.transparency = frs.transparency;
     this.featureOrder = frs.featureOrder;
-    if (av != null && av!=fr.av)
+    if (av != null && av != fr.av)
     {
       // copy over the displayed feature settings
       if (fr.av != null)
@@ -196,7 +206,7 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
           }
         }
       }
-  }
+    }
   }
 
   BufferedImage offscreenImage;
@@ -212,7 +222,8 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
    * This is used by the Molecule Viewer and Overview to get the accurate
    * colourof the rendered sequence
    */
-  public synchronized int findFeatureColour(int initialCol, SequenceI seq, int column)
+  public synchronized int findFeatureColour(int initialCol, SequenceI seq,
+          int column)
   {
     if (!av.showSequenceFeatures)
     {
@@ -256,7 +267,8 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
     }
 
     currentColour = null;
-    // TODO: non-threadsafe - each rendering thread needs its own instance of the feature renderer - or this should be synchronized.
+    // TODO: non-threadsafe - each rendering thread needs its own instance of
+    // the feature renderer - or this should be synchronized.
     offscreenRender = true;
 
     if (offscreenImage != null)
@@ -686,7 +698,7 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
     {
       minmax = new Hashtable();
     }
-    AlignmentI alignment=av.getAlignment();
+    AlignmentI alignment = av.getAlignment();
     for (int i = 0; i < alignment.getHeight(); i++)
     {
       SequenceFeature[] features = alignment.getSequenceAt(i)
@@ -1051,7 +1063,7 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
     {
       panel = new JPanel(new GridLayout(4, 1));
       tmp = new JPanel();
-      tmp.add(new JLabel("Select Feature: "));
+      tmp.add(new JLabel(MessageManager.getString("label.select_feature")));
       overlaps = new JComboBox();
       for (int i = 0; i < features.length; i++)
       {
@@ -1101,17 +1113,17 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
 
     tmp = new JPanel();
     panel.add(tmp);
-    tmp.add(new JLabel("Name: ", JLabel.RIGHT));
+    tmp.add(new JLabel(MessageManager.getString("label.name"), JLabel.RIGHT));
     tmp.add(name);
 
     tmp = new JPanel();
     panel.add(tmp);
-    tmp.add(new JLabel("Group: ", JLabel.RIGHT));
+    tmp.add(new JLabel(MessageManager.getString("label.group")+":", JLabel.RIGHT));
     tmp.add(source);
 
     tmp = new JPanel();
     panel.add(tmp);
-    tmp.add(new JLabel("Colour: ", JLabel.RIGHT));
+    tmp.add(new JLabel(MessageManager.getString("label.colour"), JLabel.RIGHT));
     tmp.add(colour);
     colour.setPreferredSize(new Dimension(150, 15));
     colour.setFont(new java.awt.Font("Verdana", Font.PLAIN, 9));
@@ -1123,7 +1135,7 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
     bigPanel.add(panel, BorderLayout.NORTH);
 
     panel = new JPanel();
-    panel.add(new JLabel("Description: ", JLabel.RIGHT));
+    panel.add(new JLabel(MessageManager.getString("label.description"), JLabel.RIGHT));
     description.setFont(JvSwingUtils.getTextAreaFont());
     description.setLineWrap(true);
     panel.add(new JScrollPane(description));
@@ -1133,9 +1145,9 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
       bigPanel.add(panel, BorderLayout.SOUTH);
 
       panel = new JPanel();
-      panel.add(new JLabel(" Start:", JLabel.RIGHT));
+      panel.add(new JLabel(MessageManager.getString("label.start"), JLabel.RIGHT));
       panel.add(start);
-      panel.add(new JLabel("  End:", JLabel.RIGHT));
+      panel.add(new JLabel(MessageManager.getString("label.end"), JLabel.RIGHT));
       panel.add(end);
       bigPanel.add(panel, BorderLayout.CENTER);
     }