@Override public String serialize(IVkWidget widget) { StringBuffer buffer = new StringBuffer("{"); buffer.append("widgetName:'").append(widget.getWidgetName()).append("'"); buffer.append(",style:'").append(VkDesignerUtil.getCssText((Widget) widget)).append("'"); serializeAttributes(buffer, (Widget) widget); VkMenuBarHorizontal menuBar = (VkMenuBarHorizontal) widget; buffer.append(",items:["); for (int i = 0, allItems = 0, k = 0; i < menuBar.getItemCount(); i++, allItems++) { buffer.append("{html:'").append(menuBar.getItems().get(i).getHTML()).append("'"); if (menuBar.getItems().get(i).getSubMenu() == null) { if (menuBar.getCommandJs().containsKey(i)) buffer .append(",js:'") .append(menuBar.getCommandJs().get(i).replace('\'', '"')) .append("'"); else buffer .append(",child:") .append( VkStateHelper.getInstance() .getWidgetEngineMapping() .getEngineMap() .get(((IVkWidget) menuBar.getWidgets().get(i)).getWidgetName()) .serialize((IVkWidget) menuBar.getWidgets().get(i))); } else buffer .append(",menu:") .append(serialize((IVkWidget) menuBar.getItems().get(i).getSubMenu())); buffer.append("},"); if (k < menuBar.getSeperatorIndices().size() && menuBar.getSeperatorIndices().get(k) == allItems + 1) { buffer.append("{separator:''},"); allItems++; k++; } } if (buffer.charAt(buffer.length() - 1) == ',') buffer.deleteCharAt(buffer.length() - 1); buffer.append("]}"); return buffer.toString(); }
@Override public void copyAttributes(Widget widgetSource, Widget widgetTarget) { super.copyAttributes(widgetSource, widgetTarget); VkMenuBarHorizontal sourceMenuBar = (VkMenuBarHorizontal) widgetSource; VkMenuBarHorizontal targetMenuBar = (VkMenuBarHorizontal) widgetTarget; for (int i = 0, allItems = 0, k = 0; i < sourceMenuBar.getItemCount(); i++, allItems++) { if (sourceMenuBar.getItems().get(i).getSubMenu() == null) addMenuItem( targetMenuBar, sourceMenuBar.getItems().get(i).getHTML(), sourceMenuBar .getCommandJs() .get(sourceMenuBar.getItems().indexOf(sourceMenuBar.getItems().get(i)))); else { VkMenuBarHorizontal widget = (VkMenuBarHorizontal) VkStateHelper.getInstance().getEngine().getWidget(VkMenuBarVertical.NAME); targetMenuBar.addItem( new MenuItem( sourceMenuBar.getItems().get(i).getHTML(), (VkMenuBarVertical) VkStateHelper.getInstance() .getWidgetEngineMapping() .getEngineMap() .get(((IVkWidget) widget).getWidgetName()) .deepClone(sourceMenuBar.getItems().get(i).getSubMenu(), widget))); } if (k < sourceMenuBar.getSeperatorIndices().size() && sourceMenuBar.getSeperatorIndices().get(k) == allItems + 1) addSeparator(targetMenuBar); } }