Skip to content

Commit 0d6ae49

Browse files
authored
Merge pull request #437 from GwtMaterialDesign/release_2.7.0
Release 2.7.0
2 parents 8e71181 + 6ae4fd0 commit 0d6ae49

File tree

22 files changed

+351
-137
lines changed

22 files changed

+351
-137
lines changed

.travis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ cache:
88
- $HOME/.m2
99
before_install:
1010
# install the gwt-material-jquery library before we build the demo
11-
- git clone -b release_2.6.1 https://github.com/GwtMaterialDesign/gwt-material-jquery.git
11+
- git clone -b release_2.7.0 https://github.com/GwtMaterialDesign/gwt-material-jquery.git
1212
- cd gwt-material-jquery
1313
- mvn install -DskipTests=true -DdryRun=true
1414
- cd ..
1515
# install the gwt-material library before we build the demo
16-
- git clone -b release_2.6.1 https://github.com/GwtMaterialDesign/gwt-material.git
16+
- git clone -b release_2.7.0 https://github.com/GwtMaterialDesign/gwt-material.git
1717
- cd gwt-material
1818
- mvn install -DskipTests=true -DdryRun=true
1919
- cd ..
2020
# install the gwt-material-table library before we build the demo
21-
- git clone -b release_2.6.1 https://github.com/GwtMaterialDesign/gwt-material-table.git
21+
- git clone -b release_2.7.0 https://github.com/GwtMaterialDesign/gwt-material-table.git
2222
- cd gwt-material-table
2323
- mvn install -DskipTests=true -DdryRun=true
2424
- cd ..

.utility/deploy.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22
set -ev
3-
if [ "$TRAVIS_JDK_VERSION" == "oraclejdk8" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "release_2.6.1" ]; then
3+
if [ "$TRAVIS_JDK_VERSION" == "oraclejdk8" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "release_2.8.0" ]; then
44
echo "<settings><servers><server><id>ossrh</id><username>\${env.OSSRH_USER}</username><password>\${env.OSSRH_PASS}</password></server></servers></settings>" > ~/settings.xml
55
mvn deploy -DskipTests --settings ~/settings.xml
66
fi

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@
66

77
Gwt Material Design Extra Components for https://github.com/GwtMaterialDesign/gwt-material <br>
88

9-
## Current Version 2.6.1
9+
## Current Version 2.7.0
1010
```xml
1111
<dependency>
1212
<groupId>com.github.gwtmaterialdesign</groupId>
1313
<artifactId>gwt-material-addins</artifactId>
14-
<version>2.6.1</version>
14+
<version>2.7.0</version>
1515
</dependency>
1616
```
1717

18-
## Snapshot Version 2.6.1
18+
## Snapshot Version 2.8.0
1919
```xml
2020
<dependency>
2121
<groupId>com.github.gwtmaterialdesign</groupId>
2222
<artifactId>gwt-material-addins</artifactId>
23-
<version>2.6.1-SNAPSHOT</version>
23+
<version>2.8.0-SNAPSHOT</version>
2424
</dependency>
2525
```
2626

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>gwt-material-parent</artifactId>
77
<groupId>com.github.gwtmaterialdesign</groupId>
8-
<version>2.6.1</version>
8+
<version>2.7.0</version>
99
</parent>
1010

1111
<artifactId>gwt-material-addins</artifactId>
@@ -24,7 +24,7 @@
2424
<connection>scm:git:[email protected]:GwtMaterialDesign/gwt-material-addins.git</connection>
2525
<developerConnection>scm:git:[email protected]:GwtMaterialDesign/gwt-material-addins.git</developerConnection>
2626
<url>http://github.com/GwtMaterialDesign/gwt-material-addins</url>
27-
<tag>v2.6.1</tag>
27+
<tag>v2.7.0</tag>
2828
</scm>
2929

3030
<licenses>

src/main/java/gwt/material/design/addins/client/combobox/MaterialComboBox.java

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.google.gwt.dom.client.Document;
2525
import com.google.gwt.dom.client.Style;
2626
import com.google.gwt.event.dom.client.DomEvent;
27+
import com.google.gwt.event.dom.client.KeyUpEvent;
2728
import com.google.gwt.event.logical.shared.*;
2829
import com.google.gwt.event.shared.HandlerRegistration;
2930
import com.google.gwt.user.client.DOM;
@@ -59,12 +60,14 @@
5960
import gwt.material.design.client.events.ClosingEvent;
6061
import gwt.material.design.client.events.OpeningEvent;
6162
import gwt.material.design.client.ui.MaterialLabel;
63+
import gwt.material.design.client.ui.MaterialToast;
6264
import gwt.material.design.client.ui.html.Label;
6365
import gwt.material.design.client.ui.html.OptGroup;
6466
import gwt.material.design.client.ui.html.Option;
6567
import gwt.material.design.jquery.client.api.Event;
6668
import gwt.material.design.jquery.client.api.Functions;
6769
import gwt.material.design.jquery.client.api.JQueryElement;
70+
import gwt.material.design.jquery.client.api.KeyEvent;
6871

6972
import java.util.*;
7073

@@ -115,6 +118,7 @@ public class MaterialComboBox<T> extends AbstractValueWidget<List<T>> implements
115118
private int selectedIndex;
116119
private boolean open;
117120
private boolean suppressChangeEvent;
121+
private boolean enableFocus;
118122
protected List<T> values = new ArrayList<>();
119123
private Label label = new Label();
120124
private MaterialLabel errorLabel = new MaterialLabel();
@@ -221,11 +225,19 @@ public void load() {
221225
return true;
222226
});
223227

224-
body().on(ComboBoxEvents.FOCUS, getSelectContainerSelector(), (e, param1) -> {
225-
if (!e.getCurrentTarget().getClassName().contains("select2-container--focus")) {
226-
DomEvent.fireNativeEvent(Document.get().createFocusEvent(), this, getElement());
227-
}
228-
return false;
228+
if (enableFocus) {
229+
body().on(ComboBoxEvents.FOCUS, getSelectContainerSelector(), (e, param1) -> {
230+
if (!e.getCurrentTarget().getClassName().contains("select2-container--focus")) {
231+
DomEvent.fireNativeEvent(Document.get().createFocusEvent(), this, getElement());
232+
}
233+
return false;
234+
});
235+
}
236+
237+
body().on(ComboBoxEvents.KEYUP, getSearchFieldElement(), e -> {
238+
KeyEvent keyEvent = (KeyEvent) e;
239+
DomEvent.fireNativeEvent(Document.get().createKeyUpEvent(keyEvent.ctrlKey, keyEvent.altKey, keyEvent.shiftKey, Boolean.parseBoolean(keyEvent.metaKey), keyEvent.keyCode), this, getElement());
240+
return true;
229241
});
230242

231243
displayArrowForAllowClearOption(false);
@@ -256,10 +268,14 @@ public void unload() {
256268
jsComboBox.off(ComboBoxEvents.CHANGE);
257269
jsComboBox.off(ComboBoxEvents.SELECT);
258270
jsComboBox.off(ComboBoxEvents.UNSELECT);
271+
jsComboBox.off(ComboBoxEvents.OPENING);
259272
jsComboBox.off(ComboBoxEvents.OPEN);
273+
jsComboBox.off(ComboBoxEvents.CLOSING);
260274
jsComboBox.off(ComboBoxEvents.CLOSE);
261275
jsComboBox.off(ComboBoxEvents.CLEAR);
262276
jsComboBox.off(ComboBoxEvents.CLEARING);
277+
jsComboBox.off(ComboBoxEvents.FOCUS);
278+
jsComboBox.off(ComboBoxEvents.KEYUP);
263279
body().off("focus");
264280
jsComboBox.select2("destroy");
265281
}
@@ -1243,6 +1259,26 @@ public List<T> getOptions() {
12431259
return values;
12441260
}
12451261

1262+
public void focusSearchInput() {
1263+
$(getSearchFieldElement()).focus();
1264+
}
1265+
1266+
public void setSearchInputPlaceholder(String placeholder) {
1267+
$(getSearchFieldElement()).attr("placeholder", placeholder);
1268+
}
1269+
1270+
public void setSearchInputValue(String value) {
1271+
$(getSearchFieldElement()).val(value);
1272+
}
1273+
1274+
public boolean isEnableFocus() {
1275+
return enableFocus;
1276+
}
1277+
1278+
public void setEnableFocus(boolean enableFocus) {
1279+
this.enableFocus = enableFocus;
1280+
}
1281+
12461282
@Override
12471283
public void setAsyncDisplayLoader(AsyncDisplayLoader displayLoader) {
12481284
getAsyncWidgetMixin().setAsyncDisplayLoader(displayLoader);
@@ -1256,6 +1292,10 @@ public String getSelectContainerSelector() {
12561292
return "#" + getId() + " .select2.select2-container";
12571293
}
12581294

1295+
public String getSearchFieldElement() {
1296+
return "#" + getId() + " .select2-search__field";
1297+
}
1298+
12591299
@Override
12601300
public AsyncDisplayLoader getAsyncDisplayLoader() {
12611301
return getAsyncWidgetMixin().getAsyncDisplayLoader();

src/main/java/gwt/material/design/addins/client/combobox/events/ComboBoxEvents.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
*/
2020
package gwt.material.design.addins.client.combobox.events;
2121

22+
import gwt.material.design.jquery.client.api.Event;
23+
2224
/**
2325
* Events for Combobox
2426
*
@@ -36,4 +38,5 @@ public interface ComboBoxEvents {
3638
String CLEAR = "select2:clear";
3739
String CLEARING = "select2:clearing";
3840
String FOCUS = "focus";
41+
String KEYUP = "keyup";
3942
}

src/main/java/gwt/material/design/addins/client/emptystate/MaterialEmptyState.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,15 @@
2121

2222
import com.google.gwt.dom.client.Document;
2323
import com.google.gwt.dom.client.Style.Unit;
24+
import com.google.gwt.user.client.ui.Widget;
2425
import gwt.material.design.addins.client.MaterialAddins;
2526
import gwt.material.design.addins.client.base.constants.AddinsCssName;
2627
import gwt.material.design.client.MaterialDesignBase;
2728
import gwt.material.design.client.base.HasIcon;
2829
import gwt.material.design.client.base.HasTitle;
2930
import gwt.material.design.client.base.MaterialWidget;
3031
import gwt.material.design.client.constants.*;
31-
import gwt.material.design.client.ui.MaterialIcon;
32-
import gwt.material.design.client.ui.MaterialLoader;
33-
import gwt.material.design.client.ui.MaterialTitle;
32+
import gwt.material.design.client.ui.*;
3433
import gwt.material.design.client.ui.html.Div;
3534

3635
//@formatter:off
@@ -65,6 +64,7 @@ public class MaterialEmptyState extends MaterialWidget implements HasIcon, HasTi
6564
private boolean loading;
6665
private MaterialIcon icon = new MaterialIcon();
6766
private MaterialTitle title = new MaterialTitle();
67+
private MaterialPanel actions = new MaterialPanel();
6868
private Div container = new Div();
6969

7070
public MaterialEmptyState() {
@@ -91,6 +91,8 @@ protected void onLoad() {
9191
container.setWidth("100%");
9292
container.setStyleName(CssName.VALIGN + " " + CssName.CENTER);
9393
container.add(title);
94+
actions.addStyleName("actions");
95+
container.add(actions);
9496
title.insert(icon, 0);
9597
}
9698

@@ -178,6 +180,12 @@ public Div getContainer() {
178180
return container;
179181
}
180182

183+
public void addAction(Widget widget) {
184+
if (widget != null) {
185+
actions.add(widget);
186+
}
187+
}
188+
181189
public boolean isLoading() {
182190
return loading;
183191
}

src/main/java/gwt/material/design/addins/client/inputmask/AbstractInputMask.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,7 @@ protected void onLoad() {
101101

102102
@Override
103103
public void load() {
104-
if (mask == null || mask.isEmpty()) {
105-
GWT.log("You must provide a mask pattern in order to mask your field");
106-
} else {
104+
if (mask != null && !mask.isEmpty()) {
107105
load(mask);
108106
}
109107
}

src/main/java/gwt/material/design/addins/client/livestamp/MaterialLiveStamp.java

Lines changed: 17 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,13 @@
1919
*/
2020
package gwt.material.design.addins.client.livestamp;
2121

22-
import com.google.gwt.core.client.GWT;
2322
import com.google.gwt.dom.client.Document;
24-
import com.google.gwt.dom.client.Element;
2523
import gwt.material.design.addins.client.MaterialAddins;
24+
import gwt.material.design.addins.client.livestamp.js.JsLiveStamp;
2625
import gwt.material.design.addins.client.moment.resources.MomentClientBundle;
2726
import gwt.material.design.addins.client.moment.resources.MomentClientDebugBundle;
2827
import gwt.material.design.client.MaterialDesignBase;
2928
import gwt.material.design.client.base.AbstractValueWidget;
30-
import gwt.material.design.client.base.JsLoader;
3129

3230
import java.util.Date;
3331

@@ -56,9 +54,9 @@
5654
* @see <a href="http://gwtmaterialdesign.github.io/gwt-material-demo/#livestamp">Material Live Stamp</a>
5755
* @see <a href="https://github.com/mattbradley/livestampjs">LiveStamp 1.1.2</a>
5856
*/
59-
public class MaterialLiveStamp extends AbstractValueWidget<Date> implements JsLoader {
57+
public class MaterialLiveStamp extends AbstractValueWidget<Date> {
6058

61-
private Date date = new Date();
59+
private Date value = new Date();
6260

6361
static {
6462
if (MaterialAddins.isDebug()) {
@@ -75,45 +73,31 @@ public MaterialLiveStamp() {
7573
}
7674

7775
@Override
78-
protected void onLoad() {
79-
super.onLoad();
76+
protected void onUnload() {
77+
super.onUnload();
8078

81-
load();
79+
destroy();
8280
}
8381

8482
@Override
85-
public void load() {
86-
if (date != null) {
87-
setValue(date);
83+
public void setValue(Date value, boolean fireEvents) {
84+
super.setValue(value, fireEvents);
85+
this.value = value;
86+
87+
if (value != null) {
88+
getElement().setAttribute("data-livestamp", value.toString());
8889
} else {
89-
GWT.log("You must specify the date value.", new IllegalStateException());
90+
destroy();
9091
}
9192
}
9293

93-
@Override
94-
public void unload() {
95-
getElement().removeAttribute("data-livestamp");
96-
}
97-
98-
@Override
99-
public void reload() {
100-
unload();
101-
load();
102-
}
103-
104-
@Override
105-
public void setValue(Date date, boolean fireEvents) {
106-
this.date = date;
107-
108-
if (date != null) {
109-
getElement().setAttribute("data-livestamp", date.toString());
110-
111-
super.setValue(date, fireEvents);
112-
}
94+
public void destroy() {
95+
JsLiveStamp.$(getElement()).livestamp("destroy");
96+
getElement().setInnerText("-");
11397
}
11498

11599
@Override
116100
public Date getValue() {
117-
return date;
101+
return value;
118102
}
119103
}

src/main/java/gwt/material/design/addins/client/livestamp/js/JsLiveStamp.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,5 @@ public class JsLiveStamp extends JQueryElement {
4343
public static native JsLiveStamp $(String selector);
4444

4545
@JsMethod
46-
public native JsLiveStamp livestamp(int currentMillis);
46+
public native JsLiveStamp livestamp(String method);
4747
}

0 commit comments

Comments
 (0)