/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ // stolen from XPath Explorer (http://www.xpathexplorer.com) package net.sourceforge.pmd.cpd; import java.awt.Component; import java.awt.Container; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.JLabel; import javax.swing.SwingConstants; public class GridBagHelper { GridBagLayout gridbag; Container container; GridBagConstraints c; int x = 0; int y = 0; int labelAlignment = SwingConstants.RIGHT; double[] weights; public GridBagHelper(Container container, double[] weights) { this.container = container; this.weights = weights; gridbag = new GridBagLayout(); container.setLayout(gridbag); c = new GridBagConstraints(); c.insets = new Insets(2, 2, 2, 2); c.anchor = GridBagConstraints.EAST; c.fill = GridBagConstraints.HORIZONTAL; } public void add(Component component) { add(component, 1); } public void add(Component component, int width) { c.gridx = x; c.gridy = y; c.weightx = weights[x]; c.gridwidth = width; gridbag.setConstraints(component, c); container.add(component); x += width; } public void nextRow() { y++; x = 0; } public void addLabel(String label) { add(new JLabel(label, labelAlignment)); } }