Skip to content

Commit 06ebb04

Browse files
javier-godoypaodb
authored andcommitted
feat: add json-migration-helper
1 parent 12b367b commit 06ebb04

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

pom.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,17 @@
129129
<artifactId>vaadin-core</artifactId>
130130
<optional>true</optional>
131131
</dependency>
132+
<dependency>
133+
<groupId>com.flowingcode.vaadin</groupId>
134+
<artifactId>json-migration-helper</artifactId>
135+
<version>0.0.1-SNAPSHOT</version>
136+
</dependency>
137+
<dependency>
138+
<groupId>org.projectlombok</groupId>
139+
<artifactId>lombok</artifactId>
140+
<version>1.18.42</version>
141+
<scope>provided</scope>
142+
</dependency>
132143
<dependency>
133144
<groupId>org.slf4j</groupId>
134145
<artifactId>slf4j-simple</artifactId>

src/main/java/com/flowingcode/addons/ycalendar/AbstractCalendarComponent.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
* Licensed under the Apache License, Version 2.0 (the "License");
88
* you may not use this file except in compliance with the License.
99
* You may obtain a copy of the License at
10-
*
10+
*
1111
* http://www.apache.org/licenses/LICENSE-2.0
12-
*
12+
*
1313
* Unless required by applicable law or agreed to in writing, software
1414
* distributed under the License is distributed on an "AS IS" BASIS,
1515
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -19,23 +19,26 @@
1919
*/
2020
package com.flowingcode.addons.ycalendar;
2121

22+
import com.flowingcode.vaadin.jsonmigration.JsonMigration;
23+
import com.flowingcode.vaadin.jsonmigration.JsonSerializer;
2224
import com.vaadin.flow.component.AttachEvent;
2325
import com.vaadin.flow.component.Component;
2426
import com.vaadin.flow.component.ComponentEventListener;
2527
import com.vaadin.flow.component.ComponentUtil;
2628
import com.vaadin.flow.component.UI;
2729
import com.vaadin.flow.component.datepicker.DatePicker.DatePickerI18n;
2830
import com.vaadin.flow.function.SerializableConsumer;
29-
import com.vaadin.flow.internal.JsonSerializer;
3031
import com.vaadin.flow.shared.Registration;
3132
import elemental.json.JsonObject;
3233
import java.util.Objects;
34+
import lombok.experimental.ExtensionMethod;
3335

3436
/**
3537
* A base abstract class for calendar components, with additional methods used for i18n initialization
3638
* and listener registration.
3739
*/
3840
@SuppressWarnings("serial")
41+
@ExtensionMethod(JsonMigration.class)
3942
public abstract class AbstractCalendarComponent<COMPONENT extends Component> extends Component {
4043

4144
private DatePickerI18n i18n;

src/main/java/com/flowingcode/addons/ycalendar/InlineDatePicker.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
*/
2020
package com.flowingcode.addons.ycalendar;
2121

22+
import com.flowingcode.vaadin.jsonmigration.JsonMigration;
23+
import com.flowingcode.vaadin.jsonmigration.JsonSerializer;
2224
import com.vaadin.flow.component.AbstractSinglePropertyField;
2325
import com.vaadin.flow.component.HasSize;
2426
import com.vaadin.flow.component.HasTheme;
@@ -28,18 +30,19 @@
2830
import com.vaadin.flow.component.dependency.Uses;
2931
import com.vaadin.flow.function.SerializableFunction;
3032
import com.vaadin.flow.function.ValueProvider;
31-
import com.vaadin.flow.internal.JsonSerializer;
3233
import java.time.LocalDate;
3334
import java.time.YearMonth;
3435
import java.util.Objects;
3536
import java.util.Optional;
3637
import java.util.stream.IntStream;
38+
import lombok.experimental.ExtensionMethod;
3739

3840
@SuppressWarnings("serial")
3941
@Tag("fc-inline-date-picker")
4042
@JsModule("./fc-inline-date-picker/fc-inline-date-picker.js")
4143
@Uses(YearMonthField.class)
4244
@Uses(MonthCalendar.class)
45+
@ExtensionMethod(JsonMigration.class)
4346
public class InlineDatePicker extends AbstractSinglePropertyField<InlineDatePicker, LocalDate> implements HasSize, HasTheme {
4447

4548
private static final String VALUE_PROPERTY = "value";
@@ -51,7 +54,7 @@ public class InlineDatePicker extends AbstractSinglePropertyField<InlineDatePick
5154
private static <R,S> SerializableFunction<R,S> map(SerializableFunction<R,S> f) {
5255
return r->Optional.ofNullable(r).map(f).orElse(null);
5356
}
54-
57+
5558
/** Creates a new instance of InlineDatePicker initialized with the current date and with week numbers visible. */
5659
public InlineDatePicker() {
5760
super(VALUE_PROPERTY, null, String.class, map(LocalDate::parse), map(LocalDate::toString));

src/main/java/com/flowingcode/addons/ycalendar/YearMonthField.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,25 @@
1919
*/
2020
package com.flowingcode.addons.ycalendar;
2121

22+
import com.flowingcode.vaadin.jsonmigration.JsonMigration;
23+
import com.flowingcode.vaadin.jsonmigration.JsonSerializer;
2224
import com.vaadin.flow.component.AbstractSinglePropertyField;
2325
import com.vaadin.flow.component.HasTheme;
2426
import com.vaadin.flow.component.Tag;
2527
import com.vaadin.flow.component.datepicker.DatePicker.DatePickerI18n;
2628
import com.vaadin.flow.component.dependency.JsModule;
2729
import com.vaadin.flow.function.SerializableFunction;
28-
import com.vaadin.flow.internal.JsonSerializer;
2930
import elemental.json.Json;
3031
import elemental.json.JsonValue;
3132
import java.time.YearMonth;
3233
import java.util.Objects;
3334
import java.util.Optional;
35+
import lombok.experimental.ExtensionMethod;
3436

3537
@SuppressWarnings("serial")
3638
@Tag("fc-year-month-field")
3739
@JsModule("./fc-year-month-field/fc-year-month-field.js")
40+
@ExtensionMethod(JsonMigration.class)
3841
public class YearMonthField extends AbstractSinglePropertyField<YearMonthField, YearMonth>
3942
implements HasTheme {
4043

0 commit comments

Comments
 (0)