aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2015-01-28 22:22:46 +0200
committerArtur Signell <artur@vaadin.com>2015-01-28 22:22:46 +0200
commit6aea785642f66dbde578765dcaa429415c8ac75c (patch)
tree2329b3b6f8a33a445cf97d7f63ba2172fa268392 /server
parente6ff02e314c8739537b688d2908571baa16764e8 (diff)
parent4ad7cefcc06e372df8b67a2456616d7410c768d8 (diff)
downloadvaadin-framework-6aea785642f66dbde578765dcaa429415c8ac75c.tar.gz
vaadin-framework-6aea785642f66dbde578765dcaa429415c8ac75c.zip
Merge remote-tracking branch 'origin/master' into grid
Conflicts: client/src/com/vaadin/client/ui/VWindow.java Change-Id: I1a35db88a2b11acf76b58c417575451edfdb275d
Diffstat (limited to 'server')
-rw-r--r--server/src/com/vaadin/ui/PushConfiguration.java2
-rw-r--r--server/src/com/vaadin/ui/Table.java19
-rw-r--r--server/tests/src/com/vaadin/tests/server/component/table/TableSelectable.java75
-rw-r--r--server/tests/src/com/vaadin/ui/PushConfigurationTransportTest.java46
4 files changed, 135 insertions, 7 deletions
diff --git a/server/src/com/vaadin/ui/PushConfiguration.java b/server/src/com/vaadin/ui/PushConfiguration.java
index 84f59d0313..90ad28542c 100644
--- a/server/src/com/vaadin/ui/PushConfiguration.java
+++ b/server/src/com/vaadin/ui/PushConfiguration.java
@@ -208,7 +208,7 @@ class PushConfigurationImpl implements PushConfiguration {
public Transport getTransport() {
try {
return Transport
- .valueOf(getParameter(PushConfigurationState.TRANSPORT_PARAM));
+ .getByIdentifier(getParameter(PushConfigurationState.TRANSPORT_PARAM));
} catch (IllegalArgumentException e) {
return null;
}
diff --git a/server/src/com/vaadin/ui/Table.java b/server/src/com/vaadin/ui/Table.java
index ec345e3fc3..e202a4e925 100644
--- a/server/src/com/vaadin/ui/Table.java
+++ b/server/src/com/vaadin/ui/Table.java
@@ -62,6 +62,7 @@ import com.vaadin.server.Resource;
import com.vaadin.shared.MouseEventDetails;
import com.vaadin.shared.ui.MultiSelectMode;
import com.vaadin.shared.ui.table.TableConstants;
+import com.vaadin.shared.util.SharedUtil;
/**
* <p>
@@ -442,7 +443,7 @@ public class Table extends AbstractSelect implements Action.Container,
/**
* Holds value of property selectable.
*/
- private boolean selectable = false;
+ private Boolean selectable;
/**
* Holds value of property columnHeaderMode.
@@ -1601,15 +1602,19 @@ public class Table extends AbstractSelect implements Action.Container,
}
/**
- * Getter for property selectable.
+ * Returns whether table is selectable.
*
* <p>
- * The table is not selectable by default.
+ * The table is not selectable until it's explicitly set as selectable or at
+ * least one {@link ValueChangeListener} is added.
* </p>
*
- * @return the Value of property selectable.
+ * @return whether table is selectable.
*/
public boolean isSelectable() {
+ if (selectable == null) {
+ return hasListeners(ValueChangeEvent.class);
+ }
return selectable;
}
@@ -1617,14 +1622,16 @@ public class Table extends AbstractSelect implements Action.Container,
* Setter for property selectable.
*
* <p>
- * The table is not selectable by default.
+ * The table is not selectable until it's explicitly set as selectable via
+ * this method or alternatively at least one {@link ValueChangeListener} is
+ * added.
* </p>
*
* @param selectable
* the New value of property selectable.
*/
public void setSelectable(boolean selectable) {
- if (this.selectable != selectable) {
+ if (!SharedUtil.equals(this.selectable, selectable)) {
this.selectable = selectable;
markAsDirty();
}
diff --git a/server/tests/src/com/vaadin/tests/server/component/table/TableSelectable.java b/server/tests/src/com/vaadin/tests/server/component/table/TableSelectable.java
new file mode 100644
index 0000000000..1af99a08eb
--- /dev/null
+++ b/server/tests/src/com/vaadin/tests/server/component/table/TableSelectable.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.server.component.table;
+
+import org.easymock.EasyMock;
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.ui.Table;
+
+/**
+ * Tests for 'selectable' property of {@link Table} class.
+ *
+ * @author Vaadin Ltd
+ */
+public class TableSelectable {
+
+ @Test
+ public void setSelectable_explicitSelectable_tableIsSelectable() {
+ Table table = new Table();
+ table.setSelectable(true);
+
+ Assert.assertTrue(table.isSelectable());
+ }
+
+ @Test
+ public void addValueChangeListener_explicitSelectable_tableIsSelectable() {
+ TestTable table = new TestTable();
+ table.addValueChangeListener(EasyMock
+ .createMock(ValueChangeListener.class));
+
+ Assert.assertTrue(table.isSelectable());
+ Assert.assertTrue(table.markAsDirtyCalled);
+ }
+
+ @Test
+ public void tableIsNotSelectableByDefult() {
+ Table table = new Table();
+
+ Assert.assertFalse(table.isSelectable());
+ }
+
+ @Test
+ public void setSelectable_explicitNotSelectable_tableIsNotSelectable() {
+ Table table = new Table();
+ table.setSelectable(false);
+ table.addValueChangeListener(EasyMock
+ .createMock(ValueChangeListener.class));
+
+ Assert.assertFalse(table.isSelectable());
+ }
+
+ private static final class TestTable extends Table {
+ @Override
+ public void markAsDirty() {
+ markAsDirtyCalled = true;
+ }
+
+ private boolean markAsDirtyCalled;
+ }
+}
diff --git a/server/tests/src/com/vaadin/ui/PushConfigurationTransportTest.java b/server/tests/src/com/vaadin/ui/PushConfigurationTransportTest.java
new file mode 100644
index 0000000000..305b2e06cd
--- /dev/null
+++ b/server/tests/src/com/vaadin/ui/PushConfigurationTransportTest.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.ui;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.shared.ui.ui.Transport;
+
+/**
+ * @author Vaadin Ltd
+ */
+public class PushConfigurationTransportTest {
+ @Test
+ public void testTransportModes() throws Exception {
+ UI ui = new UI() {
+
+ @Override
+ protected void init(VaadinRequest request) {
+ // TODO Auto-generated method stub
+
+ }
+
+ };
+ for (Transport transport : Transport.values()) {
+ ui.getPushConfiguration().setTransport(transport);
+ Assert.assertEquals(ui.getPushConfiguration().getTransport(),
+ transport);
+ }
+
+ }
+}