/** * Internal method for creating a button */ protected JQMButton createButton(String text, String url, DataIcon icon) { JQMButton button = new JQMButton(text, url); if (icon != null) button.withBuiltInIcon(icon); return button; }
private void checkAlwaysHover() { if (isAttached()) { if (alwaysHover) { prepareHoverStyle(); applyHoverStyle(); } else { removeHoverStyle(); } } }
/** * @param value - if true button always be highlighted as hover. */ public void setAlwaysHover(boolean value) { if (alwaysHover == value) return; alwaysHover = value; checkAlwaysHover(); }
protected JQMButton(Widget widget) { initWidget(widget); setStyleName("jqm4gwt-button"); initEltAsButton(getElement()); setId(); }
/** * Sets the transition to be used by this button when loading the URL. */ @Override public void setTransition(Transition transition) { JQMCommon.setTransition(getElement(), transition); }
private String getCurrentTheme() { String s = getTheme(); if (s != null && !s.isEmpty()) return s; Element elt = getElement().getParentElement(); while (elt != null) { s = getCurrentTheme(elt); if (s != null) return s; elt = elt.getParentElement(); } return "a"; // just meaningful default value }
@UiChild(tagname = "button") public void add(final JQMButton button) { if (button == null) return; if (buttons == null) buttons = new ArrayList<JQMButton>(); buttons.add(button); IconPos btnP = button.getIconPos(); IconPos p = getIconPos(); if (btnP == null && p != null) button.setIconPos(p); LIElement li = Document.get().createLIElement(); CustomFlowPanel liPanel = new CustomFlowPanel(li); liPanel.add(button); ulPanel.add(liPanel); button.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { checkHighlightLastClicked(button); } }); }
private static native void refresh(Element elt) /*-{ if ($wnd.$ === undefined || $wnd.$ === null) return; // jQuery is not loaded var w = $wnd.$(elt); if (w.data('mobile-button') !== undefined) { w.button('refresh'); } }-*/;
@Override public String getTheme() { return getTheme(this.getElement()); }
@Override public void setTheme(String themeName) { setTheme(this.getElement(), themeName); }
if (id == null || id.isEmpty()) continue; if (!byHrefs && id.equals(li.getId()) || byHrefs && id.equals(hrefToId(btn.getHref()))) { found.put(id, btn); break;
/** * @param value - if true button always be highlighted as active. */ public void setAlwaysActive(boolean value) { if (alwaysActive == value) return; alwaysActive = value; JQMCommon.setBtnActive(this, alwaysActive); if (alwaysActive) Scheduler.get().scheduleFinally(createAlwaysActiveCmd()); }
@Override public HandlerRegistration addClickHandler(ClickHandler handler) { return addDomHandler(handler, ClickEvent.getType()); }
public String getHref() { return getAttribute("href"); }
private void prepareHoverStyle() { if (hoverStyle != null) return; String theme = getCurrentTheme(); String rule = ".ui-btn.ui-btn-" + theme + ":hover"; hoverStyle = cachedCssRules.get(rule); if (hoverStyle != null) return; String ruleIE = ".ui-btn-" + theme + ".ui-btn:hover"; // IE9 changes/rearranges css rules! hoverStyle = cachedCssRules.get(ruleIE); if (hoverStyle != null) return; JsArrayString jsStrs = JQMContext.getJsArrayString(HOVER_PROPS); JsArrayString jsRegex = JQMContext.getJsArrayString(HOVER_REGEX); hoverStyle = JQMContext.getCssForRule(rule, jsStrs, jsRegex); if (hoverStyle != null) { cachedCssRules.put(rule, hoverStyle); } else { hoverStyle = JQMContext.getCssForRule(ruleIE, jsStrs, jsRegex); if (hoverStyle != null) cachedCssRules.put(ruleIE, hoverStyle); } }
protected JQMButton(Widget widget) { initWidget(widget); setStyleName("jqm4gwt-button"); initEltAsButton(getElement()); setId(); }
/** * Useful for complex buttons, for example buttons with vertically centered text. **/ public void setHtml(String html) { Element e = getElement(); e.setInnerHTML(html); }
private String getCurrentTheme() { String s = getTheme(); if (s != null && !s.isEmpty()) return s; Element elt = getElement().getParentElement(); while (elt != null) { s = getCurrentTheme(elt); if (s != null) return s; elt = elt.getParentElement(); } return "a"; // just meaningful default value }
@UiChild(tagname = "button") public void add(final JQMButton button) { if (button == null) return; if (buttons == null) buttons = new ArrayList<JQMButton>(); buttons.add(button); IconPos btnP = button.getIconPos(); IconPos p = getIconPos(); if (btnP == null && p != null) button.setIconPos(p); LIElement li = Document.get().createLIElement(); CustomFlowPanel liPanel = new CustomFlowPanel(li); liPanel.add(button); ulPanel.add(liPanel); button.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { checkHighlightLastClicked(button); } }); }
private static native void refresh(Element elt) /*-{ if ($wnd.$ === undefined || $wnd.$ === null) return; // jQuery is not loaded var w = $wnd.$(elt); if (w.data('mobile-button') !== undefined) { w.button('refresh'); } }-*/;