RibbonPanel.java

00001 package edu.stanford.hci.r3.util.components.ribbons;
00002 
00003 import java.awt.BorderLayout;
00004 import java.awt.Color;
00005 import java.awt.Component;
00006 import java.awt.GradientPaint;
00007 import java.awt.Graphics;
00008 import java.awt.Graphics2D;
00009 
00010 import javax.swing.BorderFactory;
00011 import javax.swing.JPanel;
00012 import javax.swing.SpringLayout;
00013 
00014 import edu.stanford.hci.r3.util.graphics.GraphicsUtils;
00015 import edu.stanford.hci.r3.util.layout.SpringLayoutUtils;
00016 
00028 public class RibbonPanel extends JPanel implements RibbonConstants {
00029 
00033         private String displayName;
00034 
00038         private JPanel toolPanel;
00039 
00043         public RibbonPanel(String name) {
00044                 displayName = name;
00045                 super.setLayout(new BorderLayout());
00046                 super.add(getToolPanel(), BorderLayout.CENTER);
00047                 super.add(new RibbonPanelHeader(displayName), BorderLayout.SOUTH);
00048                 setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 1));
00049                 setBackground(Color.GRAY);
00050         }
00051 
00057         public Component add(Component comp) {
00058                 return getToolPanel().add(comp);
00059         }
00060 
00066         @Override
00067         public Component add(Component comp, int index) {
00068                 return getToolPanel().add(comp, index);
00069         }
00070 
00076         @Override
00077         public void add(Component comp, Object constraints) {
00078                 getToolPanel().add(comp, constraints);
00079         }
00080 
00086         @Override
00087         public void add(Component comp, Object constraints, int index) {
00088                 getToolPanel().add(comp, constraints, index);
00089         }
00090 
00097         public JPanel getToolPanel() {
00098                 if (toolPanel == null) {
00099                         toolPanel = new JPanel() {
00100                                 private final GradientPaint gradient = new GradientPaint(0, 0, PANEL_BEGIN_COLOR, 0,
00101                                                 getHeight(), PANEL_END_COLOR, false);
00102 
00103                                 @Override
00104                                 protected void paintComponent(Graphics g) {
00105                                         super.paintComponent(g);
00106                                         final Graphics2D g2d = (Graphics2D) g;
00107                                         g2d.setRenderingHints(GraphicsUtils.getBestRenderingHints());
00108                                         // paint the background gradient
00109                                         g2d.setPaint(gradient);
00110                                         g2d.fillRect(0, 0, getWidth(), getHeight());
00111                                 }
00112                         };
00113                         toolPanel.setLayout(new SpringLayout());
00114                 }
00115                 return toolPanel;
00116         }
00117 
00124         public void layoutComponents(int rows, int cols) {
00125                 SpringLayoutUtils.makeCompactGrid(getToolPanel(), rows, cols, 5, 5, 5, 5);
00126         }
00127 
00131         public void layoutComponents() {
00132                 SpringLayoutUtils.makeCompactGrid(getToolPanel(), 1, toolPanel.getComponentCount(), 5, 5, 5, 5);
00133         }
00134 }

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