X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fdatamodel%2FContactListImpl.java;h=dc7982b1a59f94639af3b3554388405208c30fdb;hb=85299bc2db43c8b108169661ebc1c4d9b2d3d2e5;hp=561048eb144bff37c82de94d9536a6a5a0998208;hpb=48935da8225797aada1fe5f0863385b6b57ee67e;p=jalview.git diff --git a/src/jalview/datamodel/ContactListImpl.java b/src/jalview/datamodel/ContactListImpl.java index 561048e..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 * @@ -21,6 +45,12 @@ public class ContactListImpl implements ContactListI } @Override + public int getPosition() + { + return clist.getPosition(); + } + + @Override public double getContactAt(int column) { return clist.getContactAt(column); @@ -35,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 @@ -44,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); @@ -77,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)); } @@ -88,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(); + } }