From 2f4d0efe83a0e5241b72399584b82b6c5072af92 Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Wed, 28 May 2008 06:15:47 +0000 Subject: [PATCH] alignment support for "fallback" grid layout svn changeset:4654/svn branch:trunk --- .../terminal/gwt/client/ui/IGridLayout.java | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IGridLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IGridLayout.java index 659fa68215..f557ae5b51 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IGridLayout.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IGridLayout.java @@ -8,9 +8,13 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.ui.FlexTable; +import com.google.gwt.user.client.ui.HasHorizontalAlignment; import com.google.gwt.user.client.ui.HasVerticalAlignment; import com.google.gwt.user.client.ui.Widget; +import com.google.gwt.user.client.ui.HasHorizontalAlignment.HorizontalAlignmentConstant; +import com.google.gwt.user.client.ui.HasVerticalAlignment.VerticalAlignmentConstant; import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection; import com.itmill.toolkit.terminal.gwt.client.CaptionWrapper; import com.itmill.toolkit.terminal.gwt.client.Container; @@ -46,6 +50,9 @@ public class IGridLayout extends FlexTable implements Paintable, Container { } clear(); + final int[] alignments = uidl.getIntArrayAttribute("alignments"); + int alignmentIndex = 0; + for (final Iterator i = uidl.getChildIterator(); i.hasNext();) { final UIDL r = (UIDL) i.next(); if ("gr".equals(r.getTag())) { @@ -62,9 +69,29 @@ public class IGridLayout extends FlexTable implements Paintable, Container { } else { w = 1; } - // TODO do real alignments - (getRowFormatter()).setVerticalAlign(row, - HasVerticalAlignment.ALIGN_TOP); + AlignmentInfo alignmentInfo = new AlignmentInfo( + alignments[alignmentIndex++]); + + VerticalAlignmentConstant va; + if (alignmentInfo.isBottom()) { + va = HasVerticalAlignment.ALIGN_BOTTOM; + } else if (alignmentInfo.isTop()) { + va = HasVerticalAlignment.ALIGN_TOP; + } else { + va = HasVerticalAlignment.ALIGN_MIDDLE; + } + + HorizontalAlignmentConstant ha; + + if (alignmentInfo.isLeft()) { + ha = HasHorizontalAlignment.ALIGN_LEFT; + } else if (alignmentInfo.isHorizontalCenter()) { + ha = HasHorizontalAlignment.ALIGN_CENTER; + } else { + ha = HasHorizontalAlignment.ALIGN_RIGHT; + } + + getCellFormatter().setAlignment(row, column, ha, va); // set col span ((FlexCellFormatter) getCellFormatter()).setColSpan( @@ -95,6 +122,9 @@ public class IGridLayout extends FlexTable implements Paintable, Container { setWidget(row, column, wr); + DOM.setStyleAttribute(wr.getElement(), "textAlign", + alignmentInfo.getHorizontalAlignment()); + if (!u.getBooleanAttribute("cached")) { child.updateFromUIDL(u, client); } -- 2.39.5