Skip to content

Commit 420cdba

Browse files
committed
Add HasResetField to Chip container widget as well as other logical widgets that should be restable
1 parent 2736136 commit 420cdba

File tree

3 files changed

+55
-5
lines changed

3 files changed

+55
-5
lines changed

gwt-material/src/main/java/gwt/material/design/client/base/AbstractValueWidget.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.google.gwt.event.shared.HandlerRegistration;
2929
import com.google.gwt.user.client.ui.HasValue;
3030
import com.google.gwt.user.client.ui.UIObject;
31+
import com.google.gwt.user.client.ui.Widget;
3132
import gwt.material.design.client.base.error.ErrorHandler;
3233
import gwt.material.design.client.base.error.ErrorHandlerType;
3334
import gwt.material.design.client.base.error.HasErrorHandler;
@@ -44,7 +45,7 @@
4445

4546
import java.util.List;
4647

47-
public abstract class AbstractValueWidget<V> extends MaterialWidget implements HasValue<V>, LeafValueEditor<V>,
48+
public abstract class AbstractValueWidget<V> extends MaterialWidget implements HasResetField, HasValue<V>, LeafValueEditor<V>,
4849
HasEditorErrors<V>, HasErrorHandler, HasStatusText, HasValidators<V>, HasRequiredField, HasClearOnKeyUp, HasCopyCommand {
4950

5051
private V initialValue;
@@ -55,6 +56,7 @@ public abstract class AbstractValueWidget<V> extends MaterialWidget implements H
5556
private StatusTextMixin<AbstractValueWidget, ?> statusTextMixin;
5657
private ErrorHandlerMixin<V> errorHandlerMixin;
5758
private RequiredFieldMixin<AbstractValueWidget, UIObject> requiredFieldMixin;
59+
private ResetFieldMixin<Widget> resetFieldMixin;
5860
private ClearOnKeyUpMixin<AbstractValueWidget, MaterialLabel> clearOnKeyUpMixin;
5961
private HandlerRegistration attachHandler, blurHandler;
6062
protected CopyCommandMixin<AbstractValueWidget> copyCommandMixin;
@@ -151,6 +153,22 @@ public boolean isSuccessTextVisible() {
151153
return getStatusTextMixin().isSuccessTextVisible();
152154
}
153155

156+
@Override
157+
public void resetFields() {
158+
getResetFieldMixin().resetFields();
159+
getValidatorMixin().reset();
160+
}
161+
162+
@Override
163+
public void setAllowResettingFields(boolean allowResettingFields) {
164+
getResetFieldMixin().setAllowResettingFields(allowResettingFields);
165+
}
166+
167+
@Override
168+
public boolean isAllowResettingFields() {
169+
return getResetFieldMixin().isAllowResettingFields();
170+
}
171+
154172
@Override
155173
public void setStatusDisplayType(StatusDisplayType displayType) {
156174
getStatusTextMixin().setStatusDisplayType(displayType);
@@ -432,4 +450,11 @@ protected CopyCommandMixin<AbstractValueWidget> getCopyCommandMixin() {
432450
}
433451
return copyCommandMixin;
434452
}
453+
454+
public ResetFieldMixin<Widget> getResetFieldMixin() {
455+
if (resetFieldMixin == null) {
456+
resetFieldMixin = new ResetFieldMixin<>(this);
457+
}
458+
return resetFieldMixin;
459+
}
435460
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ public void resetFields() {
5757
protected void reset(Widget parent) {
5858
if (parent instanceof HasWidgets) {
5959
for (Widget child : (HasWidgets) parent) {
60-
if (child instanceof AbstractValueWidget) {
61-
((AbstractValueWidget) child).reset();
60+
if (child instanceof HasResetField) {
61+
((HasResetField) child).resetFields();
6262
}
6363
else if (propagateToChildren) {
6464
reset(child);

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

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,24 @@
2727
import com.google.gwt.user.client.Element;
2828
import com.google.gwt.user.client.ui.Widget;
2929
import gwt.material.design.client.base.DefaultMoreChipHandler;
30+
import gwt.material.design.client.base.HasResetField;
3031
import gwt.material.design.client.base.MoreChipHandler;
32+
import gwt.material.design.client.base.mixin.ResetFieldMixin;
3133
import gwt.material.design.client.base.mixin.ToggleStyleMixin;
3234

3335
import java.util.ArrayList;
3436
import java.util.HashMap;
3537
import java.util.List;
3638
import java.util.Map;
3739

38-
//TODO: HasResetField
39-
public class MaterialChipContainer extends MaterialPanel implements HasSelectionHandlers<List<MaterialChip>> {
40+
public class MaterialChipContainer extends MaterialPanel implements HasSelectionHandlers<List<MaterialChip>>,
41+
HasResetField {
4042

4143
private MoreChipHandler chipHandler = new DefaultMoreChipHandler(this);
4244
private Map<String, MaterialChip> chipList = new HashMap<>();
4345
private boolean multiple = true;
4446
private boolean enableToggle = true;
47+
private ResetFieldMixin<Widget> resetFieldMixin;
4548

4649
public MaterialChipContainer() {
4750
super("chip-container");
@@ -162,7 +165,29 @@ public List<MaterialChip> getSelected() {
162165
return selected;
163166
}
164167

168+
@Override
169+
public void resetFields() {
170+
getResetFieldMixin().resetFields();
171+
}
172+
173+
@Override
174+
public void setAllowResettingFields(boolean allowResettingFields) {
175+
getResetFieldMixin().setAllowResettingFields(allowResettingFields);
176+
}
177+
178+
@Override
179+
public boolean isAllowResettingFields() {
180+
return getResetFieldMixin().isAllowResettingFields();
181+
}
182+
165183
public HandlerRegistration addSelectionHandler(SelectionHandler<List<MaterialChip>> handler) {
166184
return addHandler(handler, SelectionEvent.getType());
167185
}
186+
187+
public ResetFieldMixin<Widget> getResetFieldMixin() {
188+
if (resetFieldMixin == null) {
189+
resetFieldMixin = new ResetFieldMixin<>(this);
190+
}
191+
return resetFieldMixin;
192+
}
168193
}

0 commit comments

Comments
 (0)