Map<String, IStatsDualComponent> components = statsComponentsService
.getComponents();
TwoKeyMap label = new TwoKeyMap();
TreeKeyMap dataBeans = new TreeKeyMap();
IStatsComponent statcomponent = null;
// create right menu
List<RightMenuBean> rightMenu = new ArrayList<RightMenuBean>();
if (statsComponentsService.isShowSelectedObject())
{
RightMenuBean menuV = new RightMenuBean();
menuV.setMode(StatsComponent.VIEW);
menuV.setType(AStatComponentService._SELECTED_OBJECT);
if (type.equals(menuV.getType())
&& mode.equals(menuV.getMode()))
{
menuV.setCurrent(true);
}
rightMenu.add(menuV);
RightMenuBean menuD = new RightMenuBean();
menuD.setMode(StatsComponent.DOWNLOAD);
menuD.setType(AStatComponentService._SELECTED_OBJECT);
if (type.equals(menuD.getType())
&& mode.equals(menuD.getMode()))
{
menuD.setCurrent(true);
}
rightMenu.add(menuD);
}
for (String key : components.keySet())
{
boolean createMenu = true;
if (ResearchObject.class.isAssignableFrom(getTarget()))
{
String relationName = ((ICRISComponent) components.get(key))
.getRelationConfiguration().getRelationName();
if(!relationName.startsWith(getApplicationService().get(ResearchObject.class, Integer.parseInt(id)).getTypeText())) {
createMenu = false;
}
}
if (createMenu)
{
RightMenuBean menuV = new RightMenuBean();
menuV.setMode(StatsComponent.VIEW);
menuV.setType(key);
if (type.equals(menuV.getType())
&& mode.equals(menuV.getMode()))
{
menuV.setCurrent(true);
}
rightMenu.add(menuV);
RightMenuBean menuD = new RightMenuBean();
menuD.setMode(StatsComponent.DOWNLOAD);
menuD.setType(key);
if (type.equals(menuD.getType())
&& mode.equals(menuD.getMode()))
{
menuD.setCurrent(true);
}
rightMenu.add(menuD);
}
}
if (components.containsKey(type))
{
if (mode.equals(StatsComponent.VIEW))
{
statcomponent = components.get(type)
.getStatsViewComponent();
}
if (mode.equals(StatsComponent.DOWNLOAD))
{
statcomponent = components.get(type)
.getStatsDownloadComponent();
}
}
else
{
if (mode.equals(StatsComponent.VIEW))
{
statcomponent = statsComponentsService
.getSelectedObjectComponent()
.getStatsViewComponent();
}
if (mode.equals(StatsComponent.DOWNLOAD))
{
statcomponent = statsComponentsService
.getSelectedObjectComponent()
.getStatsDownloadComponent();
}
}
Integer relationObjectType = statcomponent.getRelationObjectType();
if (relationObjectType
.equals(CrisConstants.CRIS_DYNAMIC_TYPE_ID_START))
{
relationObjectType = getApplicationService().get(
ResearchObject.class, Integer.parseInt(id)).getType();
statcomponent.setRelationObjectType(relationObjectType);
}
dataBeans.putAll(statcomponent.query(id, solrServer));
label.putAll(statcomponent.getLabels(UIUtil.obtainContext(request),
CrisConstants.getEntityTypeText(relationObjectType)));
ResultBean result = new ResultBean(dataBeans,
statsComponentsService.getCommonsParams());
data.put(_RESULT_BEAN, result);