@Override public String getContributionId(LayoutDefinition contrib) { return contrib.getName(); }
protected LayoutDefinition getClonedLayout(LayoutDefinition layout) { return layout.clone(); }
@Override public void write(LayoutDefinition entity, JsonGenerator jg) throws IOException { jg.writeStartObject(); String name = entity.getName(); if (StringUtils.isNotBlank(name)) { jg.writeStringField("name", name); String type = entity.getType(); if (type != null) { jg.writeStringField("type", type); String typeCat = entity.getTypeCategory(); if (typeCat != null) { jg.writeStringField("typeCategory", typeCat); Map<String, String> templates = entity.getTemplates(); if (MapUtils.isNotEmpty(templates)) { writeSerializableMapField("templates", new TreeMap<>(templates), jg); Map<String, Map<String, Serializable>> properties = entity.getProperties(); if (MapUtils.isNotEmpty(properties) && properties.values().stream().anyMatch(MapUtils::isNotEmpty)) { writeSerializableMapMapField("properties", cleanAndSort(properties), jg); LayoutRowDefinition[] rowDefinitions = entity.getRows(); List<WidgetReference> widgetsToExport = new ArrayList<>(); if (ArrayUtils.isNotEmpty(rowDefinitions)) { Map<String, List<RenderingInfo>> renderingInfos = entity.getRenderingInfos(); if (MapUtils.isNotEmpty(renderingInfos) && renderingInfos.values().stream().anyMatch(CollectionUtils::isNotEmpty)) {
builder.append(layoutDef.getName()).append(";"); Map<String, String> templates = layoutDef.getTemplates(); if (templates != null) { builder.append(templates.toString()); LayoutRowDefinition[] rows = layoutDef.getRows(); if (rows != null) { for (LayoutRowDefinition row : rows) { Map<String, Map<String, Serializable>> properties = layoutDef.getProperties(); if (properties != null) { builder.append(properties.toString()); Map<String, WidgetDefinition> widgetDefs = layoutDef.getWidgetDefinitions(); if (widgetDefs != null) { for (WidgetDefinition widgetDef : widgetDefs.values()) {
protected WidgetDefinition getWidgetDefinition(WidgetReference widgetReference, String category, LayoutDefinition layoutDefinition, LayoutConversionContext ctx, List<WidgetDefinitionConverter> widgetConverters) { String widgetName = widgetReference.getName(); WidgetDefinition widgetDefinition = layoutDefinition.getWidgetDefinition(widgetName); if (widgetDefinition == null) { String cat = widgetReference.getCategory(); if (cat == null) { cat = category; } widgetDefinition = webLayoutManager.getWidgetDefinition(cat, widgetName); } if (widgetDefinition == null) { log.error(String.format("No definition found for widget '%s' in layout '%s' => cannot export", widgetName, layoutDefinition.getName())); } else { if (widgetConverters != null) { for (WidgetDefinitionConverter conv : widgetConverters) { widgetDefinition = conv.getWidgetDefinition(widgetDefinition, ctx); } } } return widgetDefinition; }
public int getLayoutColumnsCount(String layoutName) throws ClientException { WebLayoutManager wlm; try { wlm = Framework.getService(WebLayoutManager.class); } catch (Exception e) { throw new ClientException(e); } return wlm.getLayoutDefinition(layoutName).getRows().length; }
@Override // overridden to handle aliases public synchronized void addContribution(LayoutDefinition contrib) { super.addContribution(contrib); List<String> aliases = contrib.getAliases(); if (aliases != null) { for (String alias : aliases) { FragmentList<LayoutDefinition> head = addFragment(alias, contrib); contributionUpdated(alias, head.merge(this), contrib); } } }
protected WidgetDefinition lookupWidget(LayoutDefinition layoutDef, WidgetReference widgetRef) { String widgetName = widgetRef.getName(); WidgetDefinition wDef = null; if (layoutDef != null) { wDef = layoutDef.getWidgetDefinition(widgetName); if (wDef != null && wDef.getType() == null) { // consider it's a reference for a global widget wDef = null; } } if (wDef == null) { // try in global registry wDef = lookupWidget(widgetRef); } return wDef; }
@Override // overridden to handle aliases public synchronized void removeContribution(LayoutDefinition contrib, boolean useEqualsMethod) { super.removeContribution(contrib, useEqualsMethod); List<String> aliases = contrib.getAliases(); if (aliases != null) { for (String alias : aliases) { FragmentList<LayoutDefinition> head = removeFragment(alias, contrib, useEqualsMethod); if (head != null) { LayoutDefinition result = head.merge(this); if (result != null) { contributionUpdated(alias, result, contrib); } else { contributionRemoved(alias, contrib); } } } } }
public void unregisterLayout(String category, LayoutDefinition layoutDef) { LayoutDefinitionRegistry reg = layoutsByCat.get(category); if (reg != null) { reg.removeContribution(layoutDef); log.info(String.format("Unregistered layout '%s' for category '%s' ", layoutDef.getName(), category)); } }
public void registerLayout(String category, LayoutDefinition layoutDef) { LayoutDefinitionRegistry reg = layoutsByCat.get(category); if (reg == null) { reg = new LayoutDefinitionRegistry(category); layoutsByCat.put(category, reg); } reg.addContribution(layoutDef); log.info(String.format("Registered layout '%s' for category '%s' ", layoutDef.getName(), category)); }