GridBagHelper.java
01 /**
02  * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
03  */
04 // stolen from XPath Explorer (http://www.xpathexplorer.com)
05 package net.sourceforge.pmd.cpd;
06 
07 import javax.swing.*;
08 import java.awt.Component;
09 import java.awt.Container;
10 import java.awt.GridBagConstraints;
11 import java.awt.GridBagLayout;
12 import java.awt.Insets;
13 
14 public class GridBagHelper {
15 
16     GridBagLayout gridbag;
17     Container container;
18     GridBagConstraints c;
19     int x = 0;
20     int y = 0;
21     int labelAlignment = SwingConstants.RIGHT;
22     double[] weights;
23 
24     public GridBagHelper(Container container, double[] weights) {
25         this.container = container;
26         this.weights = weights;
27 
28         gridbag = new GridBagLayout();
29         container.setLayout(gridbag);
30 
31         c = new GridBagConstraints();
32         c.insets = new Insets(2222);
33         c.anchor = GridBagConstraints.EAST;
34         c.fill = GridBagConstraints.HORIZONTAL;
35     }
36 
37     public void add(Component component) {
38         add(component, 1);
39     }
40 
41     public void add(Component component, int width) {
42         c.gridx = x;
43         c.gridy = y;
44         c.weightx = weights[x];
45         c.gridwidth = width;
46         gridbag.setConstraints(component, c);
47         container.add(component);
48         x += width;
49     }
50 
51     public void nextRow() {
52         y++;
53         x = 0;
54     }
55 
56     public void addLabel(String label) {
57         add(new JLabel(label, labelAlignment));
58     }
59 
60 }