protected ResultProducer reduceResultProducers(final List<ResultProducer> slaveResultProducers, final String category1, final String category2, final Class<?> valueClass, final Serializable masterValue) { for (final ResultProducer resultProducer : slaveResultProducers) { final AnalyzerResult result = resultProducer.getResult(); if (result instanceof AnnotatedRowsResult) { if (((AnnotatedRowsResult) result).getAnnotatedRowCount() > 0) { // just return the first annotated rows result - these are // anyways "just" samples return resultProducer; } } } return null; }
@Override public void drillToDetails(final String title, final ResultProducer resultProducer) { final AnalyzerResult result = resultProducer.getResult(); final DetailsResultWindow window = new DetailsResultWindow(title, Arrays.asList(result), _windowContext, _rendererFactory); window.open(); } }
@Override public void valueCell(final Object value, final ResultProducer drillToDetailResultProducer) { if (drillToDetailResultProducer == null) { simpleValueCell(value); return; } final AnalyzerResult drillResult = drillToDetailResultProducer.getResult(); if (drillResult == null) { simpleValueCell(value); return; } if (drillResult instanceof AnnotatedRowsResult && ((AnnotatedRowsResult) drillResult).getAnnotatedRowCount() == 0) { simpleValueCell(value); return; } final String drillElementId = htmlRenderingContext.createElementId(); final DrillToDetailsBodyElement drillBodyElement = new DrillToDetailsBodyElement(drillElementId, rendererFactory, drillResult); htmlFragtment.addBodyElement(drillBodyElement); final String invocation = drillBodyElement.toJavaScriptInvocation(); sb.append("<td class=\"value\">"); sb.append("<a class=\"drillToDetailsLink\" href=\"#\" onclick=\"" + invocation + "\">"); sb.append(toHtml(LabelUtils.getValueLabel(value))); sb.append("</a>"); sb.append("</td>"); }