summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <teemusa@vaadin.com>2015-06-02 17:42:28 +0300
committerTeemu Suo-Anttila <teemusa@vaadin.com>2015-06-02 17:44:01 +0300
commitf861a2dfe4a64e696fe5f70fc7ae4c7c1b1612ef (patch)
tree45cd6decaaf958aaf94d50b7a6279c174d523007 /server
parentec54a601dc882333687bcef2b4fa59c02e6c4ede (diff)
parent4724d89af9228edcb9bbff987255122841c6d33e (diff)
downloadvaadin-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')
-rw-r--r--server/src/com/vaadin/data/fieldgroup/FieldGroup.java17
-rw-r--r--server/src/com/vaadin/ui/Grid.java44
-rw-r--r--server/src/com/vaadin/ui/TabSheet.java30
-rw-r--r--server/tests/src/com/vaadin/tests/server/component/tabsheet/TabSheetDeclarativeTest.java19
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