Skip to content

Commit 4a4d0ce

Browse files
kevzlou7979kevzlou7979
authored andcommitted
Added Limit Feature for Autocomplete
1 parent ae1f532 commit 4a4d0ce

File tree

5 files changed

+111
-5
lines changed

5 files changed

+111
-5
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package gwt.material.design.client.custom;
2+
3+
public interface HasId {
4+
5+
public void setId(String id);
6+
7+
public String getId();
8+
9+
}

src/main/java/gwt/material/design/client/ui/MaterialAutoComplete.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public class MaterialAutoComplete extends Composite implements HasError, HasGri
6868
private TextBox itemBox = new TextBox();
6969
private boolean disabled;
7070
private String placeholder = "";
71+
private int limit = 0;
7172
private MaterialLabel lblError = new MaterialLabel();
7273

7374
/**
@@ -164,7 +165,14 @@ public void onSelection(SelectionEvent<SuggestOracle.Suggestion> selectionEvent)
164165
* @param list
165166
*/
166167
private void addItem(final TextBox itemBox, final UnorderedList list) {
167-
if (itemBox.getValue() != null && !"".equals(itemBox.getValue().trim()) && !itemValues.contains(itemBox.getValue().trim())) {
168+
if(getLimit()>0){
169+
if(itemValues.size() == getLimit()){
170+
itemBox.setValue("");
171+
return;
172+
}
173+
}
174+
175+
if (itemBox.getValue() != null && !"".equals(itemBox.getValue().trim()) && !itemValues.contains(itemBox.getValue().trim())) {
168176

169177
final ListItem displayItem = new ListItem();
170178
displayItem.setStyleName("multiValueSuggestBox-token");
@@ -340,4 +348,12 @@ public void setOffset(String offset) {
340348
}
341349
this.addStyleName(tobeadded);
342350
}
351+
352+
public int getLimit() {
353+
return limit;
354+
}
355+
356+
public void setLimit(int limit) {
357+
this.limit = limit;
358+
}
343359
}

src/main/java/gwt/material/design/client/ui/MaterialColumn.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public void setAlign(String align){
127127

128128
@Override
129129
public void setGrid(String grid) {
130-
this.addStyleName(grid);
130+
this.addStyleName(grid + " col");
131131
}
132132

133133
@Override

src/main/java/gwt/material/design/client/ui/MaterialPanel.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import com.google.gwt.dom.client.Document;
3030
import com.google.gwt.dom.client.Style.Unit;
31+
import com.google.gwt.user.client.ui.HasName;
3132
import com.google.gwt.user.client.ui.HasVisibility;
3233

3334
//@formatter:off
@@ -43,9 +44,11 @@
4344
* @see <a href="http://gwt-material-demo.herokuapp.com/#shadow">Material Panels</a>
4445
* @author kevzlou7979
4546
*/
46-
public class MaterialPanel extends ComplexWidget implements HasColors, HasWaves, HasShadow, HasVisibility, HasAlign{
47+
public class MaterialPanel extends ComplexWidget implements HasColors, HasWaves, HasShadow, HasVisibility, HasAlign, HasName{
4748

4849

50+
private String name = "test";
51+
4952
public MaterialPanel() {
5053
setElement(Document.get().createDivElement());
5154
}
@@ -59,6 +62,7 @@ public void setBackgroundColor(String bgColor) {
5962
protected void onLoad() {
6063
super.onLoad();
6164
initWaves();
65+
getElement().setId(name);
6266
}
6367

6468
@Override
@@ -110,5 +114,15 @@ public void setPadding(String padding){
110114
public void setAlign(String align){
111115
addStyleName("align-" + align);
112116
}
113-
117+
118+
@Override
119+
public void setName(String name) {
120+
this.name = name;
121+
}
122+
123+
@Override
124+
public String getName() {
125+
// TODO Auto-generated method stub
126+
return name;
127+
}
114128
}
Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,81 @@
11
package gwt.material.design.client.ui;
22

33
import gwt.material.design.client.custom.ComplexWidget;
4+
import gwt.material.design.client.custom.HasColors;
5+
import gwt.material.design.client.custom.HasWaves;
46

57
import com.google.gwt.dom.client.Document;
8+
import com.google.gwt.user.client.DOM;
9+
import com.google.gwt.user.client.ui.Widget;
610

7-
public class MaterialTab extends ComplexWidget{
11+
public class MaterialTab extends ComplexWidget implements HasColors, HasWaves{
812

13+
private int tabIndex;
14+
915
public MaterialTab() {
1016
setElement(Document.get().createULElement());
1117
setStyleName("tabs");
1218
}
1319

20+
@Override
21+
public void onLoad() {
22+
String id = DOM.createUniqueId();
23+
getElement().setId(id);
24+
initTab(id);
25+
}
26+
27+
private native void initTab(String id)/*-{
28+
$wnd.jQuery(document).ready(function(){
29+
$wnd.jQuery('ul#' + id).tabs();
30+
});
31+
}-*/;
32+
33+
/**
34+
* Line Indicator on Tab Navigation
35+
* @param color Color string
36+
*/
37+
public native void changeIndicator(String color)/*-{
38+
$wnd.jQuery( ".indicator" ).css( "background-color", color );
39+
}-*/;
40+
41+
public int getTabIndex() {
42+
return tabIndex;
43+
}
44+
45+
public void setTabIndex(int tabIndex) {
46+
this.tabIndex = tabIndex;
47+
int i = 0;
48+
for(Widget w : this){
49+
if(i == tabIndex){
50+
if(w.getStyleName().contains("tab")){
51+
w.addStyleName("active");
52+
}
53+
}
54+
i++;
55+
}
56+
}
57+
58+
59+
@Override
60+
public void setBackgroundColor(String bgColor) {
61+
addStyleName(bgColor);
62+
}
63+
64+
@Override
65+
public void setTextColor(String textColor) {
66+
addStyleName(textColor + "-text");
67+
}
68+
69+
@Override
70+
public void setWaves(String waves) {
71+
// TODO Auto-generated method stub
72+
addStyleName("waves-effect waves-" + waves);
73+
}
74+
75+
@Override
76+
public native void initWaves()/*-{
77+
$wnd.Waves.displayEffect();
78+
}-*/;
79+
80+
1481
}

0 commit comments

Comments
 (0)