RibbonCategoryLabel.java

00001 package edu.stanford.hci.r3.util.components.ribbons;
00002 
00003 import static edu.stanford.hci.r3.util.components.ribbons.RibbonConstants.CATEGORY_LABEL_FONT;
00004 import static edu.stanford.hci.r3.util.components.ribbons.RibbonConstants.NOT_SELECTED_COLOR;
00005 import static edu.stanford.hci.r3.util.components.ribbons.RibbonConstants.SELECTED_COLOR;
00006 
00007 import java.awt.CardLayout;
00008 import java.awt.Color;
00009 import java.awt.Graphics;
00010 import java.awt.Graphics2D;
00011 import java.awt.event.MouseAdapter;
00012 import java.awt.event.MouseEvent;
00013 
00014 import javax.swing.JLabel;
00015 import javax.swing.JPanel;
00016 
00017 import edu.stanford.hci.r3.util.graphics.GraphicsUtils;
00018 
00031 public class RibbonCategoryLabel extends JPanel {
00032 
00033         private boolean isSelected;
00034 
00035         private JLabel labelText;
00036 
00037         private CardLayout layout;
00038 
00039         private String name;
00040 
00041         private RibbonToolbar parentToolbar;
00042 
00043         private JPanel toolPanel;
00044 
00049         public RibbonCategoryLabel(String categoryName, RibbonToolbar toolbar) {
00050                 parentToolbar = toolbar;
00051                 name = categoryName;
00052                 labelText = new JLabel(name);
00053                 labelText.setFont(CATEGORY_LABEL_FONT);
00054                 add(labelText);
00055                 addMouseListener(getClickListener());
00056                 setOpaque(false);
00057         }
00058 
00062         private MouseAdapter getClickListener() {
00063                 return new MouseAdapter() {
00064                         public void mousePressed(MouseEvent e) {
00065                                 System.out.println("Clicked on Category Label: " + name);
00066                                 if (layout != null) {
00067                                         layout.show(toolPanel, name);
00068                                         parentToolbar.setSelectedLabel(RibbonCategoryLabel.this);
00069                                 }
00070                         }
00071                 };
00072         }
00073 
00077         protected void paintComponent(Graphics g) {
00078                 super.paintComponent(g);
00079                 final Graphics2D g2d = (Graphics2D) g;
00080                 g2d.setRenderingHints(GraphicsUtils.getBestRenderingHints());
00081 
00082                 // dimensions
00083                 final int w = getWidth();
00084                 final int h = getHeight();
00085 
00086                 if (isSelected) {
00087                         g2d.setColor(SELECTED_COLOR);
00088                         g2d.fillRoundRect(0, 0, w, h + 14, 14, 14);
00089                 } else {
00090                         g2d.setColor(NOT_SELECTED_COLOR);
00091                         g2d.fillRoundRect(0, 0, w, h + 14, 14, 14);
00092 
00093                 }
00094         }
00095 
00100         public void setCardLayoutInfo(CardLayout cardLayout, JPanel tools) {
00101                 layout = cardLayout;
00102                 toolPanel = tools;
00103         }
00104 
00109         public void setSelected(boolean selected) {
00110                 isSelected = selected;
00111 
00112                 if (isSelected) {
00113                         labelText.setForeground(Color.BLACK);
00114                 } else {
00115                         labelText.setForeground(Color.GRAY);
00116                 }
00117                 repaint();
00118         }
00119 
00120 }

Generated on Sat Apr 14 18:21:38 2007 for R3 Paper Toolkit by  doxygen 1.4.7