01: /*
02: */
03: package com.cloudgarden.layout;
04:
05: /**
06: * Used by both AnchorLayout (SWT) and AnchorLayoutManager (Swing)
07: */
08: public class AnchorConstraint {
09:
10: /**
11: * Meaning: This side is not anchored.
12: */
13: public static final int ANCHOR_NONE = 0;
14:
15: /**
16: * (Relative anchor) Meaning: This side is anchored so that it always
17: * occurs a fixed fraction of
18: * the distance along it's parent's side. The position is calculated by
19: * the formula " position = (parent side)*(value)/1000 " so for
20: * instance if top=100 and topType == ANCHOR_REL then the
21: * value of y for this side would be (parent height)*top/1000.
22: */
23: public static final int ANCHOR_REL = 1;
24:
25: /**
26: * (Absolute anchor) Meaning: This side is anchored a fixed distance
27: * in pixels (given by the value for this side) from it's parent's respective side.
28: * For instance, if bottomType == ANCHOR_ABS and bottom = 100 then the
29: * bottom side of this component will remain fixed 100 pixels from
30: * the bottom side of it's parent container.
31: */
32: public static final int ANCHOR_ABS = 2;
33:
34: public int top;
35: public int bottom;
36: public int left;
37: public int right;
38: public int topType;
39: public int bottomType;
40: public int rightType;
41: public int leftType;
42:
43: public AnchorConstraint() {
44: this (0, 0, 0, 0, ANCHOR_NONE, ANCHOR_NONE, ANCHOR_NONE,
45: ANCHOR_NONE);
46: }
47:
48: /**
49: * Creates an AnchorConstraint.
50: * @param top - value (relative or absolute) for top side
51: * @param right - like 'top' but for right side
52: * @param bottom - like 'top' but for bottom side
53: * @param left - like 'top' but for left side
54: * @param topType - either ANCHOR_ABS, ANCHOR_REL or ANCHOR_NONE
55: * to indicate whether the 'top' parameter is an absolute value (in pixels) or
56: * a fractional value (in 1/1000 ths) of the height of this component's parent,
57: * denoting where the anchor will be applied (if at all).
58: * @param rightType - like 'topType' but for right side
59: * @param bottomType - like 'topType' but for bottom side
60: * @param leftType - like 'topType' but for left side
61: */
62: public AnchorConstraint(int top, int right, int bottom, int left,
63: int topType, int rightType, int bottomType, int leftType) {
64: this.top = top;
65: this.bottom = bottom;
66: this.left = left;
67: this.right = right;
68: this.topType = topType;
69: this.rightType = rightType;
70: this.bottomType = bottomType;
71: this.leftType = leftType;
72: }
73:
74: }
|