aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/itmill/toolkit/ui/GridLayout.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/com/itmill/toolkit/ui/GridLayout.java b/src/com/itmill/toolkit/ui/GridLayout.java
index ad91568390..9cbaa9b59f 100644
--- a/src/com/itmill/toolkit/ui/GridLayout.java
+++ b/src/com/itmill/toolkit/ui/GridLayout.java
@@ -104,6 +104,8 @@ public class GridLayout extends AbstractLayout {
*/
public static final int ALIGNMENT_VERTICAL_CENTER = AlignmentInfo.ALIGNMENT_VERTICAL_CENTER;
+ private static final int ALIGNMENT_DEFAULT = ALIGNMENT_TOP + ALIGNMENT_LEFT;
+
/**
* Is spacing between contained components enabled. Defaults to false.
*/
@@ -407,6 +409,9 @@ public class GridLayout extends AbstractLayout {
// Empty cell collector
int emptyCells = 0;
+ final String[] alignmentsArray = new String[components.size()];
+ int index = 0;
+
// Iterates every applicable row
for (int cury = 0; cury < rows; cury++) {
target.startTag("gr");
@@ -446,6 +451,9 @@ public class GridLayout extends AbstractLayout {
}
area.getComponent().paint(target);
+ alignmentsArray[index++] = String
+ .valueOf(getComponentAlignment(area.getComponent()));
+
target.endTag("gc");
// Fetch next item
@@ -532,6 +540,20 @@ public class GridLayout extends AbstractLayout {
} // iterates every row
// Last row handled
+
+ // Add child component alignment info to layout tag
+ target.addAttribute("alignments", alignmentsArray);
+
+ }
+
+ public int getComponentAlignment(Component childComponent) {
+ final Integer bitMask = (Integer) componentToAlignment
+ .get(childComponent);
+ if (bitMask != null) {
+ return bitMask.intValue();
+ } else {
+ return ALIGNMENT_DEFAULT;
+ }
}
/**