package com.illumina.basespace.igv.vcf; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Rectangle; import java.util.Collection; import java.util.List; import org.broad.igv.renderer.GraphicUtils; import org.broad.igv.track.FeatureSource; import org.broad.igv.track.PackedFeatures; import org.broad.igv.track.RenderContext; import org.broad.igv.ui.panel.MouseableRegion; import org.broad.igv.ui.panel.ReferenceFrame; import org.broad.igv.util.ResourceLocator; import org.broad.igv.variant.Variant; import org.broad.igv.variant.VariantTrack; import com.illumina.basespace.igv.vcf.VCFLocatorFactory.VCFTrackLoader; public class BaseSpaceVariantTrack extends VariantTrack { private VCFTrackLoader vcfLocator; public BaseSpaceVariantTrack(ResourceLocator locator, FeatureSource source, List<String> samples, boolean enableMethylationRateSupport) { super(locator, source, samples, enableMethylationRateSupport); vcfLocator = (VCFTrackLoader)locator; } @Override public Collection<String> getSelectedSamples() { Collection<String> samples = super.getSelectedSamples(); for(String sample:samples) { } return samples; } @Override public void renderAttributes(Graphics2D g2d, Rectangle trackRectangle, Rectangle visibleRectangle, List<String> attributeNames, List<MouseableRegion> mouseRegions) { super.renderAttributes(g2d, trackRectangle, visibleRectangle, attributeNames, mouseRegions); } @Override protected void renderFeatureImpl(RenderContext context, Rectangle trackRectangle, PackedFeatures packedFeatures) { if (packedFeatures.getRows().size() == 0 ) { boolean wasVCFError = BaseSpaceVariantSetApiFeatureReader.wasVcfError(vcfLocator.getFile().getId()); Color color = wasVCFError?Color.RED:Color.GRAY; String text = wasVCFError?"Data Unavailable":"No variants found"; Graphics2D g2D = context.getGraphics(); g2D.setColor(color); GraphicUtils.drawCenteredText(text, trackRectangle, g2D); setDisplayMode(DisplayMode.COLLAPSED); } else { super.renderFeatureImpl(context, trackRectangle, packedFeatures); } } }