// a subclass of ViewportProperties similarly to ViewportRanges.
// Done here as a quick fix for JAL-2665
public static final String SEQ_GROUP_CHANGED = "Sequence group changed";
+
+ protected PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+ this);
+
+ public void addPropertyChangeListener(PropertyChangeListener listener)
+ {
+ changeSupport.addPropertyChangeListener(listener);
+ }
- private String groupName;
+ public void removePropertyChangeListener(PropertyChangeListener listener)
+ {
+ changeSupport.removePropertyChangeListener(listener);
+ }
+ // end of event notification functionality initialisation
- private String description;
+ String groupName;
- private AnnotatedCollectionI context;
+ String description;
+
+ Conservation conserve;
- private Conservation conservationData;
+ Conservation conservationData;
- private ProfilesI consensusProfiles;
+ ProfilesI consensusProfiles;
- private ProfilesI hmmProfiles;
+ ProfilesI hmmProfiles;
- private boolean displayBoxes = true;
+ boolean displayBoxes = true;
- private boolean displayText = true;
+ boolean displayText = true;
- private boolean colourText = false;
+ boolean colourText = false;
/*
* true if the group is defined as a group on the alignment, false if it is
* just a selection
*/
- private boolean isDefined;
+ boolean isDefined = false;
/*
* after Olivier's non-conserved only character display
*/
- private boolean showNonconserved;
+ boolean showNonconserved = false;
/*
* sequences in the group
/*
* representative sequence for this group (if any)
*/
- private SequenceI seqrep;
+ private SequenceI seqrep = null;
- private int width = -1;
+ int width = -1;
/*
* colour scheme applied to group if any
public Color outlineColour = Color.black;
- public Color idColour;
+ public Color idColour = null;
- public int thresholdTextColour;
+ public int thresholdTextColour = 0;
public Color textColour = Color.black;
*/
private boolean ignoreGapsInConsensus = true;
- private boolean showSequenceLogo;
+ private boolean showSequenceLogo = false;
private boolean normaliseSequenceLogo;
- private boolean showConsensusHistogram;
-
/*
* properties for HMM information annotation
*/
/*
* visibility of rows or represented rows covered by group
*/
- private boolean hidereps;
+ private boolean hidereps = false;
/*
* visibility of columns intersecting this group
*/
private boolean hidecols;
- private AlignmentAnnotation consensus;
+ AlignmentAnnotation consensus = null;
- private AlignmentAnnotation conservation;
+ AlignmentAnnotation conservation = null;
private AlignmentAnnotation hmmInformation;
+
+ private boolean showConsensusHistogram;
+
+ private AnnotatedCollectionI context;
+
/**
* Constructor, assigning a generated default name of "JGroup:" with object
* copy constructor
*
* @param seqsel
- */
- public SequenceGroup(SequenceGroup seqsel)
- {
- this(seqsel, true);
- }
-
- /**
- * copy constructor
- *
- * @param seqsel
* @param keepsequences
* if false do not add sequences from seqsel to new instance
*/
- public SequenceGroup(SequenceGroup seqsel, boolean keepsequences)
+ public SequenceGroup(SequenceGroup seqsel)
{
this();
if (seqsel != null)
{
sequences = new ArrayList<>();
- if (keepsequences)
- {
- sequences.addAll(seqsel.sequences);
- }
+ sequences.addAll(seqsel.sequences);
if (seqsel.groupName != null)
{
groupName = new String(seqsel.groupName);
ignoreGapsInConsensus = seqsel.ignoreGapsInConsensus;
hmmIgnoreBelowBackground = seqsel.hmmIgnoreBelowBackground;
hmmUseInfoLetterHeight = seqsel.hmmUseInfoLetterHeight;
- if (keepsequences && seqsel.conservationData != null)
+ if (seqsel.conserve != null)
{
// todo avoid doing this if we don't actually want derived calculations
// !
}
}
- protected PropertyChangeSupport changeSupport = new PropertyChangeSupport(
- this);
-
- public void addPropertyChangeListener(PropertyChangeListener listener)
- {
- changeSupport.addPropertyChangeListener(listener);
- }
-
- public void removePropertyChangeListener(PropertyChangeListener listener)
- {
- changeSupport.removePropertyChangeListener(listener);
- }
-
/**
* Constructor that copies the given list of sequences
*
return showSequenceLogo;
}
- public SequenceI[] getSelectionAsNewSequences(AlignmentI align,
- boolean copyAnnotation)
+ public SequenceI[] getSelectionAsNewSequences(AlignmentI align)
{
int iSize = sequences.size();
SequenceI[] seqs = new SequenceI[iSize];
if (seqs[ipos] != null)
{
seqs[ipos].setDescription(seq.getDescription());
+ seqs[ipos].setDBRefs(seq.getDBRefs());
+ seqs[ipos].setSequenceFeatures(seq.getSequenceFeatures());
+ if (seq.getDatasetSequence() != null)
+ {
+ seqs[ipos].setDatasetSequence(seq.getDatasetSequence());
+ }
- if (seq.getAnnotation() != null && copyAnnotation)
+ if (seq.getAnnotation() != null)
{
AlignmentAnnotation[] alann = align.getAlignmentAnnotation();
// Only copy annotation that is either a score or referenced by the
*/
public Conservation getConservation()
{
- return conservationData;
+ return conserve;
}
/**
*/
public void setConservation(Conservation c)
{
- conservationData = c;
+ conserve = c;
}
/**
*/
public boolean recalcConservation()
{
- return recalcAnnotations(false);
+ return recalcConservation(false);
}
/**
* when set, colourschemes for this group are not refreshed after
* recalculation
*/
- public boolean recalcAnnotations(boolean defer)
+ public boolean recalcConservation(boolean defer)
{
if (cs == null && consensus == null && conservation == null
&& hmmInformation == null)
c.completeAnnotations(conservation, null, startRes, endRes + 1);
}
+ public ProfilesI consensusData = null;
+
private void _updateConsensusRow(ProfilesI cnsns, long nseq)
{
if (consensus == null)
}
consensus.label = "Consensus for " + getName();
consensus.description = "Percent Identity";
- consensusProfiles = cnsns;
+ consensusData = cnsns;
// preserve width if already set
int aWidth = (consensus.annotations != null)
? (endRes < consensus.annotations.length
ignoreGapsInConsensus = state;
}
- public boolean isIgnoreGapsConsensus()
+ public boolean getIgnoreGapsConsensus()
{
return ignoreGapsInConsensus;
}