protected CubaButtonField<V> createComponent() { return new CubaButtonField<>(); }
@Override public void focus() { component.focus(); }
@Override public int getTabIndex() { return component.getTabIndex(); }
@Override protected void doSetValue(V newValue) { this.value = newValue; if (captionFormatter == null) { getContent().setCaption(newValue == null ? "" : newValue.toString()); } else { String caption = captionFormatter.convertToPresentation(newValue, getLocale()); getContent().setCaption(caption); } }
@Override public void setValue(V value) { super.setValue(value); if (value != null) { if (getValueSource() == null && metaClass == null) { throw new IllegalStateException("ValueSource or metaclass must be set for field"); } component.removeStyleName(EMPTY_VALUE_STYLENAME); MetaClass fieldMetaClass = getMetaClass(); if (fieldMetaClass != null) { Class fieldClass = fieldMetaClass.getJavaClass(); Class<?> valueClass = value.getClass(); //noinspection unchecked if (!fieldClass.isAssignableFrom(valueClass)) { throw new IllegalArgumentException( String.format("Could not set value with class %s to field with class %s", fieldClass.getCanonicalName(), valueClass.getCanonicalName()) ); } } } else { component.addStyleName("empty-value"); } }
protected void initComponent() { component.addClickListener(event -> { if (clickHandler != null) { clickHandler.onClick(WebEntityLinkField.this); } else { openEntityEditor(); } }); component.setCaptionFormatter((value, locale) -> { if (value == null) { return ""; } if (value instanceof Instance) { return metadataTools.getInstanceName((Instance) value); } Datatype datatype = Datatypes.getNN(value.getClass()); if (locale != null) { return datatype.format(value, locale); } return datatype.format(value); }); }
public void addClickListener(Button.ClickListener listener) { getContent().addClickListener(listener); }
public CubaButtonField() { setPrimaryStyleName("c-buttonfield"); }
public void removeClickListener(Button.ClickListener listener) { getContent().removeClickListener(listener); }
component.focus();