package org.broad.igv.feature.dsi;
import htsjdk.tribble.Feature;
import org.broad.igv.track.FeatureSource;
import org.broad.igv.track.FeatureTrack;
import org.broad.igv.ui.panel.ReferenceFrame;
import org.broad.igv.util.ResourceLocator;
import java.util.List;
/**
* Created by jrobinson on 7/19/16.
*/
public class DSITrack extends FeatureTrack {
public DSITrack(ResourceLocator locator, FeatureSource src) {
super(locator, src);
setRenderer(new DSIRenderer());
}
@Override
public String getValueStringAt(String chr, double position, int mouseX, int mouseY, ReferenceFrame frame) {
List<Feature> allFeatures = getAllFeatureAt(position, mouseY, frame);
if (allFeatures == null) {
return null;
}
StringBuffer buf = new StringBuffer();
boolean firstFeature = true;
int maxNumber = 10;
int n = 1;
for (Feature feature : allFeatures) {
if (feature != null && feature instanceof DSIFeature) {
if (!firstFeature) {
buf.append("<hr><br>");
}
DSIFeature igvFeature = (DSIFeature) feature;
String vs = igvFeature.getValueString(position, null);
buf.append(vs);
firstFeature = false;
if (n > maxNumber) {
buf.append("...");
break;
}
}
n++;
}
return buf.toString();
}
}