Skip to content

Commit d0e40b3

Browse files
committed
Merge branch 'release_2.2'
2 parents 4183bbf + 17a67c2 commit d0e40b3

File tree

13 files changed

+175
-24
lines changed

13 files changed

+175
-24
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,20 @@ We created <a href="http://gwtmaterialdesign.github.io/gwt-material-demo/apidocs
1919

2020

2121
## Maven
22-
### Current Version 2.2-rc1
22+
### Current Version 2.2
2323
```xml
2424
<dependency>
2525
<groupId>com.github.gwtmaterialdesign</groupId>
2626
<artifactId>gwt-material</artifactId>
27-
<version>2.2-rc1</version>
27+
<version>2.2</version>
2828
</dependency>
2929
```
30-
### Snapshot Version 2.2-SNAPSHOT
30+
### Snapshot Version 2.3-SNAPSHOT
3131
```xml
3232
<dependency>
3333
<groupId>com.github.gwtmaterialdesign</groupId>
3434
<artifactId>gwt-material</artifactId>
35-
<version>2.2-SNAPSHOT</version>
35+
<version>2.3-SNAPSHOT</version>
3636
</dependency>
3737
```
3838

gwt-material/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<artifactId>gwt-material-parent</artifactId>
66
<groupId>com.github.gwtmaterialdesign</groupId>
7-
<version>2.2-rc1</version>
7+
<version>2.2</version>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>
1010

gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusDisplayMixin.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ public void updateStatusDisplay(StatusType statusType) {
8282
}
8383

8484
if (uiObject instanceof HasWidgets && uiObject instanceof MaterialWidget) {
85-
MaterialWidget widget = ((MaterialWidget) uiObject);
8685
if (container != null && container instanceof MaterialWidget) {
8786
((MaterialWidget) container).insert(statusIcon, 0);
8887
} else {

gwt-material/src/main/java/gwt/material/design/client/base/validator/BlankValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,6 @@ public boolean isValid(T value) {
6363
if (value instanceof Collection<?>) {
6464
return ((Collection<?>) value).size() > 0;
6565
}
66-
return value != null && !"".equals(value.toString());
66+
return value != null && !"".equals(value.toString().trim());
6767
}
6868
}

gwt-material/src/main/java/gwt/material/design/client/ui/MaterialValueBox.java

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,16 @@
3737
import com.google.gwt.user.client.ui.HasText;
3838
import com.google.gwt.user.client.ui.ValueBoxBase;
3939
import com.google.gwt.user.client.ui.ValueBoxBase.TextAlignment;
40-
import com.google.gwt.user.client.ui.Widget;
4140
import gwt.material.design.client.base.*;
4241
import gwt.material.design.client.base.mixin.*;
4342
import gwt.material.design.client.constants.*;
4443
import gwt.material.design.client.events.DragEndEvent;
4544
import gwt.material.design.client.events.DragEnterEvent;
4645
import gwt.material.design.client.events.DragLeaveEvent;
47-
import gwt.material.design.client.events.*;
4846
import gwt.material.design.client.events.DragOverEvent;
4947
import gwt.material.design.client.events.DragStartEvent;
5048
import gwt.material.design.client.events.DropEvent;
49+
import gwt.material.design.client.events.*;
5150
import gwt.material.design.client.ui.html.Label;
5251

5352
//@formatter:off
@@ -87,7 +86,6 @@ public class MaterialValueBox<T> extends AbstractValueWidget<T> implements HasCh
8786
private FocusableMixin<MaterialWidget> focusableMixin;
8887
private ActiveMixin<MaterialValueBox> activeMixin;
8988
private FieldTypeMixin<MaterialValueBox> fieldTypeMixin;
90-
private AttributeMixin<Widget> autocompleteAttributeMixin;
9189

9290
public class MaterialValueBoxEditor<V> extends ValueBoxEditor<V> {
9391
private final ValueBoxBase<V> valueBoxBase;
@@ -534,12 +532,12 @@ public void setFieldWidth(double percentWidth) {
534532

535533
@Override
536534
public void setAutocomplete(boolean value) {
537-
getAutocompleteAttributeMixin().setAttribute(value ? "on" : "off");
535+
valueBoxBase.getElement().setAttribute("autocomplete", value ? "on" : "off");
538536
}
539537

540538
@Override
541539
public boolean isAutocomplete() {
542-
return getAutocompleteAttributeMixin().getAttributeAsBoolean();
540+
return valueBoxBase.getElement().getAttribute("autocomplete").equals("on");
543541
}
544542

545543
@Ignore
@@ -877,11 +875,4 @@ protected FieldTypeMixin<MaterialValueBox> getFieldTypeMixin() {
877875
}
878876
return fieldTypeMixin;
879877
}
880-
881-
public AttributeMixin<Widget> getAutocompleteAttributeMixin() {
882-
if (autocompleteAttributeMixin == null) {
883-
autocompleteAttributeMixin = new AttributeMixin<>(valueBoxBase, "autocomplete");
884-
}
885-
return autocompleteAttributeMixin;
886-
}
887878
}

gwt-material/src/main/resources/gwt/material/design/client/resources/js/materialize-0.97.5.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4174,7 +4174,7 @@ function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) {
41744174
P.$root.addClass( CLASSES.opened )
41754175
aria( P.$root[0], 'hidden', false )
41764176

4177-
}, 100 )
4177+
}, 0 )
41784178

41794179
// If we have to give focus, bind the element and doc events.
41804180
if ( dontGiveFocus !== false ) {
@@ -4574,6 +4574,14 @@ function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) {
45744574
readonly: false,
45754575
owns: ELEMENT.id + '_root'
45764576
})
4577+
4578+
// Chrome 73 suggested solution for DatePicker being fubared when opening.
4579+
// Refer to https://github.com/GwtMaterialDesign/gwt-material/commit/0670c85ce2a1ee2c28be906fb12f4c0435321ce6
4580+
document.querySelector("#" + ELEMENT.id).addEventListener('pointerdown', function (event) {
4581+
if (event.target && event.target.setPointerCapture) {
4582+
event.target.setPointerCapture(event.pointerId)
4583+
}
4584+
});
45774585
}
45784586

45794587

gwt-material/src/main/resources/gwt/material/design/client/resources/js/materialize-0.97.5.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gwt-material/src/test/java/gwt/material/design/client/ui/MaterialValueBoxTest.java

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.google.gwt.event.shared.HasHandlers;
2323
import com.google.gwt.user.client.ui.IsWidget;
2424
import com.google.gwt.user.client.ui.ValueBoxBase;
25+
import gwt.material.design.client.constants.StatusDisplayType;
2526
import gwt.material.design.client.ui.base.AbstractValueWidgetTest;
2627

2728
/**
@@ -73,6 +74,65 @@ public void testValueReturnAsNull() {
7374
}
7475
}
7576

77+
public void testAutocomplete() {
78+
T widget = getWidget();
79+
80+
checkAutocomplete(widget);
81+
}
82+
83+
public void testMandatoryField() {
84+
T widget = getWidget(false);
85+
86+
checkMandatoryField(widget);
87+
88+
attachWidget();
89+
90+
checkMandatoryField(widget);
91+
}
92+
93+
public void testStatusDisplayType() {
94+
T widget = getWidget(false);
95+
96+
assertEquals(null, widget.getStatusDisplayType());
97+
98+
widget.setStatusDisplayType(StatusDisplayType.DEFAULT);
99+
assertEquals(StatusDisplayType.DEFAULT, widget.getStatusDisplayType());
100+
assertTrue(widget.getElement().hasClassName(StatusDisplayType.DEFAULT.getCssName()));
101+
102+
widget.setStatusDisplayType(StatusDisplayType.HOVERABLE);
103+
assertEquals(StatusDisplayType.HOVERABLE, widget.getStatusDisplayType());
104+
assertTrue(widget.getElement().hasClassName(StatusDisplayType.HOVERABLE.getCssName()));
105+
}
106+
107+
protected <W extends MaterialValueBox> void checkMandatoryField(W widget) {
108+
String REQUIRED = "required";
109+
assertFalse(widget.isRequired());
110+
111+
widget.setRequired(true);
112+
assertTrue(widget.isRequired());
113+
assertTrue(widget.getStatusTextMixin().getPlaceholder().getElement().hasClassName(REQUIRED));
114+
115+
widget.setRequired(false);
116+
assertFalse(widget.isRequired());
117+
assertFalse(widget.getStatusTextMixin().getPlaceholder().getElement().hasClassName(REQUIRED));
118+
}
119+
120+
protected <W extends MaterialValueBox> void checkAutocomplete(W widget) {
121+
ValueBoxBase valueBoxBase = widget.getValueBoxBase();
122+
assertFalse(widget.isAutocomplete());
123+
assertFalse(valueBoxBase.getElement().hasAttribute("autocomplete"));
124+
125+
widget.setAutocomplete(true);
126+
assertTrue(widget.isAutocomplete());
127+
assertEquals(valueBoxBase.getElement().getAttribute("autocomplete"), "on");
128+
129+
widget.setAutocomplete(false);
130+
assertFalse(widget.isAutocomplete());
131+
assertEquals(valueBoxBase.getElement().getAttribute("autocomplete"), "off");
132+
133+
valueBoxBase.getElement().removeAttribute("autocomplete");
134+
}
135+
76136
protected void checkValueReturnAsNull(T widget) {
77137
assertTrue(widget.isBlank());
78138
assertFalse(widget.isReturnBlankAsNull());

gwt-material/src/test/java/gwt/material/design/client/ui/base/AbstractButtonTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ public void testType() {
7979
widget.setType(ButtonType.OUTLINED);
8080
assertEquals(ButtonType.OUTLINED, widget.getType());
8181

82+
widget.setType(ButtonType.GHOST);
83+
assertEquals(ButtonType.GHOST, widget.getType());
84+
8285
// Standard
8386
// given
8487
attachWidget();
@@ -96,6 +99,9 @@ public void testType() {
9699

97100
widget.setType(ButtonType.OUTLINED);
98101
assertTrue(element.hasClassName(ButtonType.OUTLINED.getCssName()));
102+
103+
widget.setType(ButtonType.GHOST);
104+
assertTrue(element.hasClassName(ButtonType.GHOST.getCssName()));
99105
}
100106

101107
public void testActivates() {

gwt-material/src/test/java/gwt/material/design/client/ui/base/AbstractIconButtonTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,16 @@ public void testIcon() {
102102
icon.setIconFontSize(2, Style.Unit.PX);
103103
assertEquals("2px", icon.getElement().getStyle().getFontSize());
104104
}
105+
106+
public void testCustomIcon() {
107+
final String CUSTOM_ICON = "fas_custom";
108+
T widget = getWidget();
109+
widget.setCustomIconType(CUSTOM_ICON);
110+
assertEquals(CUSTOM_ICON, widget.getCustomIconType());
111+
assertTrue(widget.getIcon().getElement().hasClassName(CUSTOM_ICON));
112+
113+
widget.setCustomIconType(null);
114+
assertNull(widget.getCustomIconType());
115+
assertFalse(widget.getIcon().getElement().hasClassName(CUSTOM_ICON));
116+
}
105117
}

0 commit comments

Comments
 (0)