Skip to content

Commit b821c50

Browse files
committed
PopupMenu - added auto focus feature.
1 parent 8d8b8df commit b821c50

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/main/java/gwt/material/design/addins/client/popupmenu/MaterialPopupMenu.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
package gwt.material.design.addins.client.popupmenu;
2121

22+
import com.google.gwt.core.client.Scheduler;
2223
import com.google.gwt.dom.client.Element;
2324
import com.google.gwt.event.logical.shared.*;
2425
import com.google.gwt.event.shared.HandlerRegistration;
@@ -56,6 +57,7 @@ public class MaterialPopupMenu extends UnorderedList implements JsLoader, HasSel
5657
private String id;
5758
private Object selected;
5859
private boolean autoClose = true;
60+
private boolean autoFocus = false;
5961

6062
public MaterialPopupMenu() {
6163
id = DOM.createUniqueId();
@@ -189,7 +191,7 @@ public HandlerRegistration addSelectionHandler(SelectionHandler<Element> selecti
189191
@Override
190192
public void open() {
191193
setVisible(true);
192-
/*Scheduler.get().scheduleDeferred(() -> setFocus(true));*/
194+
if (autoFocus) Scheduler.get().scheduleDeferred(() -> setFocus(true));
193195

194196
// Check if dropdown is out of the container (Left)
195197
if ($(this).width() + $(this).offset().left > body().width()) {
@@ -217,6 +219,14 @@ public void setSelected(Object selected) {
217219
this.selected = selected;
218220
}
219221

222+
public boolean isAutoFocus() {
223+
return autoFocus;
224+
}
225+
226+
public void setAutoFocus(boolean autoFocus) {
227+
this.autoFocus = autoFocus;
228+
}
229+
220230
@Override
221231
public HandlerRegistration addCloseHandler(CloseHandler<MaterialPopupMenu> closeHandler) {
222232
return addHandler(new CloseHandler<MaterialPopupMenu>() {

0 commit comments

Comments
 (0)