]> source.dussan.org Git - vaadin-framework.git/commitdiff
alignments painting for GridLayout
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 5 Feb 2008 15:32:42 +0000 (15:32 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 5 Feb 2008 15:32:42 +0000 (15:32 +0000)
svn changeset:3711/svn branch:trunk

src/com/itmill/toolkit/ui/GridLayout.java

index ad91568390c0d05248905ab9240bb42f803be919..9cbaa9b59fc4b36176fcebc99f6418d1d0211e70 100644 (file)
@@ -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;
+        }
     }
 
     /**