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 }