diff options
author | Teemu Suo-Anttila <teemusa@vaadin.com> | 2015-06-02 17:42:28 +0300 |
---|---|---|
committer | Teemu Suo-Anttila <teemusa@vaadin.com> | 2015-06-02 17:44:01 +0300 |
commit | f861a2dfe4a64e696fe5f70fc7ae4c7c1b1612ef (patch) | |
tree | 45cd6decaaf958aaf94d50b7a6279c174d523007 /server | |
parent | ec54a601dc882333687bcef2b4fa59c02e6c4ede (diff) | |
parent | 4724d89af9228edcb9bbff987255122841c6d33e (diff) | |
download | vaadin-framework-f861a2dfe4a64e696fe5f70fc7ae4c7c1b1612ef.tar.gz vaadin-framework-f861a2dfe4a64e696fe5f70fc7ae4c7c1b1612ef.zip |
Merge remote-tracking branch 'origin/master' into grid-unbuffered-editor
Change-Id: I0a2ed5629eb0598d4049d4cf5ea6e55fe3092c99
Diffstat (limited to 'server')
4 files changed, 84 insertions, 26 deletions
diff --git a/server/src/com/vaadin/data/fieldgroup/FieldGroup.java b/server/src/com/vaadin/data/fieldgroup/FieldGroup.java index d370c3906b..aaaae9e4f7 100644 --- a/server/src/com/vaadin/data/fieldgroup/FieldGroup.java +++ b/server/src/com/vaadin/data/fieldgroup/FieldGroup.java @@ -258,7 +258,19 @@ public class FieldGroup implements Serializable { if (itemDataSource == null) { // Clear any possible existing binding to clear the field field.setPropertyDataSource(null); - field.clear(); + boolean fieldReadOnly = field.isReadOnly(); + if (!fieldReadOnly) { + field.clear(); + } else { + // Temporarily make the field read-write so we can clear the + // value. Needed because setPropertyDataSource(null) does not + // currently clear the field + // (https://dev.vaadin.com/ticket/14733) + field.setReadOnly(false); + field.clear(); + field.setReadOnly(true); + } + // Will be bound when data source is set return; } @@ -1247,4 +1259,5 @@ public class FieldGroup implements Serializable { } } -} + +}
\ No newline at end of file diff --git a/server/src/com/vaadin/ui/Grid.java b/server/src/com/vaadin/ui/Grid.java index 77785c301b..74f58ecf74 100644 --- a/server/src/com/vaadin/ui/Grid.java +++ b/server/src/com/vaadin/ui/Grid.java @@ -889,7 +889,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, /** * Marks an item as selected. * - * @param itemIds + * @param itemId * the itemId to mark as selected; <code>null</code> for * deselect * @return <code>true</code> if the selection state changed. @@ -2039,7 +2039,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, /** * Removes the row at the given position. * - * @param index + * @param rowIndex * the position of the row * * @throws IllegalArgumentException @@ -2536,7 +2536,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, private Converter<?, Object> converter; /** - * A check for allowing the {@link #Column(Grid, GridColumnState) + * A check for allowing the {@link #Column(Grid, GridColumnState, Object) * constructor} to call {@link #setConverter(Converter)} with a * <code>null</code>, even if model and renderer aren't compatible. */ @@ -3196,7 +3196,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, * * @throws IllegalArgumentException * if there is no column for the provided property id - * @throws BindException + * @throws FieldGroup.BindException * if no field has been configured and there is a problem * building or binding */ @@ -3367,12 +3367,12 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, } /** - * An abstract base class for server-side Grid renderers. - * {@link com.vaadin.client.widget.grid.Renderer Grid renderers}. This class - * currently extends the AbstractGridExtension superclass, but this fact - * should be regarded as an implementation detail and subject to change in a - * future major or minor Vaadin revision. - * + * An abstract base class for server-side + * {@link com.vaadin.ui.renderers.Renderer Grid renderers}. This class + * currently extends the AbstractExtension superclass, but this fact should + * be regarded as an implementation detail and subject to change in a future + * major or minor Vaadin revision. + * * @param <T> * the type this renderer knows how to present */ @@ -3443,7 +3443,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, * is desired. For instance, a {@code Renderer<Date>} could first turn a * date value into a formatted string and return * {@code encode(dateString, String.class)}. - * + * * @param value * the value to be encoded * @param type @@ -3458,7 +3458,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, /** * An abstract base class for server-side Grid extensions. - * + * * @since 7.5 */ public static abstract class AbstractGridExtension extends @@ -3473,7 +3473,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, /** * Constructs a new Grid extension and extends given Grid. - * + * * @param grid * a grid instance */ @@ -3632,7 +3632,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, * in Grid() constructor, or <code>false</code> if the user has set their * own Container. * - * @see #setContainerDataSource() + * @see #setContainerDataSource(Indexed) * @see #Grid() */ private boolean defaultContainer = true; @@ -4626,7 +4626,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, * @throws IllegalArgumentException * if {@code rows} is zero or less * @throws IllegalArgumentException - * if {@code rows} is {@link Double#isInifinite(double) + * if {@code rows} is {@link Double#isInfinite(double) * infinite} * @throws IllegalArgumentException * if {@code rows} is {@link Double#isNaN(double) NaN} @@ -4872,7 +4872,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, * {@link SelectionModel.Single} and {@link SelectionModel.Multi} are * supported. * - * @param itemIds + * @param itemId * the itemId to mark as selected * @return <code>true</code> if the selection state changed, * <code>false</code> if the itemId already was selected @@ -4965,10 +4965,10 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, * {@link SelectionModel SelectionModels} would be able to inform Grid of * these events. * - * @param addedSelections - * the selections that were added by this event - * @param removedSelections - * the selections that were removed by this event + * @param newSelection + * the selection that was added by this event + * @param oldSelection + * the selection that was removed by this event */ public void fireSelectionEvent(Collection<Object> oldSelection, Collection<Object> newSelection) { @@ -5348,7 +5348,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, /** * Removes the row at the given position from the header section. * - * @param index + * @param rowIndex * the position of the row * * @throws IllegalArgumentException @@ -5495,7 +5495,7 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, /** * Removes the row at the given position from the footer section. * - * @param index + * @param rowIndex * the position of the row * * @throws IllegalArgumentException diff --git a/server/src/com/vaadin/ui/TabSheet.java b/server/src/com/vaadin/ui/TabSheet.java index 67dfdd4258..592515c560 100644 --- a/server/src/com/vaadin/ui/TabSheet.java +++ b/server/src/com/vaadin/ui/TabSheet.java @@ -478,9 +478,11 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, * Are the tab selection parts ("tabs") hidden. * * @return true if the tabs are hidden in the UI + * @deprecated as of 7.5, use {@link #isTabsVisible()} instead */ + @Deprecated public boolean areTabsHidden() { - return !getState(false).tabsVisible; + return !isTabsVisible(); } /** @@ -488,9 +490,33 @@ public class TabSheet extends AbstractComponentContainer implements Focusable, * * @param tabsHidden * true if the tabs should be hidden + * @deprecated as of 7.5, use {@link #setTabsVisible(boolean)} instead */ + @Deprecated public void hideTabs(boolean tabsHidden) { - getState().tabsVisible = !tabsHidden; + setTabsVisible(!tabsHidden); + } + + /** + * Sets whether the tab selection part should be shown in the UI + * + * @since 7.5 + * @param tabsVisible + * true if the tabs should be shown in the UI, false otherwise + */ + public void setTabsVisible(boolean tabsVisible) { + getState().tabsVisible = tabsVisible; + } + + /** + * Checks if the tab selection part should be shown in the UI + * + * @return true if the tabs are shown in the UI, false otherwise + * @since 7.5 + */ + public boolean isTabsVisible() { + return getState(false).tabsVisible; + } /** diff --git a/server/tests/src/com/vaadin/tests/server/component/tabsheet/TabSheetDeclarativeTest.java b/server/tests/src/com/vaadin/tests/server/component/tabsheet/TabSheetDeclarativeTest.java index bb5669a3a1..a92101f550 100644 --- a/server/tests/src/com/vaadin/tests/server/component/tabsheet/TabSheetDeclarativeTest.java +++ b/server/tests/src/com/vaadin/tests/server/component/tabsheet/TabSheetDeclarativeTest.java @@ -18,7 +18,9 @@ package com.vaadin.tests.server.component.tabsheet; import org.junit.Test; import com.vaadin.server.ExternalResource; +import com.vaadin.shared.ui.label.ContentMode; import com.vaadin.tests.design.DeclarativeTestBase; +import com.vaadin.ui.Label; import com.vaadin.ui.TabSheet; import com.vaadin.ui.TabSheet.Tab; import com.vaadin.ui.TextField; @@ -65,4 +67,21 @@ public class TabSheetDeclarativeTest extends DeclarativeTestBase<TabSheet> { testRead(design, ts); testWrite(design, ts); } + + @Test + public void tabsNotShown() { + String design = "<v-tab-sheet tabs-visible=\"false\">\n" + + " <tab caption=\"My Tab\" selected=\"true\">\n" + + " <v-label>My Content</v-label>\n" + " </tab>\n" + + "</v-tab-sheet>\n"; + TabSheet ts = new TabSheet(); + ts.setTabsVisible(false); + Label l = new Label("My Content", ContentMode.HTML); + Tab tab = ts.addTab(l); + tab.setCaption("My Tab"); + ts.setSelectedTab(tab); + testRead(design, ts); + testWrite(design, ts); + + } }
\ No newline at end of file |