private Rectangle boundsFor( LogInterval logInterval, int threadSetStartIndex, int threadSetEndIndex) { int x = uiLogTimeScale.modelToView(logInterval.getStart()); int width = uiLogTimeScale.modelToView(logInterval.getEnd()) - x; int threadSetStartY = threadScale.modelThreadIndexToView(threadSetStartIndex); int threadSetEndY = threadScale.modelThreadIndexToView(threadSetEndIndex + 1); return new Rectangle(x, threadSetStartY, width, threadSetEndY - threadSetStartY); }
private ThreadModel threadFor(Point point) { List<ThreadModel> threads = fullThreadList(); int threadIndex = threadScale.viewToModelThreadIndex(point); if (threadIndex >= 0 && threadIndex < threads.size()) { return threads.get(threadIndex); } return null; }
@Override protected int getPreferredHeight() { return threadScale.fullModelToViewLength(); }
private int minThreadIndexFor(Rectangle clipBounds, List<ThreadModel> fullThreadList) { return min(max(threadScale.viewToModelThreadIndex(clipBounds.y), 0), fullThreadList.size() - 1); }