00001 package edu.stanford.hci.r3.util.components.ribbons;
00002
00003 import static edu.stanford.hci.r3.util.components.ribbons.RibbonConstants.HEADER_COLOR;
00004 import static edu.stanford.hci.r3.util.components.ribbons.RibbonConstants.HEADER_FONT;
00005 import static edu.stanford.hci.r3.util.components.ribbons.RibbonConstants.HEADER_HEIGHT;
00006
00007 import java.awt.Color;
00008 import java.awt.Dimension;
00009 import java.awt.Graphics;
00010 import java.awt.Graphics2D;
00011 import java.awt.geom.Rectangle2D;
00012
00013 import javax.swing.JPanel;
00014
00015 import edu.stanford.hci.r3.util.graphics.GraphicsUtils;
00016
00028 public class RibbonPanelHeader extends JPanel {
00029
00033 private String name;
00034
00038 RibbonPanelHeader(String displayName) {
00039 name = displayName;
00040 setMinimumSize(new Dimension(getWidth(), HEADER_HEIGHT));
00041 setMaximumSize(new Dimension(getWidth(), HEADER_HEIGHT));
00042 setPreferredSize(new Dimension(getWidth(), HEADER_HEIGHT));
00043 setOpaque(false);
00044 }
00045
00049 @Override
00050 protected void paintComponent(Graphics g) {
00051 super.paintComponent(g);
00052 final Graphics2D g2d = (Graphics2D) g;
00053 g2d.setRenderingHints(GraphicsUtils.getBestRenderingHints());
00054
00055 g2d.setColor(HEADER_COLOR);
00056 g2d.fillRoundRect(0, -14, getWidth(), getHeight()+14, 14, 14);
00057
00058 g2d.setFont(HEADER_FONT);
00059 Rectangle2D stringBounds = g2d.getFontMetrics().getStringBounds(name, g2d);
00060 g2d.setColor(Color.DARK_GRAY);
00061 g2d.drawString(name, 6, (int) (1 + stringBounds.getHeight()));
00062 g2d.setColor(Color.WHITE);
00063 g2d.drawString(name, 5, (int) (stringBounds.getHeight()));
00064 }
00065
00066 }