Move start and end before parsing name
[jalview.git] / src / jalview / appletgui / AlignViewport.java
index 51478f2..382fcb6 100755 (executable)
@@ -36,7 +36,8 @@ public class AlignViewport
   int startSeq;\r
   int endSeq;\r
 \r
-  boolean showFullId = true;\r
+  boolean showDBPrefix = true;\r
+  boolean showJVSuffix = true;\r
   boolean showText = true;\r
   boolean showColourText = false;\r
   boolean showBoxes = true;\r
@@ -57,8 +58,7 @@ public class AlignViewport
 \r
   int charHeight;\r
   int charWidth;\r
-  int chunkWidth;\r
-  int chunkHeight;\r
+  int wrappedWidth;\r
 \r
   Font font = new Font("SansSerif", Font.PLAIN, 10);\r
   AlignmentI alignment;\r
@@ -74,6 +74,17 @@ public class AlignViewport
   boolean scaleLeftWrapped = true;\r
   boolean scaleRightWrapped = true;\r
 \r
+  public Vector vconsensus;\r
+  AlignmentAnnotation consensus;\r
+  AlignmentAnnotation conservation;\r
+  AlignmentAnnotation quality;\r
+\r
+  public int ConsPercGaps = 25; // JBPNote : This should be a scalable property!\r
+\r
+  private java.beans.PropertyChangeSupport changeSupport = new java.beans.PropertyChangeSupport(this);\r
+\r
+  boolean ignoreGapsInConsensusCalculation = false;\r
+\r
   public AlignViewport(AlignmentI al, JalviewLite applet)\r
   {\r
     setAlignment(al);\r
@@ -88,7 +99,7 @@ public class AlignViewport
       String param = applet.getParameter("showFullId");\r
       if (param != null)\r
       {\r
-        showFullId = Boolean.valueOf(param).booleanValue();\r
+        showJVSuffix = Boolean.valueOf(param).booleanValue();\r
       }\r
 \r
       param = applet.getParameter("showAnnotation");\r
@@ -136,15 +147,12 @@ public class AlignViewport
     showSequenceFeatures = b;\r
   }\r
 \r
-  public Vector vconsensus;\r
-  AlignmentAnnotation consensus;\r
-  AlignmentAnnotation conservation;\r
-  AlignmentAnnotation quality;\r
-\r
-  public int ConsPercGaps = 25; // JBPNote : This should be a scalable property!\r
 \r
   public void updateConservation()\r
   {\r
+    if(alignment.isNucleotide())\r
+          return;\r
+\r
     Conservation cons = new jalview.analysis.Conservation("All",\r
         jalview.schemes.ResidueProperties.propHash, 3,\r
         alignment.getSequences(), 0,\r
@@ -264,18 +272,21 @@ public class AlignViewport
     for (int i = 0; i < alignment.getWidth(); i++)\r
     {\r
       hash = (Hashtable) vconsensus.elementAt(i);\r
-      float value = new Float(hash.get("maxCount").toString()).floatValue();\r
-      value /= new Float(hash.get("size").toString()).floatValue();\r
+      float value = 0;\r
+      if(ignoreGapsInConsensusCalculation)\r
+        value = ((Float)hash.get("pid_nogaps")).floatValue();\r
+      else\r
+        value = ((Float)hash.get("pid_gaps")).floatValue();\r
 \r
-      value *= 100;\r
-      String maxRes = hash.get("maxResidue") + " ";\r
+      String maxRes = hash.get("maxResidue").toString();\r
       String mouseOver = hash.get("maxResidue") + " ";\r
-      if (maxRes.length() > 2)\r
+      if (maxRes.length() > 1)\r
       {\r
         mouseOver = "[" + maxRes + "] ";\r
-        maxRes = "+ ";\r
+        maxRes = "+";\r
       }\r
 \r
+\r
       mouseOver += (int) value + "%";\r
       annotations[i] = new Annotation(maxRes, mouseOver, ' ', value);\r
 \r
@@ -295,6 +306,9 @@ public class AlignViewport
       consensus.annotations = annotations;\r
     }\r
 \r
+    if(globalColourScheme!=null)\r
+          globalColourScheme.setConsensus(vconsensus);\r
+\r
   }\r
 \r
   public SequenceGroup getSelectionGroup()\r
@@ -429,24 +443,14 @@ public class AlignViewport
     return charHeight;\r
   }\r
 \r
-  public void setChunkWidth(int w)\r
+  public void setWrappedWidth(int w)\r
   {\r
-    this.chunkWidth = w;\r
+    this.wrappedWidth = w;\r
   }\r
 \r
-  public int getChunkWidth()\r
+  public int getwrappedWidth()\r
   {\r
-    return chunkWidth;\r
-  }\r
-\r
-  public void setChunkHeight(int h)\r
-  {\r
-    this.chunkHeight = h;\r
-  }\r
-\r
-  public int getChunkHeight()\r
-  {\r
-    return chunkHeight;\r
+    return wrappedWidth;\r
   }\r
 \r
   public AlignmentI getAlignment()\r
@@ -593,14 +597,24 @@ public class AlignViewport
     return colourAppliesToAllGroups;\r
   }\r
 \r
-  public boolean getShowFullId()\r
+  public boolean getShowJVSuffix()\r
+  {\r
+    return showJVSuffix;\r
+  }\r
+\r
+  public void setShowJVSuffix(boolean b)\r
   {\r
-    return showFullId;\r
+    showJVSuffix = b;\r
   }\r
 \r
-  public void setShowFullId(boolean b)\r
+  public boolean getShowDBPrefix()\r
   {\r
-    showFullId = b;\r
+    return showDBPrefix;\r
+  }\r
+\r
+  public void setShowDBPrefix(boolean b)\r
+  {\r
+    showDBPrefix = b;\r
   }\r
 \r
   public boolean getShowAnnotation()\r
@@ -643,4 +657,58 @@ public class AlignViewport
     scaleRightWrapped = b;\r
   }\r
 \r
+  public void setIgnoreGapsConsensus(boolean b)\r
+  {\r
+    ignoreGapsInConsensusCalculation = b;\r
+    updateConsensus();\r
+    if (globalColourScheme!=null)\r
+    {\r
+      globalColourScheme.setThreshold(globalColourScheme.getThreshold(),\r
+          ignoreGapsInConsensusCalculation);\r
+\r
+    }\r
+  }\r
+\r
+  /**\r
+   * Property change listener for changes in alignment\r
+   *\r
+   * @param listener DOCUMENT ME!\r
+   */\r
+  public void addPropertyChangeListener(\r
+      java.beans.PropertyChangeListener listener)\r
+  {\r
+      changeSupport.addPropertyChangeListener(listener);\r
+  }\r
+\r
+  /**\r
+   * DOCUMENT ME!\r
+   *\r
+   * @param listener DOCUMENT ME!\r
+   */\r
+  public void removePropertyChangeListener(\r
+      java.beans.PropertyChangeListener listener)\r
+  {\r
+      changeSupport.removePropertyChangeListener(listener);\r
+  }\r
+\r
+  /**\r
+   * Property change listener for changes in alignment\r
+   *\r
+   * @param prop DOCUMENT ME!\r
+   * @param oldvalue DOCUMENT ME!\r
+   * @param newvalue DOCUMENT ME!\r
+   */\r
+  public void firePropertyChange(String prop, Object oldvalue, Object newvalue)\r
+  {\r
+      changeSupport.firePropertyChange(prop, oldvalue, newvalue);\r
+  }\r
+\r
+\r
+\r
+  public boolean getIgnoreGapsConsensus()\r
+  {\r
+    return ignoreGapsInConsensusCalculation;\r
+  }\r
+\r
+\r
 }\r