Skip to content

Commit 5a846ec

Browse files
committed
Merge branch 'fix-tb-1515' of https://github.com/vaadin/flow-components into fix-tb-1515
2 parents c7bc66f + 2d3ea0d commit 5a846ec

File tree

226 files changed

+5160
-2457
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

226 files changed

+5160
-2457
lines changed

pom.xml

+12-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.vaadin</groupId>
66
<artifactId>vaadin-parent</artifactId>
7-
<version>2.2.1</version>
7+
<version>2.2.2</version>
88
</parent>
99
<artifactId>vaadin-flow-components</artifactId>
1010
<version>24.8-SNAPSHOT</version>
@@ -62,19 +62,24 @@
6262
<module>vaadin-side-nav-flow-parent</module>
6363
<module>vaadin-master-detail-layout-flow-parent</module>
6464
</modules>
65+
<scm>
66+
<connection>scm:https:https://github.com/vaadin/flow-components.git</connection>
67+
<developerConnection>scm:git:[email protected]:vaadin/flow-components.git</developerConnection>
68+
<url>https://github.com/vaadin/flow-components</url>
69+
</scm>
6570
<properties>
6671
<flow.version>24.8-SNAPSHOT</flow.version>
67-
<testbench.version>9.3.10</testbench.version>
72+
<testbench.version>9.4.0.alpha1</testbench.version>
6873
<maven.compiler.source>17</maven.compiler.source>
6974
<maven.compiler.target>17</maven.compiler.target>
7075
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
7176
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
72-
<jetty.version>12.0.17</jetty.version>
77+
<jetty.version>12.0.20</jetty.version>
7378
<jetty.http.port>8080</jetty.http.port>
7479
<jetty.stop.port>9999</jetty.stop.port>
7580
<karaf-maven-plugin.version>4.4.7</karaf-maven-plugin.version>
76-
<maven.surefire.plugin.version>3.5.2</maven.surefire.plugin.version>
77-
<maven.failsafe.plugin.version>3.5.2</maven.failsafe.plugin.version>
81+
<maven.surefire.plugin.version>3.5.3</maven.surefire.plugin.version>
82+
<maven.failsafe.plugin.version>3.5.3</maven.failsafe.plugin.version>
7883
<maven.resources.plugin.version>3.3.1</maven.resources.plugin.version>
7984
<spotless.plugin.version>2.44.3</spotless.plugin.version>
8085
<spotless.licence-header>${maven.multiModuleProjectDirectory}/scripts/templates/apache2-license-header.txt</spotless.licence-header>
@@ -90,10 +95,10 @@
9095
<cvdlName/>
9196
<jakarta.servlet.api.version>5.0.0</jakarta.servlet.api.version>
9297
<jakarta.web.api.version>10.0.0</jakarta.web.api.version>
93-
<spring-data-commons.version>3.4.3</spring-data-commons.version>
98+
<spring-data-commons.version>3.4.5</spring-data-commons.version>
9499

95100
<!-- spreadsheet -->
96-
<poi.version>5.4.0</poi.version>
101+
<poi.version>5.4.1</poi.version>
97102
<javaparser.version>3.26.3</javaparser.version>
98103
</properties>
99104
<dependencyManagement>

vaadin-accordion-flow-parent/vaadin-accordion-flow/src/main/java/com/vaadin/flow/component/accordion/Accordion.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@
5252
* @author Vaadin Ltd
5353
*/
5454
@Tag("vaadin-accordion")
55-
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha5")
55+
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha15")
5656
@JsModule("@vaadin/polymer-legacy-adapter/style-modules.js")
57-
@NpmPackage(value = "@vaadin/accordion", version = "24.8.0-alpha5")
57+
@NpmPackage(value = "@vaadin/accordion", version = "24.8.0-alpha15")
5858
@JsModule("@vaadin/accordion/src/vaadin-accordion.js")
5959
public class Accordion extends Component implements HasSize, HasStyle {
6060

vaadin-accordion-flow-parent/vaadin-accordion-flow/src/main/java/com/vaadin/flow/component/accordion/AccordionPanel.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
* An accordion panel which could be opened or closed.
2626
*/
2727
@Tag("vaadin-accordion-panel")
28-
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha5")
28+
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha15")
2929
@JsModule("@vaadin/polymer-legacy-adapter/style-modules.js")
30-
@NpmPackage(value = "@vaadin/accordion", version = "24.8.0-alpha5")
30+
@NpmPackage(value = "@vaadin/accordion", version = "24.8.0-alpha15")
3131
@JsModule("@vaadin/accordion/src/vaadin-accordion-panel.js")
3232
public class AccordionPanel extends Details {
3333

vaadin-app-layout-flow-parent/vaadin-app-layout-flow/src/main/java/com/vaadin/flow/component/applayout/AppLayout.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@
5252
* @author Vaadin Ltd
5353
*/
5454
@Tag("vaadin-app-layout")
55-
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha5")
55+
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha15")
5656
@JsModule("@vaadin/polymer-legacy-adapter/style-modules.js")
57-
@NpmPackage(value = "@vaadin/app-layout", version = "24.8.0-alpha5")
57+
@NpmPackage(value = "@vaadin/app-layout", version = "24.8.0-alpha15")
5858
@JsModule("@vaadin/app-layout/src/vaadin-app-layout.js")
5959
public class AppLayout extends Component implements RouterLayout, HasStyle {
6060
private static final PropertyDescriptor<String, String> primarySectionProperty = PropertyDescriptors

vaadin-app-layout-flow-parent/vaadin-app-layout-flow/src/main/java/com/vaadin/flow/component/applayout/DrawerToggle.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@
3030
* </code>
3131
*/
3232
@Tag("vaadin-drawer-toggle")
33-
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha5")
33+
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha15")
3434
@JsModule("@vaadin/polymer-legacy-adapter/style-modules.js")
35-
@NpmPackage(value = "@vaadin/app-layout", version = "24.8.0-alpha5")
35+
@NpmPackage(value = "@vaadin/app-layout", version = "24.8.0-alpha15")
3636
@JsModule("@vaadin/app-layout/src/vaadin-drawer-toggle.js")
3737
public class DrawerToggle extends Button {
3838

vaadin-avatar-flow-parent/vaadin-avatar-flow-integration-tests/src/main/java/com/vaadin/flow/component/avatar/tests/AvatarGroupPage.java

+15-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.vaadin.flow.component.html.Div;
2424
import com.vaadin.flow.component.html.NativeButton;
2525
import com.vaadin.flow.router.Route;
26+
import com.vaadin.flow.server.DownloadHandler;
2627
import com.vaadin.flow.server.StreamResource;
2728

2829
@Route("vaadin-avatar/avatar-group-test")
@@ -60,6 +61,19 @@ public AvatarGroupPage() {
6061
});
6162
setItemsWithResource.setId("set-items-with-resource");
6263

64+
NativeButton setItemsWithDownloadHandler = new NativeButton(
65+
"Set new item with download resource image", e -> {
66+
DownloadHandler download = DownloadHandler.forClassResource(
67+
getClass(),
68+
"/META-INF/resources/frontend/images/user.png",
69+
"avatar-group-img");
70+
AvatarGroupItem newItem = new AvatarGroupItem();
71+
newItem.setImageHandler(download);
72+
73+
avatarGroup.setItems(newItem);
74+
});
75+
setItemsWithDownloadHandler.setId("set-items-with-download-resource");
76+
6377
NativeButton addClassNames = new NativeButton("Add class name", e -> {
6478
items.get(0).addClassNames("red");
6579
});
@@ -72,6 +86,6 @@ public AvatarGroupPage() {
7286
removeClassNames.setId("remove-class-names");
7387

7488
add(avatarGroup, updateItems, setItemsWithResource, addClassNames,
75-
removeClassNames);
89+
removeClassNames, setItemsWithDownloadHandler);
7690
}
7791
}

vaadin-avatar-flow-parent/vaadin-avatar-flow-integration-tests/src/main/java/com/vaadin/flow/component/avatar/tests/AvatarPage.java

+17-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.vaadin.flow.component.html.Div;
2020
import com.vaadin.flow.component.html.NativeButton;
2121
import com.vaadin.flow.router.Route;
22+
import com.vaadin.flow.server.DownloadHandler;
2223
import com.vaadin.flow.server.StreamResource;
2324

2425
@Route("vaadin-avatar/avatar-test")
@@ -69,6 +70,20 @@ public AvatarPage() {
6970
});
7071
toggleImgResource.setId("toggle-res");
7172

73+
NativeButton toggleImgHandler = new NativeButton("Toggle image handler",
74+
e -> {
75+
if (avatar.getImageResource() == null) {
76+
DownloadHandler download = DownloadHandler
77+
.forClassResource(getClass(),
78+
"/META-INF/resources/frontend/images/user.png",
79+
"user+.png");
80+
avatar.setImageHandler(download);
81+
} else {
82+
avatar.setImageHandler(null);
83+
}
84+
});
85+
toggleImgHandler.setId("toggle-res-handler");
86+
7287
Div dataImg = new Div();
7388
dataImg.setId("data-block-img");
7489

@@ -92,6 +107,7 @@ public AvatarPage() {
92107
getPropertyValues.setId("get-props");
93108

94109
add(avatar, toggleImage, toggleAbbr, toggleName, toggleImgResource,
95-
dataImg, dataAbbr, dataName, dataResource, getPropertyValues);
110+
toggleImgHandler, dataImg, dataAbbr, dataName, dataResource,
111+
getPropertyValues);
96112
}
97113
}

vaadin-avatar-flow-parent/vaadin-avatar-flow-integration-tests/src/test/java/com/vaadin/flow/component/avatar/tests/AvatarGroupIT.java

+9
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,15 @@ public void avatarGroupAttached_setItemsWithImageResource_imageLoaded() {
6262
checkLogsForErrors(); // would fail if the image wasn't hosted
6363
}
6464

65+
@Test
66+
public void avatarGroupAttached_setItemsWithDownloadHandler_imageLoaded() {
67+
clickElementWithJs("set-items-with-download-resource");
68+
String imageUrl = $(AvatarGroupElement.class).first()
69+
.getAvatarElement(0).getPropertyString("img");
70+
Assert.assertTrue(imageUrl.startsWith("VAADIN/dynamic"));
71+
checkLogsForErrors(); // would fail if the image wasn't hosted
72+
}
73+
6574
@Test
6675
public void addClassNames_removeClassNames_avatarsUpdated() {
6776
findElement(By.id("add-class-names")).click();

vaadin-avatar-flow-parent/vaadin-avatar-flow-integration-tests/src/test/java/com/vaadin/flow/component/avatar/tests/AvatarIT.java

+15
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ public void propertiesAreSet() {
4646
WebElement toggleAbbr = findElement(By.id("toggle-abbr"));
4747
WebElement toggleName = findElement(By.id("toggle-name"));
4848
WebElement toggleResource = findElement(By.id("toggle-res"));
49+
WebElement toggleResourceHandler = findElement(
50+
By.id("toggle-res-handler"));
4951

5052
WebElement imgBlock = findElement(By.id("data-block-img"));
5153
WebElement abbrBlock = findElement(By.id("data-block-abbr"));
@@ -56,6 +58,12 @@ public void propertiesAreSet() {
5658
getPropsBtn.click();
5759
Assert.assertEquals("https://vaadin.com/", imgBlock.getText());
5860

61+
toggleResourceHandler.click();
62+
getPropsBtn.click();
63+
Assert.assertTrue("img url contains file name",
64+
resourceBlock.getText().contains("user%2B.png"));
65+
toggleResourceHandler.click();
66+
5967
toggleAbbr.click();
6068
getPropsBtn.click();
6169
Assert.assertEquals("BB", abbrBlock.getText());
@@ -78,6 +86,8 @@ public void propertiesAreUnset() {
7886
WebElement toggleAbbr = findElement(By.id("toggle-abbr"));
7987
WebElement toggleName = findElement(By.id("toggle-name"));
8088
WebElement toggleResource = findElement(By.id("toggle-res"));
89+
WebElement toggleResourceHandler = findElement(
90+
By.id("toggle-res-handler"));
8191

8292
WebElement imgBlock = findElement(By.id("data-block-img"));
8393
WebElement abbrBlock = findElement(By.id("data-block-abbr"));
@@ -105,5 +115,10 @@ public void propertiesAreUnset() {
105115
toggleResource.click();
106116
getPropsBtn.click();
107117
Assert.assertEquals("", resourceBlock.getText());
118+
119+
toggleResourceHandler.click();
120+
toggleResourceHandler.click();
121+
getPropsBtn.click();
122+
Assert.assertEquals("", resourceBlock.getText());
108123
}
109124
}

vaadin-avatar-flow-parent/vaadin-avatar-flow/src/main/java/com/vaadin/flow/component/avatar/Avatar.java

+26-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import com.vaadin.flow.component.shared.HasThemeVariant;
2828
import com.vaadin.flow.internal.JsonSerializer;
2929
import com.vaadin.flow.server.AbstractStreamResource;
30+
import com.vaadin.flow.server.DownloadHandler;
31+
import com.vaadin.flow.server.StreamResourceRegistry;
3032

3133
import elemental.json.JsonObject;
3234

@@ -53,10 +55,10 @@
5355
* @author Vaadin Ltd
5456
*/
5557
@Tag("vaadin-avatar")
56-
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha5")
58+
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha15")
5759
@JsModule("@vaadin/polymer-legacy-adapter/style-modules.js")
5860
@JsModule("@vaadin/avatar/src/vaadin-avatar.js")
59-
@NpmPackage(value = "@vaadin/avatar", version = "24.8.0-alpha5")
61+
@NpmPackage(value = "@vaadin/avatar", version = "24.8.0-alpha15")
6062
public class Avatar extends Component
6163
implements HasStyle, HasSize, HasThemeVariant<AvatarVariant> {
6264

@@ -263,6 +265,28 @@ public void setImageResource(AbstractStreamResource resource) {
263265
getElement().setAttribute("img", resource);
264266
}
265267

268+
/**
269+
* Sets the image for the avatar.
270+
* <p>
271+
* Setting the image as a resource with this method resets the image URL
272+
* that was set with {@link Avatar#setImage(String)}
273+
*
274+
* @see Avatar#setImage(String)
275+
* @param downloadHandler
276+
* the download resource or {@code null} to remove the resource
277+
*/
278+
public void setImageHandler(DownloadHandler downloadHandler) {
279+
if (downloadHandler == null) {
280+
imageResource = null;
281+
getElement().removeAttribute("img");
282+
return;
283+
}
284+
imageResource = new StreamResourceRegistry.ElementStreamResource(
285+
downloadHandler, getElement());
286+
287+
getElement().setAttribute("img", imageResource);
288+
}
289+
266290
/**
267291
* Gets the color index for the avatar.
268292
*

vaadin-avatar-flow-parent/vaadin-avatar-flow/src/main/java/com/vaadin/flow/component/avatar/AvatarGroup.java

+26-2
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import com.vaadin.flow.component.HasSize;
3535
import com.vaadin.flow.component.HasStyle;
3636
import com.vaadin.flow.component.Tag;
37+
import com.vaadin.flow.component.UI;
3738
import com.vaadin.flow.component.dependency.JsModule;
3839
import com.vaadin.flow.component.dependency.NpmPackage;
3940
import com.vaadin.flow.component.shared.HasOverlayClassName;
@@ -43,6 +44,7 @@
4344
import com.vaadin.flow.internal.StateTree;
4445
import com.vaadin.flow.server.AbstractStreamResource;
4546
import com.vaadin.flow.server.Command;
47+
import com.vaadin.flow.server.DownloadHandler;
4648
import com.vaadin.flow.server.StreamRegistration;
4749
import com.vaadin.flow.server.StreamResourceRegistry;
4850
import com.vaadin.flow.server.VaadinSession;
@@ -65,10 +67,10 @@
6567
* @author Vaadin Ltd
6668
*/
6769
@Tag("vaadin-avatar-group")
68-
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha5")
70+
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha15")
6971
@JsModule("@vaadin/polymer-legacy-adapter/style-modules.js")
7072
@JsModule("@vaadin/avatar-group/src/vaadin-avatar-group.js")
71-
@NpmPackage(value = "@vaadin/avatar-group", version = "24.8.0-alpha5")
73+
@NpmPackage(value = "@vaadin/avatar-group", version = "24.8.0-alpha15")
7274
public class AvatarGroup extends Component implements HasOverlayClassName,
7375
HasStyle, HasSize, HasThemeVariant<AvatarGroupVariant> {
7476

@@ -219,6 +221,28 @@ public void setImage(String url) {
219221
}
220222
}
221223

224+
/**
225+
* Sets the image for the avatar.
226+
* <p>
227+
* Setting the image as a resource with this method resets the image URL
228+
* that was set with {@link AvatarGroupItem#setImage(String)}
229+
*
230+
* @see AvatarGroupItem#setImage(String)
231+
* @param downloadHandler
232+
* the download resource or {@code null} to remove the
233+
* resource
234+
*/
235+
public void setImageHandler(DownloadHandler downloadHandler) {
236+
if (downloadHandler == null) {
237+
unsetResource();
238+
return;
239+
}
240+
241+
setImageResource(new StreamResourceRegistry.ElementStreamResource(
242+
downloadHandler, getHost() != null ? getHost().getElement()
243+
: UI.getCurrent().getElement()));
244+
}
245+
222246
/**
223247
* Sets the image for the avatar.
224248
* <p>

vaadin-board-flow-parent/vaadin-board-flow/src/main/java/com/vaadin/flow/component/board/Board.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
* <p>
2828
*/
2929
@Tag("vaadin-board")
30-
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha5")
30+
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha15")
3131
@JsModule("@vaadin/polymer-legacy-adapter/style-modules.js")
32-
@NpmPackage(value = "@vaadin/board", version = "24.8.0-alpha5")
32+
@NpmPackage(value = "@vaadin/board", version = "24.8.0-alpha15")
3333
@JsModule("@vaadin/board/src/vaadin-board.js")
3434
public class Board extends Component
3535
implements HasSize, HasStyle, HasOrderedComponents {

vaadin-board-flow-parent/vaadin-board-flow/src/main/java/com/vaadin/flow/component/board/Row.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929
* <p>
3030
*/
3131
@Tag("vaadin-board-row")
32-
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha5")
32+
@NpmPackage(value = "@vaadin/polymer-legacy-adapter", version = "24.8.0-alpha15")
3333
@JsModule("@vaadin/polymer-legacy-adapter/style-modules.js")
34-
@NpmPackage(value = "@vaadin/board", version = "24.8.0-alpha5")
34+
@NpmPackage(value = "@vaadin/board", version = "24.8.0-alpha15")
3535
@JsModule("@vaadin/board/src/vaadin-board-row.js")
3636
public class Row extends Component
3737
implements HasStyle, HasSize, HasOrderedComponents {

vaadin-button-flow-parent/vaadin-button-flow-integration-tests/src/main/java/com/vaadin/flow/component/button/tests/ButtonView.java

-15
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import com.vaadin.flow.component.Key;
2323
import com.vaadin.flow.component.KeyModifier;
2424
import com.vaadin.flow.component.button.Button;
25-
import com.vaadin.flow.component.button.ButtonVariant;
2625
import com.vaadin.flow.component.html.Div;
2726
import com.vaadin.flow.component.html.H2;
2827
import com.vaadin.flow.component.html.Image;
@@ -52,7 +51,6 @@ public ButtonView() {
5251
createButtonWithDisableOnClickThatEnablesInSameRoundTrip();
5352
createButtonWithDisableOnClickThatIsHidden();
5453
createButtonWithDisableOnClickAndPointerEventsAuto();
55-
addVariantsFeature();
5654
createButtonsWithShortcuts();
5755

5856
message = new Div();
@@ -139,19 +137,6 @@ private void createDisabledButton() {
139137
button.setId("disabled-button");
140138
}
141139

142-
private void addVariantsFeature() {
143-
Button button = new Button("Button");
144-
button.setId("button-theme-variants");
145-
button.addThemeVariants(ButtonVariant.LUMO_SMALL,
146-
ButtonVariant.LUMO_PRIMARY);
147-
148-
Button removeVariantButton = new Button("Remove theme variant", e -> {
149-
button.removeThemeVariants(ButtonVariant.LUMO_SMALL);
150-
});
151-
removeVariantButton.setId("remove-theme-variant-button");
152-
addCard("Button theme variants", button, removeVariantButton);
153-
}
154-
155140
private void createButtonsWithShortcuts() {
156141
Button button = new Button("Has global Enter-shortcut",
157142
this::showButtonClickedMessage);

0 commit comments

Comments
 (0)