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(2, 2, 2, 2);
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 }
|