import jalview.datamodel.SequenceI;
import jalview.viewmodel.ViewportListenerI;
import jalview.viewmodel.ViewportRanges;
+import jalview.viewmodel.seqfeatures.IdColumn;
+import jalview.viewmodel.seqfeatures.IdColumns;
+import jalview.viewmodel.seqfeatures.IdColumns.ColumnCell;
/**
* DOCUMENT ME!
}
// Now draw the id strings
- int panelWidth = getWidth();
+ int fullPanelWidth = getWidth();
+
+ IdColumns id_cols = alignViewport.getIdColumns();
+ List<IdColumn> visible = id_cols.getVisible();
+ /**
+ * width of an idColumn
+ */
+ int colWid = 20;
+ int panelWidth = Math.max(fullPanelWidth / 2,
+ fullPanelWidth - (colWid * visible.size()));
int xPos = 0;
// Now draw the id strings
{
continue;
}
-
if (hasHiddenRows || alignViewport.isDisplayReferenceSeq())
{
g.setFont(getHiddenFont(sequence, alignViewport));
(((i - startSeq) * charHeight) + charHeight)
- (charHeight / 5));
+ if (visible != null && visible.size() > 0)
+ {
+ xPos = panelWidth + 2;
+ for (IdColumn col : visible)
+ {
+ ColumnCell col_cell = id_cols.getCellFor(sequence, col);
+ if (col_cell == null)
+ {
+ g.setColor(Color.gray);
+ g.fillRect(xPos, (i - startSeq) * charHeight, xPos + colWid - 4,
+ charHeight);
+ }
+ else
+ {
+ g.setColor(col_cell.bg);
+ g.fillRect(xPos, (i - startSeq) * charHeight, xPos + colWid - 4,
+ charHeight);
+ g.setColor(col_cell.fg);
+ g.drawString(col_cell.label, xPos,
+ (((i - startSeq) * charHeight) + charHeight)
+ - (charHeight / 5));
+ }
+ xPos += colWid;
+ g.setColor(currentTextColor);
+ }
+ }
if (hasHiddenRows && av.getShowHiddenMarkers())
{
drawMarker(g, alignViewport, i, startSeq, 0);