private void attachEventHandlers() { addDomHandler( event -> { if (overItem != null) { overItem.removeStyleName(resources.css().popupItemOver()); } overItem = ItemWidget.this; addStyleName(resources.css().popupItemOver()); if (childList != null) { childList.hide(); } if (dataProvider.isGroup(item)) { Pair<List<MenuItem>, String> children = dataProvider.getChildren(item); createChildPopup(children); } }, MouseOverEvent.getType()); addDomHandler( event -> { if (dataProvider.isGroup(item)) { return; } hide(true); getActionHandler().ifPresent(actionHandler -> actionHandler.onAction(item)); }, ClickEvent.getType()); }
ItemWidget(MenuItem item) { this.item = item; addStyleName(resources.css().popupItem()); final Element itemLabel = Document.get().createDivElement(); itemLabel.setInnerText(item.getName()); itemLabel.getStyle().setFloat(Style.Float.LEFT); getElement().appendChild(itemLabel); if (dataProvider.isGroup(item)) { DivElement arrow = Document.get().createDivElement(); arrow.setInnerHTML(FontAwesome.PLAY); arrow.addClassName(resources.css().arrow()); getElement().appendChild(arrow); } attachEventHandlers(); }