// if program is partially not visible then show the title as tooltip
final JViewport viewport = MainFrame.getInstance()
.getProgramTableScrollPane().getViewport();
Point viewPos = viewport.getViewPosition();
Dimension viewSize = viewport.getSize();
final Program program = panel.getProgram();
if ((currY < viewPos.y)
|| (panelIndex.x * mColumnWidth + panel.getTitleX() < viewPos.x)
|| ((panelIndex.x + 1) * mColumnWidth - 1 > viewPos.x
+ viewSize.width)) {
if (buffer.indexOf(program.getTitle()) < 0) {
appendTooltip(buffer, program.getTitle());
}
}
// show end time if start time of next
// shown program is not end of current program
ProgramPanel nextPanel = mModel.getProgramPanel(panelIndex.x,
panelIndex.y + 1);
boolean showTime = (nextPanel == null && program.getLength() > 0);
if (nextPanel != null) {
int length = program.getLength();
int nextStartTime = nextPanel.getProgram().getStartTime();
if (nextStartTime < program.getStartTime()) {
nextStartTime += 24 * 60;
}
if ((length > 0)
&& (program.getStartTime() + length + 1 < nextStartTime)) {
showTime = true;
}
}
if (showTime) {
appendTooltip(buffer, mLocalizer.msg("until", "until {0}", program
.getEndTimeString()));
}
if (buffer.length() > 0) {
return buffer.toString();
}