Skip to content

Commit e73fa6d

Browse files
committed
Fixed - MaterialSideNav handles clicks on MaterialSideProfile #351
1 parent 3b32551 commit e73fa6d

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

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

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,16 @@
3434
import com.google.gwt.user.client.ui.RootPanel;
3535
import com.google.gwt.user.client.ui.Widget;
3636
import com.google.web.bindery.event.shared.HandlerRegistration;
37-
import gwt.material.design.client.base.*;
37+
import gwt.material.design.client.base.HasSelectables;
38+
import gwt.material.design.client.base.HasType;
39+
import gwt.material.design.client.base.HasWaves;
40+
import gwt.material.design.client.base.MaterialWidget;
3841
import gwt.material.design.client.base.helper.DOMHelper;
3942
import gwt.material.design.client.base.mixin.CssTypeMixin;
4043
import gwt.material.design.client.base.mixin.ToggleStyleMixin;
4144
import gwt.material.design.client.constants.Edge;
4245
import gwt.material.design.client.constants.SideNavType;
4346
import gwt.material.design.client.events.*;
44-
import gwt.material.design.client.events.ClearActiveEvent.ClearActiveHandler;
4547
import gwt.material.design.client.events.SideNavClosedEvent.SideNavClosedHandler;
4648
import gwt.material.design.client.events.SideNavClosingEvent.SideNavClosingHandler;
4749
import gwt.material.design.client.events.SideNavOpenedEvent.SideNavOpenedHandler;
@@ -160,15 +162,18 @@ public Widget wrap(Widget child) {
160162
child.getElement().getStyle().setProperty("textAlign", "center");
161163
}
162164

163-
boolean collapsible = child instanceof MaterialCollapsible;
164-
if(collapsible) {
165-
// Since the collapsible is separ
166-
((MaterialCollapsible)child).addClearActiveHandler(new ClearActiveHandler() {
167-
@Override
168-
public void onClearActive(ClearActiveEvent event) {
169-
clearActive();
165+
// Check whether the widget is not selectable by default
166+
boolean isNotSelectable = false;
167+
if(child instanceof MaterialWidget) {
168+
MaterialWidget widget = (MaterialWidget) child;
169+
if (widget.getInitialClasses() != null) {
170+
if (widget.getInitialClasses().length > 0) {
171+
String initialClass = widget.getInitialClasses()[0];
172+
if(initialClass.contains("side-profile") || initialClass.contains("collapsible")) {
173+
isNotSelectable = true;
174+
}
170175
}
171-
});
176+
}
172177
}
173178

174179
if(!(child instanceof ListItem)) {
@@ -186,9 +191,9 @@ public void onClearActive(ClearActiveEvent event) {
186191
child = listItem;
187192
}
188193

189-
// Collapsible's should not be selectable
194+
// Collapsible and Side Porfile should not be selectable
190195
final Widget finalChild = child;
191-
if(!collapsible) {
196+
if(!isNotSelectable) {
192197
// Active click handler
193198
finalChild.addDomHandler(new ClickHandler() {
194199
@Override

0 commit comments

Comments
 (0)