protected void buildRow(VLViewRootMenuRowXML menuItemConfig, boolean hasNext) {
final MenuRow menuItem = new MenuRow(menuItemConfig, menu, this, controller);
if (!hasNext) {
menuItem.pseudoClassStateChanged(PseudoClass.getPseudoClass("last"), true);
}
menuItem.setIndex(getChildren().indexOf(menuItem));
if (StringUtils.isNotBlank(menuRowsStyleClass)) {
menuItem.setStyleClass(menuRowsStyleClass);
}
if (StringUtils.isNotBlank(menuLabelStyleClass)) {
menuItem.setLabelStyle(menuLabelStyleClass);
}
if (menuItemConfig.addSeparatorAfter()) {
menuRowsContainer.getChildren().add(new Separator());
}
if (menuItemConfig.hasSubRows()) {
final SubMenu subMenu = new SubMenu(menu, this);
subMenu.build(menuItemConfig.getSubMenus(), menuItem);
menuItem.setSubmenu(subMenu);
}
addRow(menuItem);
if (!hasNext && menuItemConfig.addSeparatorAfter()) {
menuItem.pseudoClassStateChanged(PseudoClass.getPseudoClass("last"), true);
menuRowsContainer.getChildren().add(new Separator());
}
}