public void drawGenbankAnnotations( Graphics g)
	{
		this.colorIndex = 0;
		int yOffset = 3;
		
		g.setFont(new Font("SansSerif", Font.BOLD, 12));
		
		if( genbankAnnotationList == null || ! showGeneAnnotations)
			return;
		
		int leftBorder = selectedYAxis.isDisplayed() ? selectedYAxis.getNumPixelsReserved() :0;
		int xSize = getWidth();
	
		Color oldColor = g.getColor();
		int offSetSize = numPixelsReservedForGeneAnnotations / 5;
		
		for( GenbankAnnotations ga : genbankAnnotationList )
		{
			this.colorIndex++;
			yOffset += offSetSize;
			if( yOffset > numPixelsReservedForGeneAnnotations)
				yOffset = 3;
				
			if( colorIndex >= colors.length)
				colorIndex = 0;
			
			g.setColor(colors[colorIndex]);
			
			int x1 = getXValue(ga.getBeginPos(), xSize);
			int x2 = getXValue(ga.getEndPos(), xSize);
			
			// dummy values of 1 and 100 as the y axis is always ok for annotations
			if(lineIsInFrame(x1, x2,1,xSize,100))
			{
				int yValue = getHeight() - yOffset;
				
				drawSomeLines(g, x1, x2, yValue, leftBorder, xSize);
				ga.setXPixelStart(x1);
				ga.setXPixelEnd(x2);
				
				if(showGeneLabels)
				{
					g.setColor(Color.BLACK);
					g.drawString(ga.getProduct(), x1, yValue);
				}
					
			}
			else
			{
				ga.setXPixelStart(-1);
				ga.setXPixelEnd(-1);
			}
		}
		
		g.setColor(oldColor);
	}