New reply on DataCleaner's online discussion forum
(https://datacleaner.org/forum):
Guy replied to subject 'Results missing when exporting to HTML'
-------------------
So I've started looking into CrosstabHtmlRenderer and I'm trying to figure out
how HtmlFragment works. At this point I can either output one table (not both
like I need) or a couple lines meant to be the table labels (rendered via
SimpleHtmlFragment).
Is it possible to create an htmlFragment that has multiple crosstabs in it?
When I try to get the BodyElements out of the existing CrosstabHtmlFragment and
add them to my SimpleHtmlFragment I end up with a NullPointerException.
Code so far:
{{{
package cdwtester.analyzer;
import javax.inject.Inject;
import org.datacleaner.api.RendererBean;
import org.datacleaner.result.Crosstab;
import org.datacleaner.result.html.BodyElement;
import org.datacleaner.result.html.HtmlFragment;
import org.datacleaner.result.html.SimpleHtmlFragment;
import org.datacleaner.result.renderer.AbstractRenderer;
import org.datacleaner.result.renderer.CrosstabHtmlFragment;
import org.datacleaner.result.renderer.RendererFactory;
import org.datacleaner.api.Provided;
import org.datacleaner.result.renderer.HtmlRenderingFormat;
@RendererBean(HtmlRenderingFormat.class)
public class CDWTableAnalyzerHtmlRenderer extends
AbstractRenderer<CDWTableAnalyzerResult, HtmlFragment>{
@Inject
@Provided
RendererFactory rendererFactory;
public CDWTableAnalyzerHtmlRenderer() {
this(null);
}
public CDWTableAnalyzerHtmlRenderer(final RendererFactory rendererFactory) {
this.rendererFactory = rendererFactory;
}
@Override
public HtmlFragment render(final CDWTableAnalyzerResult result) {
final SimpleHtmlFragment htmlFragment = new SimpleHtmlFragment();
final Crosstab<Number> tableCrosstab = result.getTableCrosstab();
final Crosstab<Number> phiCrosstab = result.getPHICrosstab();
HtmlFragment tablePanel = render(tableCrosstab);
HtmlFragment phiPanel = render(phiCrosstab);
htmlFragment.addBodyElement("<p>Table Analyzer:</p>");
if(!tablePanel.equals(null)){
BodyElement[] tableElements = (BodyElement[])
tablePanel.getBodyElements().toArray();
for(int i = 0; i < tableElements.length; i++){
if(!tableElements[i].equals(null)){
htmlFragment.addBodyElement(tableElements[i]);
}
}
}
//htmlFragment.addBodyElement("<p>PHI Searcher:</p>");
//htmlFragment.addBodyElement(phiPanel.toString());
return htmlFragment;
}
public HtmlFragment render(final Crosstab<?> crosstab) {
return new CrosstabHtmlFragment(crosstab, rendererFactory);
}
}
}}}
-------------------
View the topic online to reply - go to
https://datacleaner.org/topic/1155/Results-missing-when-exporting-to-HTML
--
You received this message because you are subscribed to the Google Groups
"DataCleaner-notify" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/datacleaner-notify.
For more options, visit https://groups.google.com/d/optout.