X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FContactListImpl.java;h=dc7982b1a59f94639af3b3554388405208c30fdb;hb=85299bc2db43c8b108169661ebc1c4d9b2d3d2e5;hp=beb557faae4fd4d8a9a39cceebc7f32121820ee1;hpb=912b741af87f3f714f9e01c5e450a2818d568317;p=jalview.git diff --git a/src/jalview/datamodel/ContactListImpl.java b/src/jalview/datamodel/ContactListImpl.java index beb557f..dc7982b 100644 --- a/src/jalview/datamodel/ContactListImpl.java +++ b/src/jalview/datamodel/ContactListImpl.java @@ -1,5 +1,29 @@ +/* + * 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. + * + * 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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.datamodel; +import java.awt.Color; + +import jalview.renderer.ContactGeometry.contactInterval; + /** * helper class to compute min/max/mean for a range on a contact list * @@ -41,6 +65,7 @@ public class ContactListImpl implements ContactListI @Override public ContactRange getRangeFor(int from_column, int to_column) { + // TODO: consider caching ContactRange for a particular call ? if (clist instanceof ContactListI) { // clist may implement getRangeFor in a more efficient way, so use theirs @@ -50,9 +75,9 @@ public class ContactListImpl implements ContactListI { from_column = 0; } - if (to_column > getContactHeight()) + if (to_column >= getContactHeight()) { - to_column = getContactHeight(); + to_column = getContactHeight() - 1; } ContactRange cr = new ContactRange(); cr.setFrom_column(from_column); @@ -83,7 +108,7 @@ public class ContactListImpl implements ContactListI } } } - if (tot > 0) + if (tot > 0 && to_column > from_column) { cr.setMean(tot / (1 + to_column - from_column)); } @@ -94,4 +119,15 @@ public class ContactListImpl implements ContactListI return cr; } + @Override + public int[] getMappedPositionsFor(int cStart, int cEnd) + { + return clist.getMappedPositionsFor(cStart, cEnd); + } + + @Override + public Color getColourForGroup() + { + return clist.getColourForGroup(); + } }