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>, 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> 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>> 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>, 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 "));