From afa93b9ac33bf05956ecb7e584840feab4b282a2 Mon Sep 17 00:00:00 2001
From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com>
Date: Thu, 22 Jul 2021 12:56:46 -0300
Subject: [PATCH 1/9] build: add lombok dependency
---
pom.xml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/pom.xml b/pom.xml
index d670799..e418876 100644
--- a/pom.xml
+++ b/pom.xml
@@ -101,6 +101,12 @@
+ org.projectlombok
+ lombok
+ 1.18.12
+ provided
+
+
org.slf4j
slf4j-simple
test
From 054f7d84b7239d6ba788ade88d0446238f088be2 Mon Sep 17 00:00:00 2001
From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com>
Date: Thu, 22 Jul 2021 12:57:31 -0300
Subject: [PATCH 2/9] chore: update .gitignore
---
.gitignore | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.gitignore b/.gitignore
index b6a47ed..3c65f35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,5 @@ rebel.xml
/webpack.generated.js
/package.json
/bin/
+/.npmrc
+/frontend/generated/vaadin.ts
From d809f5c9d6221215394034f2b86075ee097a3d06 Mon Sep 17 00:00:00 2001
From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com>
Date: Fri, 25 Jun 2021 14:42:27 -0300
Subject: [PATCH 3/9] feat: preserve UI sort orders in getValue
Part of #66.
---
.../addons/twincolgrid/TwinColGrid.java | 30 +++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java b/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java
index 1335639..582c5c9 100644
--- a/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java
+++ b/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java
@@ -44,6 +44,7 @@
import com.vaadin.flow.data.renderer.TextRenderer;
import com.vaadin.flow.data.selection.SelectionListener;
import com.vaadin.flow.data.value.ValueChangeMode;
+import com.vaadin.flow.function.SerializableComparator;
import com.vaadin.flow.function.SerializableFunction;
import com.vaadin.flow.shared.Registration;
import java.io.Serializable;
@@ -52,9 +53,11 @@
import java.util.Comparator;
import java.util.HashSet;
import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.function.Consumer;
+import java.util.stream.Collector;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
@@ -64,8 +67,15 @@
public class TwinColGrid extends VerticalLayout
implements HasValue>, Set>, HasComponents, HasSize {
+ private static final class GridEx extends Grid {
+ @Override
+ protected SerializableComparator createSortingComparator() {
+ return super.createSortingComparator();
+ }
+ }
+
private static final class TwinColModel implements Serializable {
- final Grid grid = new Grid<>();
+ final GridEx grid = new GridEx<>();
final Label columnLabel = new Label();
final VerticalLayout layout = new VerticalLayout(columnLabel, grid);
HeaderRow headerRow;
@@ -471,7 +481,23 @@ public void setValue(final Set value) {
*/
@Override
public Set getValue() {
- return Collections.unmodifiableSet(new LinkedHashSet<>(right.getItems()));
+ return Collections
+ .unmodifiableSet(collectValue(Collectors.>toCollection(LinkedHashSet::new)));
+ }
+
+ /**
+ * Collects the current value of this object according to the configured order.
+ *
+ * @return the current selection
+ */
+ C collectValue(Collector collector) {
+ Stream stream = right.getItems().stream();
+ SerializableComparator comparator = right.grid.createSortingComparator();
+ if (comparator != null) {
+ return stream.sorted(comparator).collect(collector);
+ } else {
+ return stream.collect(collector);
+ }
}
@Override
From 35dfe1fe1f941af80e835b48bdc8d1bb015c7dcf Mon Sep 17 00:00:00 2001
From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com>
Date: Fri, 23 Jul 2021 10:00:13 -0300
Subject: [PATCH 4/9] feat: expose the component as a HasValue of List
Close #66
---
.../addons/twincolgrid/TwinColGrid.java | 4 +
.../twincolgrid/TwinColGridListAdapter.java | 102 ++++++++++++++++++
2 files changed, 106 insertions(+)
create mode 100644 src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGridListAdapter.java
diff --git a/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java b/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java
index 582c5c9..693ce4d 100644
--- a/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java
+++ b/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java
@@ -674,4 +674,8 @@ public TwinColGrid selectRowOnClick() {
});
return this;
}
+
+ public HasValue extends ValueChangeEvent>, List> asList() {
+ return new TwinColGridListAdapter<>(this);
+ }
}
diff --git a/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGridListAdapter.java b/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGridListAdapter.java
new file mode 100644
index 0000000..0e682a6
--- /dev/null
+++ b/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGridListAdapter.java
@@ -0,0 +1,102 @@
+package com.flowingcode.vaadin.addons.twincolgrid;
+
+import com.vaadin.flow.component.HasValue;
+import com.vaadin.flow.component.HasValue.ValueChangeEvent;
+import com.vaadin.flow.shared.Registration;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.stream.Collectors;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
+import lombok.experimental.Delegate;
+
+/**
+ * Expose {@link TwinColGrid} as a {@code HasValue} of {@code List}
+ *
+ * @author Javier Godoy
+ */
+@SuppressWarnings("serial")
+@RequiredArgsConstructor
+class TwinColGridListAdapter implements HasValue>, List> {
+
+ private interface IDelegate {
+ boolean isEmpty();
+
+ void clear();
+
+ void setReadOnly(boolean readOnly);
+
+ boolean isReadOnly();
+
+ void setRequiredIndicatorVisible(boolean requiredIndicatorVisible);
+
+ boolean isRequiredIndicatorVisible();
+ }
+
+ @Getter
+ @AllArgsConstructor
+ private final class ValueChangeEventImpl implements ValueChangeEvent> {
+
+ boolean isFromClient;
+ List value;
+
+ @Override
+ public HasValue, List> getHasValue() {
+ return TwinColGridListAdapter.this;
+ }
+
+ @Override
+ public List getOldValue() {
+ return null;
+ }
+
+ }
+
+ @NonNull
+ @Delegate(types = IDelegate.class)
+ private final TwinColGrid delegate;
+
+ @Override
+ public void setValue(List value) {
+ delegate.setValue(new LinkedHashSet<>(value));
+ }
+
+ @Override
+ public List getValue() {
+ return Collections.unmodifiableList(delegate.collectValue(Collectors.toList()));
+ }
+
+ @Override
+ public Registration addValueChangeListener(
+ ValueChangeListener super ValueChangeEvent>> listener) {
+
+ List registrations = new ArrayList<>();
+
+ registrations.add(delegate.addValueChangeListener(ev -> {
+ List value = new ArrayList<>(ev.getValue());
+ ValueChangeEvent> listEvent;
+ listEvent = new ValueChangeEventImpl(ev.isFromClient(), new ArrayList<>(value));
+ listener.valueChanged(listEvent);
+ }));
+
+ // sorting the grid changes its value under List::equals
+ registrations.add(delegate.getRightGrid().addSortListener(ev -> {
+ List value = getValue();
+ ValueChangeEvent> listEvent;
+ listEvent = new ValueChangeEventImpl(ev.isFromClient(), value);
+ listener.valueChanged(listEvent);
+ }));
+
+ return () -> registrations.forEach(Registration::remove);
+ }
+
+ @Override
+ public List getEmptyValue() {
+ return Collections.emptyList();
+ }
+
+}
From 830606f9611ba7efe8393bf6845cb0337d0b1aff Mon Sep 17 00:00:00 2001
From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com>
Date: Fri, 23 Jul 2021 10:23:14 -0300
Subject: [PATCH 5/9] refactor(demo): use binding as List
---
.../vaadin/addons/twincolgrid/BoundDemo.java | 18 ++++++++++++------
.../vaadin/addons/twincolgrid/Library.java | 10 +++++-----
2 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
index e6599f3..8b3e175 100644
--- a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
+++ b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
@@ -20,18 +20,20 @@
package com.flowingcode.vaadin.addons.twincolgrid;
+import com.vaadin.flow.component.button.Button;
+import com.vaadin.flow.component.notification.Notification;
+import com.vaadin.flow.component.notification.Notification.Position;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.data.binder.Binder;
import java.util.ArrayList;
-import java.util.HashSet;
+import java.util.Comparator;
import java.util.List;
-import java.util.Set;
@SuppressWarnings("serial")
public class BoundDemo extends VerticalLayout {
public BoundDemo() {
- final Set selectedBooks = new HashSet<>();
+ final List selectedBooks = new ArrayList<>();
selectedBooks.add(new Book("1478375108", "Vaadin Recipes"));
selectedBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
final Library library = new Library("Public Library", selectedBooks);
@@ -51,8 +53,8 @@ public BoundDemo() {
final TwinColGrid bindedTwinColGrid =
new TwinColGrid<>(
availableBooks, "TwinColGrid demo with Binder and row select without checkbox")
- .addColumn(Book::getIsbn, "ISBN")
- .addColumn(Book::getTitle, "Title")
+ .addSortableColumn(Book::getIsbn, Comparator.comparing(Book::getIsbn), "ISBN")
+ .addSortableColumn(Book::getTitle, Comparator.comparing(Book::getTitle), "Title")
.withLeftColumnCaption("Available books")
.withRightColumnCaption("Added books")
.withoutRemoveAllButton()
@@ -60,10 +62,14 @@ public BoundDemo() {
.selectRowOnClick();
final Binder binder = new Binder<>();
- binder.bind(bindedTwinColGrid, Library::getBooks, Library::setBooks);
+ binder.bind(bindedTwinColGrid.asList(), Library::getBooks, Library::setBooks);
binder.setBean(library);
add(bindedTwinColGrid);
+ add(new Button("Get values", ev -> {
+ binder.getBean().getBooks()
+ .forEach(book -> Notification.show(book.getTitle(), 3000, Position.BOTTOM_START));
+ }));
setSizeFull();
}
}
diff --git a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/Library.java b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/Library.java
index d4eb17f..c386dfd 100644
--- a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/Library.java
+++ b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/Library.java
@@ -19,15 +19,15 @@
*/
package com.flowingcode.vaadin.addons.twincolgrid;
-import java.util.Set;
+import java.util.List;
public class Library {
private final String name;
- private Set books;
+ private List books;
- public Library(final String name, final Set books) {
+ public Library(final String name, final List books) {
this.name = name;
this.books = books;
}
@@ -36,11 +36,11 @@ public String getName() {
return name;
}
- public Set getBooks() {
+ public List getBooks() {
return books;
}
- public void setBooks(final Set books) {
+ public void setBooks(final List books) {
this.books = books;
}
}
From aac419c01d9abaa3455aeae6247725e3f0d3645f Mon Sep 17 00:00:00 2001
From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com>
Date: Fri, 23 Jul 2021 10:49:26 -0300
Subject: [PATCH 6/9] fix: return empty set in getEmptyValue
Close #72
---
.../flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java | 5 +++++
.../com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java b/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java
index 693ce4d..0e0aae6 100644
--- a/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java
+++ b/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGrid.java
@@ -678,4 +678,9 @@ public TwinColGrid selectRowOnClick() {
public HasValue extends ValueChangeEvent>, List> asList() {
return new TwinColGridListAdapter<>(this);
}
+
+ @Override
+ public Set getEmptyValue() {
+ return Collections.emptySet();
+ }
}
diff --git a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
index 8b3e175..284b030 100644
--- a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
+++ b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
@@ -70,6 +70,11 @@ public BoundDemo() {
binder.getBean().getBooks()
.forEach(book -> Notification.show(book.getTitle(), 3000, Position.BOTTOM_START));
}));
+
+ add(new Button("Clear TwinColGrid", ev -> {
+ bindedTwinColGrid.clear();
+ }));
+
setSizeFull();
}
}
From 7c1f79920535fa5a838de12c0da99eb711c1fc59 Mon Sep 17 00:00:00 2001
From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com>
Date: Fri, 23 Jul 2021 10:55:59 -0300
Subject: [PATCH 7/9] refactor(demo): refactor demo code for legibility
---
.../vaadin/addons/twincolgrid/BoundDemo.java | 42 ++++++++++--------
.../addons/twincolgrid/DragAndDropDemo.java | 36 +++++++++-------
.../addons/twincolgrid/FilterableDemo.java | 43 +++++++++++--------
3 files changed, 70 insertions(+), 51 deletions(-)
diff --git a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
index 284b030..19b594d 100644
--- a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
+++ b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
@@ -32,25 +32,15 @@
@SuppressWarnings("serial")
public class BoundDemo extends VerticalLayout {
+ private final List selectedBooks = new ArrayList<>();
+ private final List availableBooks = new ArrayList<>();
+
public BoundDemo() {
- final List selectedBooks = new ArrayList<>();
- selectedBooks.add(new Book("1478375108", "Vaadin Recipes"));
- selectedBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
+ initializeData();
final Library library = new Library("Public Library", selectedBooks);
- final List availableBooks = new ArrayList<>();
- availableBooks.add(new Book("1478375108", "Vaadin Recipes"));
- availableBooks.add(new Book("9781849515221", "Learning Vaadin"));
- availableBooks.add(
- new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner�s Guide"));
- availableBooks.add(new Book("9781849518802", "Vaadin 7 Cookbook"));
- availableBooks.add(new Book("9526800605", "Book of Vaadin: 7th Edition, 1st Revision"));
- availableBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
- availableBooks.add(new Book("9529267533", "Book of Vaadin"));
- availableBooks.add(new Book("1782169776", "Learning Vaadin 7, Second Edition"));
-
// Binded
- final TwinColGrid bindedTwinColGrid =
+ final TwinColGrid twinColGrid =
new TwinColGrid<>(
availableBooks, "TwinColGrid demo with Binder and row select without checkbox")
.addSortableColumn(Book::getIsbn, Comparator.comparing(Book::getIsbn), "ISBN")
@@ -62,19 +52,35 @@ public BoundDemo() {
.selectRowOnClick();
final Binder binder = new Binder<>();
- binder.bind(bindedTwinColGrid.asList(), Library::getBooks, Library::setBooks);
+ binder.bind(twinColGrid.asList(), Library::getBooks, Library::setBooks);
binder.setBean(library);
- add(bindedTwinColGrid);
+ add(twinColGrid);
add(new Button("Get values", ev -> {
binder.getBean().getBooks()
.forEach(book -> Notification.show(book.getTitle(), 3000, Position.BOTTOM_START));
}));
add(new Button("Clear TwinColGrid", ev -> {
- bindedTwinColGrid.clear();
+ twinColGrid.clear();
}));
setSizeFull();
}
+
+ private void initializeData() {
+ selectedBooks.add(new Book("1478375108", "Vaadin Recipes"));
+ selectedBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
+
+
+ availableBooks.add(new Book("1478375108", "Vaadin Recipes"));
+ availableBooks.add(new Book("9781849515221", "Learning Vaadin"));
+ availableBooks
+ .add(new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner�s Guide"));
+ availableBooks.add(new Book("9781849518802", "Vaadin 7 Cookbook"));
+ availableBooks.add(new Book("9526800605", "Book of Vaadin: 7th Edition, 1st Revision"));
+ availableBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
+ availableBooks.add(new Book("9529267533", "Book of Vaadin"));
+ availableBooks.add(new Book("1782169776", "Learning Vaadin 7, Second Edition"));
+ }
}
diff --git a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/DragAndDropDemo.java b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/DragAndDropDemo.java
index 0eb05b8..8bd3d1e 100644
--- a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/DragAndDropDemo.java
+++ b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/DragAndDropDemo.java
@@ -30,23 +30,13 @@
@SuppressWarnings("serial")
public class DragAndDropDemo extends VerticalLayout {
- public DragAndDropDemo() {
- final Set selectedBooks = new HashSet<>();
- selectedBooks.add(new Book("1478375108", "Vaadin Recipes"));
- selectedBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
- final List availableBooks = new ArrayList<>();
- availableBooks.add(new Book("1478375108", "Vaadin Recipes"));
- availableBooks.add(new Book("9781849515221", "Learning Vaadin"));
- availableBooks.add(
- new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner�s Guide"));
- availableBooks.add(new Book("9781849518802", "Vaadin 7 Cookbook"));
- availableBooks.add(new Book("9526800605", "Book of Vaadin: 7th Edition, 1st Revision"));
- availableBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
- availableBooks.add(new Book("9529267533", "Book of Vaadin"));
- availableBooks.add(new Book("1782169776", "Learning Vaadin 7, Second Edition"));
+ private final Set selectedBooks = new HashSet<>();
+ private final List availableBooks = new ArrayList<>();
+
+ public DragAndDropDemo() {
+ initializeData();
- // Drag and drop
final TwinColGrid twinColGrid =
new TwinColGrid<>(availableBooks, "TwinColGrid demo with drag and drop support")
.addSortableColumn(Book::getIsbn, Comparator.comparing(Book::getIsbn), "ISBN")
@@ -67,4 +57,20 @@ public DragAndDropDemo() {
add(twinColGrid, countLabel);
setSizeFull();
}
+
+ private void initializeData() {
+ selectedBooks.add(new Book("1478375108", "Vaadin Recipes"));
+ selectedBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
+
+
+ availableBooks.add(new Book("1478375108", "Vaadin Recipes"));
+ availableBooks.add(new Book("9781849515221", "Learning Vaadin"));
+ availableBooks
+ .add(new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner�s Guide"));
+ availableBooks.add(new Book("9781849518802", "Vaadin 7 Cookbook"));
+ availableBooks.add(new Book("9526800605", "Book of Vaadin: 7th Edition, 1st Revision"));
+ availableBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
+ availableBooks.add(new Book("9529267533", "Book of Vaadin"));
+ availableBooks.add(new Book("1782169776", "Learning Vaadin 7, Second Edition"));
+ }
}
diff --git a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/FilterableDemo.java b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/FilterableDemo.java
index 6332ffa..ec08ee6 100644
--- a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/FilterableDemo.java
+++ b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/FilterableDemo.java
@@ -28,24 +28,14 @@
@SuppressWarnings("serial")
public class FilterableDemo extends VerticalLayout {
- public FilterableDemo() {
- final Set selectedBooks = new HashSet<>();
- selectedBooks.add(new Book("1478375108", "Vaadin Recipes"));
- selectedBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
- final List availableBooks = new ArrayList<>();
- availableBooks.add(new Book("1478375108", "Vaadin Recipes"));
- availableBooks.add(new Book("9781849515221", "Learning Vaadin"));
- availableBooks.add(
- new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner�s Guide"));
- availableBooks.add(new Book("9781849518802", "Vaadin 7 Cookbook"));
- availableBooks.add(new Book("9526800605", "Book of Vaadin: 7th Edition, 1st Revision"));
- availableBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
- availableBooks.add(new Book("9529267533", "Book of Vaadin"));
- availableBooks.add(new Book("1782169776", "Learning Vaadin 7, Second Edition"));
+ private final Set selectedBooks = new HashSet<>();
+ private final List availableBooks = new ArrayList<>();
- // Filterable
- final TwinColGrid twinFilterableColGrid =
+ public FilterableDemo() {
+ initializeData();
+
+ final TwinColGrid twinColGrid =
new TwinColGrid<>(availableBooks, "TwinColGrid demo with filtering support")
.addFilterableColumn(Book::getIsbn, Book::getIsbn, "ISBN", "ISBN Filter", true)
.addFilterableColumn(Book::getTitle, "Title", "Title filter", false)
@@ -53,9 +43,26 @@ public FilterableDemo() {
.withRightColumnCaption("Added books")
.withoutAddAllButton()
.withSizeFull();
- twinFilterableColGrid.setValue(selectedBooks);
+ twinColGrid.setValue(selectedBooks);
- add(twinFilterableColGrid);
+ add(twinColGrid);
setSizeFull();
}
+
+ private void initializeData() {
+ selectedBooks.add(new Book("1478375108", "Vaadin Recipes"));
+ selectedBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
+
+
+ availableBooks.add(new Book("1478375108", "Vaadin Recipes"));
+ availableBooks.add(new Book("9781849515221", "Learning Vaadin"));
+ availableBooks
+ .add(new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner�s Guide"));
+ availableBooks.add(new Book("9781849518802", "Vaadin 7 Cookbook"));
+ availableBooks.add(new Book("9526800605", "Book of Vaadin: 7th Edition, 1st Revision"));
+ availableBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
+ availableBooks.add(new Book("9529267533", "Book of Vaadin"));
+ availableBooks.add(new Book("1782169776", "Learning Vaadin 7, Second Edition"));
+ }
+
}
From 17ba71fa78480d6ad3025c80ca97f95bc5445707 Mon Sep 17 00:00:00 2001
From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com>
Date: Fri, 23 Jul 2021 10:56:44 -0300
Subject: [PATCH 8/9] chore: add license header
---
.../twincolgrid/TwinColGridListAdapter.java | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGridListAdapter.java b/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGridListAdapter.java
index 0e682a6..e778f36 100644
--- a/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGridListAdapter.java
+++ b/src/main/java/com/flowingcode/vaadin/addons/twincolgrid/TwinColGridListAdapter.java
@@ -1,3 +1,22 @@
+/*-
+ * #%L
+ * TwinColGrid add-on
+ * %%
+ * Copyright (C) 2017 - 2021 Flowing Code
+ * %%
+ * 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.
+ * #L%
+ */
package com.flowingcode.vaadin.addons.twincolgrid;
import com.vaadin.flow.component.HasValue;
From aa9449812ce5215dca4ebc77ab7501d2cf1f38bd Mon Sep 17 00:00:00 2001
From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com>
Date: Fri, 23 Jul 2021 13:25:55 -0300
Subject: [PATCH 9/9] fix(demo): correct apostrophe character
---
.../com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java | 2 +-
.../flowingcode/vaadin/addons/twincolgrid/DragAndDropDemo.java | 2 +-
.../flowingcode/vaadin/addons/twincolgrid/FilterableDemo.java | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
index 19b594d..2b0d78f 100644
--- a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
+++ b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/BoundDemo.java
@@ -76,7 +76,7 @@ private void initializeData() {
availableBooks.add(new Book("1478375108", "Vaadin Recipes"));
availableBooks.add(new Book("9781849515221", "Learning Vaadin"));
availableBooks
- .add(new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner�s Guide"));
+ .add(new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner\u2019s Guide"));
availableBooks.add(new Book("9781849518802", "Vaadin 7 Cookbook"));
availableBooks.add(new Book("9526800605", "Book of Vaadin: 7th Edition, 1st Revision"));
availableBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
diff --git a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/DragAndDropDemo.java b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/DragAndDropDemo.java
index 8bd3d1e..6c02368 100644
--- a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/DragAndDropDemo.java
+++ b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/DragAndDropDemo.java
@@ -66,7 +66,7 @@ private void initializeData() {
availableBooks.add(new Book("1478375108", "Vaadin Recipes"));
availableBooks.add(new Book("9781849515221", "Learning Vaadin"));
availableBooks
- .add(new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner�s Guide"));
+ .add(new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner\u2019s Guide"));
availableBooks.add(new Book("9781849518802", "Vaadin 7 Cookbook"));
availableBooks.add(new Book("9526800605", "Book of Vaadin: 7th Edition, 1st Revision"));
availableBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));
diff --git a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/FilterableDemo.java b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/FilterableDemo.java
index ec08ee6..9047d38 100644
--- a/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/FilterableDemo.java
+++ b/src/test/java/com/flowingcode/vaadin/addons/twincolgrid/FilterableDemo.java
@@ -57,7 +57,7 @@ private void initializeData() {
availableBooks.add(new Book("1478375108", "Vaadin Recipes"));
availableBooks.add(new Book("9781849515221", "Learning Vaadin"));
availableBooks
- .add(new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner�s Guide"));
+ .add(new Book("9781782162261", "Vaadin 7 UI Design By Example: Beginner\u2019s Guide"));
availableBooks.add(new Book("9781849518802", "Vaadin 7 Cookbook"));
availableBooks.add(new Book("9526800605", "Book of Vaadin: 7th Edition, 1st Revision"));
availableBooks.add(new Book("9789526800677", "Book of Vaadin: Volume 2 "));