@Override
		public void paint(Graphics g) {
			if (message == null) {
				return;
			}

			Graphics2D g2 = (Graphics2D) g;
			Composite originalComposite = g2.getComposite();

			// this composite softens the text and color of the message
			g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SrcOver.getRule(), .60f));

			Font font = Gui.getFont(FONT_ID);
			g.setFont(font);

			Rectangle stringBounds =
				font.getStringBounds(message, g2.getFontRenderContext()).getBounds();

			Rectangle viewerBounds = primaryViewer.getBounds();
			Point viewPosition = viewerBounds.getLocation();
			int bottomY = (int) (viewPosition.y + viewerBounds.getHeight());

			int startX = 0;
			int startY = bottomY - 5; // add some padding

			Color[] colors = new Color[] { backgroundColor, primaryViewer.getBackground() };

			int backgroundHeight = (stringBounds.height * 3);
			int backgroundWidth = viewerBounds.width;
			int backgroundX = startX;
			int backgroundY = bottomY - backgroundHeight;

			float[] fractions = new float[] { 0.0f, .95f };
			int upperY = backgroundY;
			LinearGradientPaint bottomToTopGradiant = new LinearGradientPaint(
				new Point(startX, startY), new Point(startX, upperY), fractions, colors);

			g2.setPaint(bottomToTopGradiant);
			g2.fillRect(backgroundX, upperY, backgroundWidth, backgroundHeight);

			g2.setPaint(Palette.BLACK);
			int textX =
				startX + (isGraphViewStale() ? staleGraphViewPanel.getBounds().width + 5 : 0);
			g2.drawString(message, textX, startY);

			g2.setComposite(originalComposite);
		}
Sets the given vertex to be the focused vertex.  This will be the only focused vertex.

@param vertex the vertex
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphComponent.java