/** * Creates a new ListItem overlay object by creating a div element, assigning it the listItem * css class, and associating it to its data. */ public static <M> ListItem<M> create( CategoryRenderer<M> factory, CategoriesList.Css css, M data) { Element element = factory.createElement(); element.addClassName(css.categoryItem()); ListItem<M> item = ListItem.cast(element); item.setData(data); return item; }
@SuppressWarnings("unchecked") private void renderChildren() { elementsMap = new HashMap<>(); CategoryRenderer categoryRenderer = category.getRenderer(); for (Object o : category.getData()) { ListItem<?> element = ListItem.create(categoryRenderer, resources.defaultCategoriesListCss(), o); categoryRenderer.renderElement(element, o); elementsMap.put(o, element); if (element.getId().isEmpty()) { UIObject.ensureDebugId(element, "projectWizard-" + element.getInnerText()); } container.getElement().appendChild(element); } if (elementsMap.isEmpty()) { expandControl.getStyle().setVisibility(Style.Visibility.HIDDEN); } else { expandControl.getStyle().setVisibility(Style.Visibility.VISIBLE); } }
label.setClassName(resources.defaultCategoriesListCss().categoryLabel()); label.appendChild(renderer.renderCategory(category));