package com.jivesoftware.os.amza.ui.region;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.jivesoftware.os.amza.ui.soy.SoyRenderer;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
*/
// soy.chrome.chromeRegion
public class ChromeRegion<I, R extends PageRegion<I>> implements Region<I> {
private final String template;
private final SoyRenderer renderer;
private final HeaderRegion headerRegion;
private final List<ManagePlugin> plugins;
private final R region;
public ChromeRegion(String template, SoyRenderer renderer, HeaderRegion headerRegion, List<ManagePlugin> plugins, R region) {
this.template = template;
this.renderer = renderer;
this.headerRegion = headerRegion;
this.plugins = plugins;
this.region = region;
}
@Override
public String render(I input) {
List<Map<String, String>> p = Lists.transform(plugins, (ManagePlugin input1) -> ImmutableMap.of(
"name", input1.name,
"path", input1.path,
"glyphicon", input1.glyphicon)
);
Map<String, Object> headerData = new HashMap<>();
headerData.put("plugins", p);
Map<String, Object> data = Maps.newHashMap();
data.put("header", headerRegion.render(headerData));
data.put("region", region.render(input));
data.put("title", region.getTitle());
data.put("plugins", p);
return renderer.render(template, data);
}
}