From 4722100cba287b164957c658c2e035783e20c963 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 18 Feb 2009 17:33:22 +0000 Subject: moved sources --- client/helper/GUIHelper.java | 189 ------------------------------------------- 1 file changed, 189 deletions(-) delete mode 100644 client/helper/GUIHelper.java (limited to 'client/helper/GUIHelper.java') diff --git a/client/helper/GUIHelper.java b/client/helper/GUIHelper.java deleted file mode 100644 index 5da3bbf..0000000 --- a/client/helper/GUIHelper.java +++ /dev/null @@ -1,189 +0,0 @@ -package client.helper; - -import javax.swing.*; -import javax.swing.SpringLayout; -import java.awt.*; - -import shared.*; - -/** - * This helper class helps to create well arranged GUI components. - * Its creating form- or grid-style layouts using the SpringLayout class. - * @author buetow - */ -public class GUIHelper { - /** - * Aligns the first iRows * iCols - * components of the parent in a grid. Each component is as big as the maximum - * preferred width and height of the components. - * The parent is made just big enough to fit them all. - * @param containerParent Specifies the container to be used - * @param iRows Specifies the number of rows to use. - * @param iCols Specifies the number of columns to use. - * @param iInitialX Specifies the x location to start the grid at. - * @param iInitialY Specifies the y location to start the grid at. - * @param iXPad Specifies the x padding between the cells. - * @param iYPad Specifies the y padding between the cells - */ - public static void makeGrid(Container containerParent, - int iRows, int iCols, - int iInitialX, int iInitialY, - int iXPad, int iYPad) { - SpringLayout helper; - try { - helper = (SpringLayout)containerParent.getLayout(); - } catch (ClassCastException exc) { - Main.infoMessage("Error: The first argument to makeGrid must use SpringLayout."); - return; - } - - Spring iXPadSpring = Spring.constant(iXPad); - Spring iYPadSpring = Spring.constant(iYPad); - Spring iInitialXSpring = Spring.constant(iInitialX); - Spring iInitialYSpring = Spring.constant(iInitialY); - int max = iRows * iCols; - - // Calculate Springs that are the max of the width/height so that all - // cells have the same size. - Spring maxWidthSpring = helper.getConstraints(containerParent.getComponent(0)). - getWidth(); - Spring maxHeightSpring = helper.getConstraints(containerParent.getComponent(0)). - getWidth(); - for (int i = 1; i < max; i++) { - SpringLayout.Constraints cons = helper.getConstraints( - containerParent.getComponent(i)); - - maxWidthSpring = Spring.max(maxWidthSpring, cons.getWidth()); - maxHeightSpring = Spring.max(maxHeightSpring, cons.getHeight()); - } - - // Apply the new width/height Spring. This forces all the - // components to have the same size. - for (int i = 0; i < max; i++) { - SpringLayout.Constraints cons = helper.getConstraints( - containerParent.getComponent(i)); - - cons.setWidth(maxWidthSpring); - cons.setHeight(maxHeightSpring); - } - - // Then adjust the x/y constraints of all the cells so that they - // are aligned in a grid. - SpringLayout.Constraints lastCons = null; - SpringLayout.Constraints lastRowCons = null; - for (int i = 0; i < max; i++) { - SpringLayout.Constraints cons = helper.getConstraints( - containerParent.getComponent(i)); - if (i % iCols == 0) { //start of new iRow - lastRowCons = lastCons; - cons.setX(iInitialXSpring); - } else { //x position depends on previous component - cons.setX(Spring.sum(lastCons.getConstraint(SpringLayout.EAST), - iXPadSpring)); - } - - if (i / iCols == 0) { //first iRow - cons.setY(iInitialYSpring); - } else { //y position depends on previous iRow - cons.setY(Spring.sum(lastRowCons.getConstraint(SpringLayout.SOUTH), - iYPadSpring)); - } - lastCons = cons; - } - - // Set the containerParent's size. - SpringLayout.Constraints pCons = helper.getConstraints(containerParent); - pCons.setConstraint(SpringLayout.SOUTH, - Spring.sum(Spring.constant(iYPad), lastCons.getConstraint(SpringLayout.SOUTH))); - pCons.setConstraint(SpringLayout.EAST, - Spring.sum(Spring.constant(iXPad), lastCons.getConstraint(SpringLayout.EAST))); - } - - /** - * This is a helper method for makeGrid. It returns the constraints for a specific cell. - * @param iRow Specifies the row to get the constraints for. - * @param iCol Specifies the column to get the constraints for. - * @param containerParent Specifies the parent container. - * @param iCols Specifies the number of columns being used. - * @return Returns the constraints object of the current SpringLayout. - */ - private static SpringLayout.Constraints getConstraintsForCell(int iRow, int iCol, - Container containerParent, int iCols) { - - SpringLayout helper = (SpringLayout) containerParent.getLayout(); - Component component = containerParent.getComponent(iRow * iCols + iCol); - return helper.getConstraints(component); - } - - /** - * Aligns the first iRows * iCols - * components of containerParent in - * a grid. Each component in a iColumn is as wide as the maximum - * preferred width of the components in that iColumn; - * height is similarly determined for each iRow. - * The containerParent is made just big enough to fit them all. - * @param iRows Specifies number of rows. - * @param iCols Specifies the number of columns. - * @param iInitialX Specifies the x location to start the grid at. - * @param iInitialY Specifies the y location to start the grid at. - * @param iXPad Specifies the x padding between the cells. - * @param iYPad Specifies the y padding between the cells. - */ - public static void makeCompactGrid(Container containerParent, - int iRows, int iCols, - int iInitialX, int iInitialY, - int iXPad, int iYPad) { - SpringLayout helper; - - try { - helper = (SpringLayout)containerParent.getLayout(); - } catch (ClassCastException exc) { - Main.infoMessage("Error: The first argument to makeCompactGrid must use SpringLayout."); - return; - } - - // Align all cells in each iColumn and make them the same width. - Spring x = Spring.constant(iInitialX); - for (int c = 0; c < iCols; c++) { - Spring width = Spring.constant(0); - for (int r = 0; r < iRows; r++) { - width = Spring.max(width, - getConstraintsForCell(r, c, containerParent, iCols).getWidth()); - } - - for (int r = 0; r < iRows; r++) { - SpringLayout.Constraints constraints = - getConstraintsForCell(r, c, containerParent, iCols); - constraints.setX(x); - constraints.setWidth(width); - } - x = Spring.sum(x, Spring.sum(width, Spring.constant(iXPad))); - } - - // Align all cells in each iRow and make them the same height. - Spring y = Spring.constant(iInitialY); - for (int r = 0; r < iRows; r++) { - Spring height = Spring.constant(0); - - for (int c = 0; c < iCols; c++) { - height = Spring.max(height, - getConstraintsForCell(r, c, containerParent, iCols).getHeight()); - } - - for (int c = 0; c < iCols; c++) { - SpringLayout.Constraints constraints = - getConstraintsForCell(r, c, containerParent, iCols); - - constraints.setY(y); - constraints.setHeight(height); - } - - y = Spring.sum(y, Spring.sum(height, Spring.constant(iYPad))); - } - - // Set the containerParent's size. - SpringLayout.Constraints pCons = helper.getConstraints(containerParent); - pCons.setConstraint(SpringLayout.SOUTH, y); - pCons.setConstraint(SpringLayout.EAST, x); - } -} -- cgit v1.2.3