From fb30fffdcb4c1e1e07e4ec8c1dc68f8104c911ee Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 25 Mar 2013 23:31:19 +0200 Subject: Enable setting default alignment for VerticalLayout, HorizontalLayout, GridLayout (#11421) Change-Id: I56b14a6a027dc700748f2bd7219b47e1134bb56a --- .../src/com/vaadin/ui/AbstractOrderedLayout.java | 28 +++++++++++++++++++++- server/src/com/vaadin/ui/GridLayout.java | 23 ++++++++++++++++++ server/src/com/vaadin/ui/Layout.java | 17 +++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) (limited to 'server/src') diff --git a/server/src/com/vaadin/ui/AbstractOrderedLayout.java b/server/src/com/vaadin/ui/AbstractOrderedLayout.java index 8c2f86926d..b06b2e0871 100644 --- a/server/src/com/vaadin/ui/AbstractOrderedLayout.java +++ b/server/src/com/vaadin/ui/AbstractOrderedLayout.java @@ -53,6 +53,8 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements */ protected LinkedList components = new LinkedList(); + private Alignment defaultComponentAlignment = Alignment.TOP_LEFT; + /* Child component alignments */ /** @@ -147,7 +149,9 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements } private void componentAdded(Component c) { - getState().childData.put(c, new ChildComponentData()); + ChildComponentData ccd = new ChildComponentData(); + ccd.alignmentBitmask = getDefaultComponentAlignment().getBitMask(); + getState().childData.put(c, ccd); } /** @@ -417,4 +421,26 @@ public abstract class AbstractOrderedLayout extends AbstractLayout implements public void setMargin(MarginInfo marginInfo) { getState().marginsBitmask = marginInfo.getBitMask(); } + + /* + * (non-Javadoc) + * + * @see com.vaadin.ui.Layout.AlignmentHandler#getDefaultComponentAlignment() + */ + @Override + public Alignment getDefaultComponentAlignment() { + return defaultComponentAlignment; + } + + /* + * (non-Javadoc) + * + * @see + * com.vaadin.ui.Layout.AlignmentHandler#setDefaultComponentAlignment(com + * .vaadin.ui.Alignment) + */ + public void setDefaultComponentAlignment(Alignment defaultAlignment) { + defaultComponentAlignment = defaultAlignment; + } + } diff --git a/server/src/com/vaadin/ui/GridLayout.java b/server/src/com/vaadin/ui/GridLayout.java index e60d9c676a..60664c8937 100644 --- a/server/src/com/vaadin/ui/GridLayout.java +++ b/server/src/com/vaadin/ui/GridLayout.java @@ -92,6 +92,7 @@ public class GridLayout extends AbstractLayout implements private Map columnExpandRatio = new HashMap(); private Map rowExpandRatio = new HashMap(); + private Alignment defaultComponentAlignment = Alignment.TOP_LEFT; /** * Constructor for a grid of given size (number of columns and rows). @@ -573,6 +574,7 @@ public class GridLayout extends AbstractLayout implements int row2) { this.component = component; childData = new ChildComponentData(); + childData.alignment = getDefaultComponentAlignment().getBitMask(); childData.column1 = column1; childData.row1 = row1; childData.column2 = column2; @@ -1226,4 +1228,25 @@ public class GridLayout extends AbstractLayout implements return new MarginInfo(getState().marginsBitmask); } + /* + * (non-Javadoc) + * + * @see com.vaadin.ui.Layout.AlignmentHandler#getDefaultComponentAlignment() + */ + @Override + public Alignment getDefaultComponentAlignment() { + return defaultComponentAlignment; + } + + /* + * (non-Javadoc) + * + * @see + * com.vaadin.ui.Layout.AlignmentHandler#setDefaultComponentAlignment(com + * .vaadin.ui.Alignment) + */ + public void setDefaultComponentAlignment(Alignment defaultAlignment) { + defaultComponentAlignment = defaultAlignment; + } + } diff --git a/server/src/com/vaadin/ui/Layout.java b/server/src/com/vaadin/ui/Layout.java index cd6ffc42d2..dc16b186f2 100644 --- a/server/src/com/vaadin/ui/Layout.java +++ b/server/src/com/vaadin/ui/Layout.java @@ -61,6 +61,23 @@ public interface Layout extends ComponentContainer, Serializable { */ public Alignment getComponentAlignment(Component childComponent); + /** + * Sets the alignment used for new components added to this layout. The + * default is {@link Alignment#TOP_LEFT}. + * + * @param defaultComponentAlignment + * The new default alignment + */ + public void setDefaultComponentAlignment( + Alignment defaultComponentAlignment); + + /** + * Returns the alignment used for new components added to this layout + * + * @return The default alignment + */ + public Alignment getDefaultComponentAlignment(); + } /** -- cgit v1.2.3