1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4
5 package net.sourceforge.pmd.cpd;
6
7 import javax.swing.*;
8 import java.awt.Component;
9 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 }
61