Subversion Repositories wimsdev

Rev

Blame | Last modification | View Log | RSS feed

  1. package rene.gui;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dimension;
  7. import java.awt.Graphics;
  8. import java.awt.LayoutManager;
  9. import java.awt.Panel;
  10.  
  11. /**
  12. Panel3D extends the Panel class with a 3D look.
  13. */
  14.  
  15. public class Panel3D extends Panel
  16.         implements LayoutManager
  17. {       Component C;
  18.         /**
  19.         Adds the component to the panel.
  20.         This component is resized to leave 5 pixel on each side.
  21.         */
  22.         public Panel3D (Component c)
  23.         {       C=c;
  24.                 setLayout(this);
  25.                 add(C);
  26.                 setBackground(C.getBackground());
  27.         }
  28.        
  29.         public Panel3D (Component c, Color background)
  30.         {       C=c;
  31.                 setLayout(this);
  32.                 add(C);
  33.                 setBackground(background);
  34.         }
  35.        
  36.         public void paint (Graphics g)
  37.         {       g.setColor(getBackground());
  38.                 if (getSize().width>0 && getSize().height>0)
  39.                         g.fill3DRect(0,0,getSize().width,getSize().height,true);
  40.                 // C.repaint(); // probably not necessary, but Mac OSX bug ?!?
  41.         }
  42.  
  43.         public void addLayoutComponent (String arg0, Component arg1)
  44.         {       C=arg1;
  45.         }
  46.        
  47.         public void removeLayoutComponent(Component arg0)
  48.         {       C=null;
  49.         }
  50.        
  51.         public Dimension preferredLayoutSize(Container arg0)
  52.         {       if (C!=null) return new Dimension(
  53.                         C.getPreferredSize().width+10,C.getPreferredSize().height+10);
  54.                 return new Dimension(10,10);
  55.         }
  56.        
  57.         public Dimension minimumLayoutSize(Container arg0)
  58.         {       if (C!=null) return new Dimension(
  59.                         C.getMinimumSize().width+10,C.getMinimumSize().height+10);
  60.                 return new Dimension(10,10);
  61.         }
  62.        
  63.         public void layoutContainer(Container arg0)
  64.         {       if (C==null) return;
  65.                 C.setLocation(5,5);
  66.                 C.setSize(getSize().width-10,getSize().height-10);
  67.         }
  68. }
  69.