Skip to content

Commit c13cc3c

Browse files
committed
Fixed Click Only Type for MaterialFAB component
1 parent caceb66 commit c13cc3c

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

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

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,13 @@
2222

2323
import com.google.gwt.dom.client.Document;
2424
import com.google.gwt.dom.client.Element;
25-
import gwt.material.design.client.base.MaterialWidget;
25+
import com.google.gwt.event.dom.client.ClickEvent;
26+
import com.google.gwt.event.dom.client.ClickHandler;
27+
import com.google.gwt.event.dom.client.HasClickHandlers;
28+
import com.google.gwt.event.shared.HandlerRegistration;
2629
import gwt.material.design.client.base.HasAxis;
2730
import gwt.material.design.client.base.HasType;
31+
import gwt.material.design.client.base.MaterialWidget;
2832
import gwt.material.design.client.base.mixin.CssNameMixin;
2933
import gwt.material.design.client.base.mixin.CssTypeMixin;
3034
import gwt.material.design.client.constants.Axis;
@@ -56,16 +60,36 @@
5660
* @see <a href="http://gwt-material-demo.herokuapp.com/#buttons">Material FAB</a>
5761
*/
5862
//@formatter:on
59-
public class MaterialFAB extends MaterialWidget implements HasType<FABType>, HasAxis {
63+
public class MaterialFAB extends MaterialWidget implements HasType<FABType>, HasAxis, HasClickHandlers {
6064

6165
private final CssTypeMixin<FABType, MaterialFAB> typeMixin = new CssTypeMixin<>(this);
6266
private final CssNameMixin<MaterialFAB, Axis> axisMixin = new CssNameMixin<>(this);
67+
private boolean toggle = true;
6368

6469
public MaterialFAB() {
6570
super(Document.get().createDivElement());
6671
setStyleName("fixed-action-btn");
6772
}
6873

74+
@Override
75+
protected void onLoad() {
76+
super.onLoad();
77+
if(getType() == FABType.CLICK_ONLY){
78+
addClickHandler(new ClickHandler() {
79+
@Override
80+
public void onClick(ClickEvent event) {
81+
if(toggle){
82+
openFAB();
83+
toggle = false;
84+
}else{
85+
closeFAB();
86+
toggle = true;
87+
}
88+
}
89+
});
90+
}
91+
}
92+
6993
@Override
7094
public void setType(FABType type) {
7195
typeMixin.setType(type);
@@ -107,4 +131,9 @@ public void closeFAB() {
107131
public native void closeFAB(Element e) /*-{
108132
$wnd.jQuery(e).closeFAB();
109133
}-*/;
134+
135+
@Override
136+
public HandlerRegistration addClickHandler(ClickHandler handler) {
137+
return addDomHandler(handler, ClickEvent.getType());
138+
}
110139
}

0 commit comments

Comments
 (0)