X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fdatamodel%2FAnnotation.java;h=f6919cd36058cbfdacf9503e3aee84ac2bf516de;hb=155a17a423e980849fd4dc5f857da1a72b0010b9;hp=3ec12694f4dc5af0c033a3d3d9755f48ffe666d7;hpb=8d2724b83aca38ef75d68787cc5939d950467e63;p=jalview.git
diff --git a/src/jalview/datamodel/Annotation.java b/src/jalview/datamodel/Annotation.java
index 3ec1269..f6919cd 100755
--- a/src/jalview/datamodel/Annotation.java
+++ b/src/jalview/datamodel/Annotation.java
@@ -1,19 +1,21 @@
/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ 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.
+ * 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 .
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
* The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.datamodel;
@@ -28,6 +30,12 @@ import java.awt.Color;
*/
public class Annotation
{
+ /**
+ * the empty annotation - proxy for null entries in annotation row
+ */
+ public static final Annotation EMPTY_ANNOTATION = new Annotation("", "",
+ ' ', 0f);
+
/** Character label - also shown below histogram */
public String displayCharacter = "";
@@ -43,9 +51,11 @@ public class Annotation
*/
public char secondaryStructure = ' ';
- /** Score for the position - used in histograms, line graphs and for shading */
+ /**
+ * Score for the position - used in histograms, line graphs and for shading
+ */
public float value;
-
+
/** Colour for position */
public Color colour;
@@ -67,7 +77,7 @@ public class Annotation
description = desc;
secondaryStructure = ss;
value = val;
-
+
}
/**
@@ -105,9 +115,13 @@ public class Annotation
return;
}
if (that.displayCharacter != null)
+ {
displayCharacter = new String(that.displayCharacter);
+ }
if (that.description != null)
+ {
description = new String(that.description);
+ }
secondaryStructure = that.secondaryStructure;
value = that.value;
colour = that.colour;
@@ -122,15 +136,15 @@ public class Annotation
*/
public Annotation(float val)
{
- this(null, null, ' ', val,null);
+ this(null, null, ' ', val, null);
}
/**
* human readable representation of an annotation row element.
- *
+ *
* Format is 'display Char','secondary Structure
* Char',"description",score,[colourstring]
- *
+ *
* fields may be missing if they are null, whitespace, or equivalent to
* Float.NaN
*/
@@ -166,7 +180,7 @@ public class Annotation
{
sb.append(",");
}
- if (value != Float.NaN)
+ if (!Float.isNaN(value))
{
sb.append(value);
}
@@ -186,4 +200,21 @@ public class Annotation
}
return sb.toString();
}
+
+ /**
+ * @return true if annot is 'whitespace' annotation (zero score, whitespace or
+ * zero length display character, label, description
+ */
+ public boolean isWhitespace()
+ {
+ return ((value == 0f)
+ && ((description == null) || (description.trim().length() == 0))
+ && ((displayCharacter == null)
+ || (displayCharacter.trim().length() == 0)
+ || (displayCharacter.equals(" ."))) // RNA Stockholm blank
+ // displayCharacter can
+ // end up like this
+ && (secondaryStructure == '\0' || (secondaryStructure == ' '))
+ && colour == null);
+ }
}