1. /*
  2. * @(#)CenterLayout.java 1.12 03/12/19
  3. *
  4. * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package javax.swing.plaf.basic;
  8. import java.awt.*;
  9. import java.io.*;
  10. /**
  11. * Center-positioning layout manager.
  12. * @version 1.12 12/19/03
  13. * @author Tom Santos
  14. * @author Steve Wilson
  15. */
  16. class CenterLayout implements LayoutManager, Serializable {
  17. public void addLayoutComponent(String name, Component comp) { }
  18. public void removeLayoutComponent(Component comp) { }
  19. public Dimension preferredLayoutSize( Container container ) {
  20. Component c = container.getComponent( 0 );
  21. if ( c != null ) {
  22. Dimension size = c.getPreferredSize();
  23. Insets insets = container.getInsets();
  24. return new Dimension(size.width + insets.left + insets.right,
  25. size.height + insets.top + insets.bottom);
  26. }
  27. else {
  28. return new Dimension( 0, 0 );
  29. }
  30. }
  31. public Dimension minimumLayoutSize(Container cont) {
  32. return preferredLayoutSize(cont);
  33. }
  34. public void layoutContainer(Container container) {
  35. if (container.getComponentCount() > 0) {
  36. Component c = container.getComponent(0);
  37. Dimension pref = c.getPreferredSize();
  38. int containerWidth = container.getWidth();
  39. int containerHeight = container.getHeight();
  40. Insets containerInsets = container.getInsets();
  41. containerWidth -= containerInsets.left +
  42. containerInsets.right;
  43. containerHeight -= containerInsets.top +
  44. containerInsets.bottom;
  45. int left = (containerWidth - pref.width) / 2 +
  46. containerInsets.left;
  47. int right = (containerHeight - pref.height) / 2 +
  48. containerInsets.top;
  49. c.setBounds(left, right, pref.width, pref.height);
  50. }
  51. }
  52. }