public void addStyleName(String style) { if (style == null || "".equals(style)) { return; } if (style.contains(" ")) { // Split space separated style names and add them one by one. StringTokenizer tokenizer = new StringTokenizer(style, " "); while (tokenizer.hasMoreTokens()) { addStyleName(tokenizer.nextToken()); } return; } String oldStyleName = this.getStyleName(); if (this.styles == null) { this.styles = new ArrayList<>(); } List<String> styles = this.styles; if (!styles.contains(style)) { styles.add(style); } String newStyleName = getStyleName(); if (!Objects.equals(oldStyleName, newStyleName)) { propertyChangeSupport.firePropertyChange(MENU_ITEM_STYLE_NAME, oldStyleName, newStyleName); } } }
@Override public void beforeClientResponse(boolean initial) { super.beforeClientResponse(initial); if (initial || this.structureChanged) { JsonArray menuTreeJson = toJson(menuItems); getRpcProxy(CubaSideMenuClientRpc.class).buildMenu(menuTreeJson); this.structureChanged = false; } if (this.selectedChanged) { String key = selectedItem == null ? null : menuItemIdMapper.key(selectedItem); getRpcProxy(CubaSideMenuClientRpc.class).selectItem(key); this.selectedChanged = false; } if (!badgeUpdates.isEmpty()) { Map<String, String> updatedBadgeValues = new HashMap<>(); for (MenuItem updatedItem : badgeUpdates) { // send null as empty string to remove badge String badgeText = updatedItem.getBadgeText(); updatedBadgeValues.put(menuItemIdMapper.key(updatedItem), badgeText != null ? badgeText : ""); } badgeUpdates.clear(); getRpcProxy(CubaSideMenuClientRpc.class).updateBadge(updatedBadgeValues); } }
@Override public void removeAllChildItems() { for (CubaSideMenu.MenuItem menuItem : new ArrayList<>(delegateItem.getChildren())) { delegateItem.removeChildItem(menuItem); menu.unregisterItem(((MenuItemWrapper) menuItem).getMenuItem()); } }
if (menuItem.isVisible()) { JsonObject item = Json.createObject(); if (menuItem.getCaption() != null) { item.put(MENU_ITEM_CAPTION, Json.create(menuItem.getCaption())); if (menuItem.getDescription() != null) { item.put(MENU_ITEM_DESCRIPTION, Json.create(menuItem.getDescription())); if (menuItem.getStyleName() != null) { item.put(MENU_ITEM_STYLE_NAME, Json.create(menuItem.getStyleName())); item.put(MENU_ITEM_EXPANDED, Json.create(menuItem.isExpanded())); item.put(MENU_ITEM_CAPTION_AS_HTML, Json.create(menuItem.isCaptionAsHtml())); if (menuItem.getBadgeText() != null) { item.put(MENU_ITEM_BADGE_TEXT, Json.create(menuItem.getBadgeText())); if (menuItem.getCubaId() != null) { item.put(MENU_ITEM_CUBA_ID, Json.create(menuItem.getCubaId())); if (menuItem.getIcon() != null) { String resourceKey = menuIconsKeyMapper.key(menuItem.getIcon()); setResource(resourceKey, menuItem.getIcon()); if (!menuItem.getChildren().isEmpty()) { JsonArray childrenJsonArray = toJson(menuItem.getChildren()); item.put(MENU_ITEM_CHILDREN, childrenJsonArray);
public void setStyleName(String style) { String oldStyleName = this.getStyleName(); if (style == null || "".equals(style)) { this.styles = null; String newStyleName = getStyleName(); if (!Objects.equals(oldStyleName, newStyleName)) { propertyChangeSupport.firePropertyChange(MENU_ITEM_STYLE_NAME, oldStyleName, newStyleName); } return; } if (this.styles == null) { this.styles = new ArrayList<>(); } List<String> styles = this.styles; styles.clear(); StringTokenizer tokenizer = new StringTokenizer(style, " "); while (tokenizer.hasMoreTokens()) { styles.add(tokenizer.nextToken()); } String newStyleName = getStyleName(); if (!Objects.equals(oldStyleName, newStyleName)) { propertyChangeSupport.firePropertyChange(MENU_ITEM_STYLE_NAME, oldStyleName, newStyleName); } }
protected String getCubaId() { return delegateItem.getCubaId(); }
@Override public String getCaption() { return delegateItem.getCaption(); }
@Override public void addStyleName(String styleName) { delegateItem.addStyleName(styleName); }
@Override public boolean isExpanded() { return delegateItem.isExpanded(); }
@Override public boolean isVisible() { return delegateItem.isVisible(); }
@Override public String getStyleName() { return delegateItem.getStyleName(); }
@Override public boolean isCaptionAsHtml() { return delegateItem.isCaptionAsHtml(); }
@Override public String getDescription() { return delegateItem.getDescription(); }
protected void addPropertyChangeListenerRecursive(MenuItem menuItem, PropertyChangeListener itemsPropertyChangeListener) { menuItem.addPropertyChangeListener(itemsPropertyChangeListener); for (MenuItem item : menuItem.getChildren()) { addPropertyChangeListenerRecursive(item, itemsPropertyChangeListener); } }
public void removeStyleName(String style) { String oldStyleName = this.getStyleName(); if (this.styles != null) { StringTokenizer tokenizer = new StringTokenizer(style, " "); while (tokenizer.hasMoreTokens()) { this.styles.remove(tokenizer.nextToken()); } } String newStyleName = getStyleName(); if (!Objects.equals(oldStyleName, newStyleName)) { propertyChangeSupport.firePropertyChange(MENU_ITEM_STYLE_NAME, oldStyleName, newStyleName); } }
@Override public List<MenuItem> getChildren() { return delegateItem.getChildren().stream() .map(delegateItem -> ((MenuItemWrapper) delegateItem).getMenuItem()) .collect(Collectors.toList()); }
@Override public String getBadgeText() { return delegateItem.getBadgeText(); }
protected void removePropertyChangeListenerRecursive(MenuItem menuItem, PropertyChangeListener itemsPropertyChangeListener) { menuItem.removePropertyChangeListener(itemsPropertyChangeListener); for (MenuItem item : menuItem.getChildren()) { removePropertyChangeListenerRecursive(item, itemsPropertyChangeListener); } }
@Override public void removeChildItem(int index) { CubaSideMenu.MenuItem menuItem = delegateItem.getChildren().get(index); delegateItem.removeChildItem(index); menu.unregisterItem(((MenuItemWrapper) menuItem).getMenuItem()); }