diff options
author | Leif Åstrand <leif@vaadin.com> | 2015-03-15 14:32:38 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2015-04-07 10:35:52 +0000 |
commit | b7808ca2836683a8d8bca15413a723656e9f1b92 (patch) | |
tree | 6b5be9d43d2a4fa86ad99f78202211f853841ce5 /server/src/com/vaadin/ui/declarative/DesignContext.java | |
parent | e56d11aa71f88444c3f109c65f0b7424bf2a8638 (diff) | |
download | vaadin-framework-b7808ca2836683a8d8bca15413a723656e9f1b92.tar.gz vaadin-framework-b7808ca2836683a8d8bca15413a723656e9f1b92.zip |
Add selective data write support to AbstractSelect (#17148)
Change-Id: I06f82fe05f3b370af85538c0a85f2e60ee28d72d
Diffstat (limited to 'server/src/com/vaadin/ui/declarative/DesignContext.java')
-rw-r--r-- | server/src/com/vaadin/ui/declarative/DesignContext.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/server/src/com/vaadin/ui/declarative/DesignContext.java b/server/src/com/vaadin/ui/declarative/DesignContext.java index f991b3013a..54be5dcea3 100644 --- a/server/src/com/vaadin/ui/declarative/DesignContext.java +++ b/server/src/com/vaadin/ui/declarative/DesignContext.java @@ -75,6 +75,8 @@ public class DesignContext implements Serializable { // component creation listeners private List<ComponentCreationListener> listeners = new ArrayList<ComponentCreationListener>(); + private ShouldWriteDataDelegate shouldWriteDataDelegate = ShouldWriteDataDelegate.DEFAULT; + public DesignContext(Document doc) { this.doc = doc; // Initialize the mapping between prefixes and package names. @@ -661,4 +663,56 @@ public class DesignContext implements Serializable { return true; } + + /** + * Determines whether the container data of a component should be written + * out by delegating to a {@link ShouldWriteDataDelegate}. The default + * delegate assumes that all component data is provided by a data source + * connected to a back end system and that the data should thus not be + * written. + * + * @since + * @see #setShouldWriteDataDelegate(ShouldWriteDataDelegate) + * @param component + * the component to check + * @return <code>true</code> if container data should be written out for the + * provided component; otherwise <code>false</code>. + */ + public boolean shouldWriteData(Component component) { + return getShouldWriteDataDelegate().shouldWriteData(component); + } + + /** + * Sets the delegate that determines whether the container data of a + * component should be written out. + * + * @since + * @see #shouldWriteChildren(Component, Component) + * @see #getShouldWriteDataDelegate() + * @param shouldWriteDataDelegate + * the delegate to set, not <code>null</code> + * @throws IllegalArgumentException + * if the provided delegate is <code>null</code> + */ + public void setShouldWriteDataDelegate( + ShouldWriteDataDelegate shouldWriteDataDelegate) { + if (shouldWriteDataDelegate == null) { + throw new IllegalArgumentException("Delegate cannot be null"); + } + this.shouldWriteDataDelegate = shouldWriteDataDelegate; + } + + /** + * Gets the delegate that determines whether the container data of a + * component should be written out. + * + * @since + * @see #setShouldWriteDataDelegate(ShouldWriteDataDelegate) + * @see #shouldWriteChildren(Component, Component) + * @return the shouldWriteDataDelegate the currently use delegate + */ + public ShouldWriteDataDelegate getShouldWriteDataDelegate() { + return shouldWriteDataDelegate; + } + } |