protected override void OnMouseDoubleClick(MouseEventArgs e)
        {
            if (SequenceCoverageFilter == null)
            {
                return;
            }

            int currentResidueOffset = getResidueOffsetAtPoint(e.Location);

            if (currentResidueOffset < 0 || currentResidueOffset >= owner.Protein.Length)
            {
                return;
            }

            if (owner.Protein.CoverageMask[currentResidueOffset] == 0)
            {
                return;
            }

            var newAminoAcidOffset = new List <int> {
                currentResidueOffset
            };

            if (!viewFilter.AminoAcidOffset.IsNullOrEmpty() &&
                (ModifierKeys & Keys.Shift | ModifierKeys & Keys.Control) != 0)
            {
                newAminoAcidOffset.AddRange(viewFilter.AminoAcidOffset);
            }

            var newDataFilter = new DataModel.DataFilter()
            {
                FilterSource = owner,
                Protein      = new List <Protein> {
                    owner.Protein
                },
                AminoAcidOffset = newAminoAcidOffset
            };

            SequenceCoverageFilter(owner, new ViewFilterEventArgs(newDataFilter));
        }
        protected override void OnMouseDoubleClick (MouseEventArgs e)
        {
            if (SequenceCoverageFilter == null)
                return;

            int currentResidueOffset = getResidueOffsetAtPoint(e.Location);
            if (currentResidueOffset < 0 || currentResidueOffset >= owner.Protein.Length)
                return;

            if (owner.Protein.CoverageMask[currentResidueOffset] == 0)
                return;

            var newAminoAcidOffset = new List<int> { currentResidueOffset };
            if (!viewFilter.AminoAcidOffset.IsNullOrEmpty() &&
                (ModifierKeys & Keys.Shift | ModifierKeys & Keys.Control) != 0)
                newAminoAcidOffset.AddRange(viewFilter.AminoAcidOffset);

            var newDataFilter = new DataModel.DataFilter()
            {
                FilterSource = owner,
                Protein = new List<Protein> { owner.Protein },
                AminoAcidOffset = newAminoAcidOffset
            };

            SequenceCoverageFilter(owner, new ViewFilterEventArgs(newDataFilter));
        }