Source Code : DividerLayout is layout that divides two components with the column of actions

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

DividerLayout is layout that divides two components with the column of actions

    
/*
 * $Id: DividerLayout.java,v 1.1.1.1 2005/04/07 18:36:20 pocho Exp $
 */
// Revised from javautils swing;

import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.LayoutManager2;
import java.awt.Rectangle;

/**
 * <p>
 * <code>DividerLayout</code> is layout that divides two components with the
 * column of actions. It is especially usefull for components that contains
 * two lists of elements and buttons for transfering elements between these
 * two lists.
 * </p>
 * <p>
 *   Components are indicated as {@link #WEST}, {@link #EAST} and {@link #CENTER}.
 * </p>
 * 
 * @version $Name:  $ - $Revision: 1.1.1.1 $ - $Date: 2005/04/07 18:36:20 $
 * TODO Test
 */
public class DividerLayout implements LayoutManager2 {
  
  /**
   * Indicates west component
   */
  public final static String WEST = "WEST";
  /**
   * indicates east component
   */
  public final static String EAST = "EAST";
  /**
   * indicates center component
   */
  public final static String CENTER = "CENTER";

  /**
   * west component
   */
  protected Component westComponent;
  
  /**
   * center component
   */
  protected Component centerComponent;
  
  /**
   * east component
   */
  protected Component eastComponent;
  
  /**
   * Adds a component to specified position.
   */
  public void addLayoutComponent(Component comp, Object constraints) {
    if (WEST.equalsIgnoreCase((String) constraints)) {
      westComponent = comp;
    }
    else if (CENTER.equalsIgnoreCase((String) constraints)) {
      centerComponent = comp;
    }
    else if (EAST.equalsIgnoreCase((String) constraints)) {
      eastComponent = comp;
    }
  }

  /**
   * @see java.awt.LayoutManager2#maximumLayoutSize(java.awt.Container)
   */
  public Dimension maximumLayoutSize(Container target) {
    Dimension size;
    int width = 0;
    int height = 0;
    if ((westComponent != null) && (westComponent.isVisible())) {
      size = westComponent.getMaximumSize();
      width = Math.max(width, size.width);
      height = Math.max(height, size.height);
    }
    if ((eastComponent != null) && (eastComponent.isVisible())) {
      size = eastComponent.getMaximumSize();
      width = Math.max(width, size.width);
      height = Math.max(height, size.height);
    }
    width *= 2;
    if ((centerComponent != null) && (centerComponent.isVisible())) {
      size = centerComponent.getPreferredSize();
      width += size.width;
      height = Math.max(height, size.height);
    }
    return new Dimension(width, height);
  }

  /**
   * @see java.awt.LayoutManager2#getLayoutAlignmentX(java.awt.Container)
   */
  public float getLayoutAlignmentX(Container target) {
    return 0.0f;
  }

  /**
   * @see java.awt.LayoutManager2#getLayoutAlignmentY(java.awt.Container)
   */
  public float getLayoutAlignmentY(Container target) {
    return 0.0f;
  }

  /**
   * @see java.awt.LayoutManager2#invalidateLayout(java.awt.Container)
   */
  public void invalidateLayout(Container target) {}

  /**
   * @see java.awt.LayoutManager#addLayoutComponent(java.lang.String, java.awt.Component)
   */
  public void addLayoutComponent(String name, Component comp) {
    addLayoutComponent(comp, name);
  }

  /**
   * @see java.awt.LayoutManager#removeLayoutComponent(java.awt.Component)
   */
  public void removeLayoutComponent(Component comp) {
    if (comp == westComponent) {
      westComponent = null;
    }
    else if (comp == centerComponent) {
      centerComponent = null;
    }
    else if (comp == eastComponent) {
      centerComponent = null;
    }
  }
  
  /**
   * @see java.awt.LayoutManager#preferredLayoutSize(java.awt.Container)
   */
  public Dimension preferredLayoutSize(Container parent) {
    Dimension size;
    int width = 0;
    int height = 0;
    if ((westComponent != null) && (westComponent.isVisible())) {
      size = westComponent.getPreferredSize();
      width = Math.max(width, size.width);
      height = Math.max(height, size.height);
    }
    if ((eastComponent != null) && (eastComponent.isVisible())) {
      size = eastComponent.getPreferredSize();
      width = Math.max(width, size.width);
      height = Math.max(height, size.height);
    }
    width *= 2;
    if ((centerComponent != null) && (centerComponent.isVisible())) {
      size = centerComponent.getPreferredSize();
      width += size.width;
      height = Math.max(height, size.height);
    }
    return new Dimension(width, height);
  }


  /**
   * @see java.awt.LayoutManager#minimumLayoutSize(java.awt.Container)
   */
  public Dimension minimumLayoutSize(Container parent) {
    Dimension size;
    int width = 0;
    int height = 0;
    if ((westComponent != null) && (westComponent.isVisible())) {
      size = westComponent.getMinimumSize();
      width = Math.max(width, size.width);
      height = Math.max(height, size.height);
    }
    if ((eastComponent != null) && (eastComponent.isVisible())) {
      size = eastComponent.getMinimumSize();
      width = Math.max(width, size.width);
      height = Math.max(height, size.height);
    }
    width *= 2;
    if ((centerComponent != null) && (centerComponent.isVisible())) {
      size = centerComponent.getPreferredSize();
      width += size.width;
      height += Math.max(height, size.height);
    }
    return new Dimension(width, height);
  }

  /**
   * @see java.awt.LayoutManager#layoutContainer(java.awt.Container)
   */
  public void layoutContainer(Container container) {
   Insets insets = container.getInsets();
   Dimension westSize = new Dimension(0, 0);
   Dimension centerSize = new Dimension(0, 0);
   Dimension eastSize = new Dimension(0, 0);
   Rectangle centerBounds = new Rectangle(0, 0, 0, 0);
   Dimension containerSize = container.getSize();
   int centerX = containerSize.width / 2;
   int centerY = containerSize.height / 2;
   if ((centerComponent != null) &&
       (centerComponent.isVisible())) {
     centerSize = centerComponent.getPreferredSize();
     centerSize.width = Math.min(centerSize.width,
         containerSize.width - insets.left -
         insets.right);
     centerSize.height = Math.min(centerSize.height,
         containerSize.height - insets.top -
         insets.bottom);
     centerComponent.setBounds(centerX -
         (centerSize.width / 2),
         centerY - (centerSize.height / 2),
         centerSize.width, centerSize.height);
     centerBounds = centerComponent.getBounds();
   }
   if ((westComponent != null) && (westComponent.isVisible())) {
     westSize = westComponent.getPreferredSize();
   }
   if ((eastComponent != null) && (eastComponent.isVisible())) {
     eastSize = eastComponent.getPreferredSize();
   }
  /* int maxWidth = Math.min(westSize.width, eastSize.width);
   maxWidth = Math.min(maxWidth, (containerSize.width -
       centerBounds.width - insets.left -
       insets.right) / 2);*/
  int maxWidth = (containerSize.width -
       centerBounds.width - insets.left -
       insets.right) / 2;

  /* int maxHeight = Math.min(westSize.height, eastSize.height);
    maxHeight = Math.max(maxHeight, containerSize.height -
       insets.top - insets.bottom);*/
  int maxHeight=containerSize.height - insets.top - insets.bottom;
   if (westComponent != null) {
     westComponent.setBounds(centerBounds.x - maxWidth,
         centerY - (maxHeight / 2),
         maxWidth, maxHeight);
   }
   if (eastComponent != null) {
     eastComponent.setBounds(centerBounds.x +
         centerBounds.width,
         centerY - (maxHeight / 2),
         maxWidth, maxHeight);
   }
 }


}

   
    
    
    
  

Thank with us