Skip to content

Commit a84279a

Browse files
authored
Merge pull request #51 from xdev-software/develop
Release 2.1.0
2 parents 6b123d0 + a763752 commit a84279a

File tree

9 files changed

+205
-98
lines changed

9 files changed

+205
-98
lines changed

.github/workflows/master.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
runs-on: ubuntu-latest
4949
needs: [check_code]
5050
outputs:
51-
upload_url: ${{ steps.create_draft.outputs.upload_url }}
51+
upload_url: ${{ steps.create_release.outputs.upload_url }}
5252
steps:
5353
- uses: actions/checkout@v2
5454

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<groupId>com.xdev-software</groupId>
99
<artifactId>vaadin-date-range-picker-root</artifactId>
1010
<packaging>pom</packaging>
11-
<version>2.0.0</version>
11+
<version>2.1.0-SNAPSHOT</version>
1212

1313
<name>Vaadin DateRangePicker Root Project</name>
1414

vaadin-date-range-picker-demo/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<groupId>com.xdev-software</groupId>
99
<artifactId>vaadin-date-range-picker-demo</artifactId>
10-
<version>2.0.0</version>
10+
<version>2.1.0-SNAPSHOT</version>
1111
<packaging>war</packaging>
1212

1313
<name>Vaadin DateRangePicker Demo</name>

vaadin-date-range-picker-demo/src/main/java/software/xdev/vaadin/daterange_picker/example/DateRangePickerStyledDemo.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,15 @@ protected void initUI()
8181
this.taResult.setValue(
8282
"DateRange: " + modell.getDateRange().getKey() + "\r\n" +
8383
"Start: " + modell.getStart() + "\r\n" +
84-
"End: " + modell.getEnd()
84+
"End: " + modell.getEnd() + "\r\n" +
85+
(ev.getOldValue() != null ?
86+
"OldValue-DateRange: " + ev.getOldValue().getDateRange().getKey() + "\r\n" +
87+
"OldValue-Start: " + ev.getOldValue().getStart() + "\r\n" +
88+
"OldValue-End: " + ev.getOldValue().getEnd()
89+
: "OldValue: null")
90+
+ "\r\n"
91+
+ "IsFromClient: " + ev.isFromClient()
92+
8593
);
8694
// @formatter:on
8795
});

vaadin-date-range-picker/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<artifactId>vaadin-date-range-picker</artifactId>
1010

1111
<packaging>jar</packaging>
12-
<version>2.0.0</version>
12+
<version>2.1.0-SNAPSHOT</version>
1313

1414
<name>DateRangePicker for Vaadin</name>
1515
<description>DateRangePicker for Vaadin</description>

vaadin-date-range-picker/src/main/java/software/xdev/vaadin/daterange_picker/business/DateRangeModel.java

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,69 @@ public DateRangeModel<D> setDateRange(final D dateRange)
8282
this.dateRange = dateRange;
8383
return this;
8484
}
85+
86+
@Override
87+
public int hashCode()
88+
{
89+
final int prime = 31;
90+
int result = 1;
91+
result = prime * result + (this.dateRange == null ? 0 : this.dateRange.hashCode());
92+
result = prime * result + (this.end == null ? 0 : this.end.hashCode());
93+
result = prime * result + (this.start == null ? 0 : this.start.hashCode());
94+
return result;
95+
}
96+
97+
@Override
98+
public boolean equals(final Object obj)
99+
{
100+
if(this == obj)
101+
{
102+
return true;
103+
}
104+
if(obj == null)
105+
{
106+
return false;
107+
}
108+
if(this.getClass() != obj.getClass())
109+
{
110+
return false;
111+
}
112+
final DateRangeModel<?> other = (DateRangeModel<?>)obj;
113+
if(this.dateRange == null)
114+
{
115+
if(other.dateRange != null)
116+
{
117+
return false;
118+
}
119+
}
120+
else if(!this.dateRange.equals(other.dateRange))
121+
{
122+
return false;
123+
}
124+
if(this.end == null)
125+
{
126+
if(other.end != null)
127+
{
128+
return false;
129+
}
130+
}
131+
else if(!this.end.equals(other.end))
132+
{
133+
return false;
134+
}
135+
if(this.start == null)
136+
{
137+
if(other.start != null)
138+
{
139+
return false;
140+
}
141+
}
142+
else if(!this.start.equals(other.start))
143+
{
144+
return false;
145+
}
146+
return true;
147+
}
148+
149+
85150
}

vaadin-date-range-picker/src/main/java/software/xdev/vaadin/daterange_picker/ui/DateRangePicker.java

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,10 @@ protected void registerListeners()
253253
});
254254
this.overlay.addValueChangeListener(ev ->
255255
{
256-
this.updateFromModel();
257-
this.fireEvent(new DateRangeValueChangeEvent<>(this));
256+
this.model = ev.getSource().getModel();
257+
258+
this.updateFromModel(false);
259+
this.fireEvent(new DateRangeValueChangeEvent<>(this, ev.getOldValue(), ev.isFromClient()));
258260
});
259261
}
260262

@@ -263,7 +265,7 @@ protected void onAttach(final AttachEvent attachEvent)
263265
{
264266
this.setLocaleFromClient();
265267

266-
this.updateFromModel();
268+
this.updateFromModel(true);
267269

268270
this.addClickOutsideListener();
269271
}
@@ -280,11 +282,6 @@ protected void addClickOutsideListener()
280282
return;
281283
}
282284

283-
/*
284-
* JS-Explanation
285-
* Base Function (see https://stackoverflow.com/a/28432139/13122067)
286-
* If a click was trigger, check if it originated from this element
287-
*/
288285
final String funcName = "outsideClickFunc" + this.getId().get();
289286

290287
// @formatter:off
@@ -308,7 +305,7 @@ protected void addClickOutsideListener()
308305
" spEl.$server.clickOutsideOccured()\r\n" +
309306
" }\r\n" +
310307
"}; \r\n" +
311-
"document.addEventListener('click'," + funcName + ");";
308+
"document.body.addEventListener('click'," + funcName + ");";
312309
// @formatter:on
313310

314311
this.getContent().getElement().executeJs(jsCommand);
@@ -328,9 +325,12 @@ protected void clickOutsideOccured()
328325
}
329326
}
330327

331-
public void updateFromModel()
328+
protected void updateFromModel(final boolean updateOverlay)
332329
{
333-
this.tryFixInvalidModel();
330+
if(updateOverlay)
331+
{
332+
this.tryFixInvalidModel();
333+
}
334334

335335
final DateTimeFormatter formatter =
336336
DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT).withLocale(this.getFormatLocale());
@@ -346,7 +346,10 @@ public void updateFromModel()
346346
);
347347
// @formatter:on
348348

349-
this.overlay.setModel(this.model);
349+
if(updateOverlay)
350+
{
351+
this.overlay.setModel(this.model);
352+
}
350353
}
351354

352355
protected void tryFixInvalidModel()
@@ -462,7 +465,7 @@ public LocalDate getStart()
462465
public DateRangePicker<D> setStart(final LocalDate start)
463466
{
464467
this.model.setStart(start);
465-
this.updateFromModel();
468+
this.updateFromModel(true);
466469
return this;
467470
}
468471

@@ -476,7 +479,7 @@ public LocalDate getEnd()
476479
public DateRangePicker<D> setEnd(final LocalDate end)
477480
{
478481
this.model.setEnd(end);
479-
this.updateFromModel();
482+
this.updateFromModel(true);
480483
return this;
481484
}
482485

@@ -490,15 +493,15 @@ public D getDateRange()
490493
public DateRangePicker<D> setDateRange(final D dateRange)
491494
{
492495
this.model.setDateRange(dateRange);
493-
this.updateFromModel();
496+
this.updateFromModel(true);
494497
return this;
495498
}
496499

497500
@Override
498501
public void setValue(final DateRangeModel<D> value)
499502
{
500503
this.model = value;
501-
this.updateFromModel();
504+
this.updateFromModel(true);
502505
}
503506

504507
@Override

0 commit comments

Comments
 (0)