@Override public void render(Context context, RichGroup value, SafeHtmlBuilder sb) { if (value != null) { ImageResource resource = SmallIcons.INSTANCE.bulletWhiteIcon(); if (value.isSyncEnabled()) { // FIXME - remove old way of determining sync state once values for new attribute are // generated. if ((value.getLastSynchronizationState() != null && value.getLastSynchronizationState().equals("OK")) || (value.getLastSynchronizationState() == null && value.getLastSuccessSynchronizationTimestamp() != null)) { resource = SmallIcons.INSTANCE.bulletGreenIcon(); if (value.getAuthoritativeGroup() != null && value.getAuthoritativeGroup().equals("1")) { sb.append(renderer.render(resource, "Synchronized - OK / Authoritative sync")); sb.append( renderer.render( SmallIcons.INSTANCE.bulletStarIcon(), "Synchronized - OK / Authoritative sync")); } else { sb.append(renderer.render(resource, "Synchronized - OK")); } } else { resource = SmallIcons.INSTANCE.bulletRedIcon(); if (value.getAuthoritativeGroup() != null && value.getAuthoritativeGroup().equals("1")) { sb.append(renderer.render(resource, "Synchronized - Error / Authoritative sync")); sb.append( renderer.render( SmallIcons.INSTANCE.bulletStarIcon(), "Synchronized - Error / Authoritative sync")); } else { sb.append(renderer.render(resource, "Synchronized - Error")); } } } else { if (value.getAuthoritativeGroup() != null && value.getAuthoritativeGroup().equals("1")) { sb.append(renderer.render(resource, "Not synchronized / Authoritative sync")); } else { sb.append(renderer.render(resource, "Not synchronized")); } } } }