// GridBadContainLayout.java
// CalculetteApp
//

import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Container;
import java.awt.Component;
import java.awt.Insets;

public class GridBagContainLayout extends GridBagLayout
{
	public GridBagContainLayout ()
	{
		super();
	}
	
	// positionnement des objets graphiques
	// toutes contraintes imposees
	public void constrain (Container container, Component component, int grid_x, int grid_y,
				int grid_width, int grid_height, int fill, int anchor, double
				weight_x, double weight_y, int top, int left, int bottom, int right)
	{
		GridBagConstraints c = new GridBagConstraints();
		c.gridx = grid_x ;
		c.gridy = grid_y;
		c.fill = fill;
		c.gridwidth = grid_width;
		c.gridheight = grid_height;
		c.weightx = weight_x;
		c.weighty = weight_y;
		if (top+bottom+left+right > 0)
			c.insets = new Insets (top, left, bottom, right);
		
		((GridBagContainLayout)container.getLayout()).setConstraints(component,c);
		container.add(component);
	}
	
	// pour composant qui n'augmente pas de taille et ne possede pas de marges
	public void constrain (Container container, Component component, int grid_x,
				int grid_y, int grid_width, int grid_height)
	{
		constrain(container, component, grid_x, grid_y, grid_width, grid_height,
			GridBagConstraints.NONE, GridBagConstraints.NORTHWEST, 0.0, 0.0, 0, 0, 0, 0);
	}
	
	// pour composant qui n'augemente pas de taille mais possede des marges
	public void constrain (Container container, Component component, int grid_x, int grid_y,
			int grid_width, int grid_height, int top, int left, int bottom, int right)
	{
		constrain(container, component, grid_x, grid_y, grid_width, grid_height,
			GridBagConstraints.NONE, GridBagConstraints.NORTHWEST, 0.0, 0.0, top, left, bottom, right);
	}
}
