Skip to content
Snippets Groups Projects
Commit ab5f1222 authored by Jonas Blatt's avatar Jonas Blatt :ant:
Browse files

Split Single and Multi Tables

parent e038407e
No related branches found
No related tags found
No related merge requests found
package de.unikoblenz.fgbks.dmn.beans;
import de.unikoblenz.fgbks.dmn.core.DmnService;
import de.unikoblenz.fgbks.dmn.core.models.VerifierCollectionResult;
import de.unikoblenz.fgbks.dmn.core.models.VerifierResult;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.function.Supplier;
import javax.annotation.PostConstruct;
import javax.enterprise.context.SessionScoped;
import javax.inject.Inject;
......@@ -18,11 +20,11 @@ public class TableDataBean implements Serializable {
private DmnService dmnService;
private List<VerifierResult> verifierResultList;
private VerifierCollectionResult verifierResults;
@PostConstruct
public void init() {
verifierResultList = Collections.emptyList();
verifierResults = null;
if (dmnBean.getDmnXML() != null && !dmnBean.getDmnXML().isEmpty()) {
try {
dmnService = DmnService.getDmnServiceFromXml(dmnBean.getDmnXML());
......@@ -33,16 +35,31 @@ public class TableDataBean implements Serializable {
}
public List<VerifierResult> getVerifierResultList() {
return verifierResultList;
return accept(() -> verifierResults.getVerifierResults());
}
public List<VerifierResult> calculateVerifierResults(boolean calculateMultiTable) {
public List<VerifierResult> getVerifierResultListSingleTables() {
return accept(() -> verifierResults.getVerifierResultsSingleTables());
}
public List<VerifierResult> getVerifierResultListMultiTables() {
return accept(() -> verifierResults.getVerifierResultsMultiTables());
}
private List<VerifierResult> accept(Supplier<List<VerifierResult>> supplier) {
if (verifierResults != null) {
return supplier.get();
}
return Collections.emptyList();
}
public VerifierCollectionResult calculateVerifierResults(boolean calculateMultiTable) {
init();
if (dmnService == null) {
verifierResultList = Collections.emptyList();
verifierResults = null;
} else {
verifierResultList = dmnService.getAllVerifier(calculateMultiTable).getVerifierResults();
verifierResults = dmnService.getAllVerifier(calculateMultiTable);
}
return verifierResultList;
return verifierResults;
}
}
......@@ -6,6 +6,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
......@@ -23,6 +24,18 @@ public class VerifierCollectionResult {
return new ArrayList<>(verifierResults);
}
public List<VerifierResult> getVerifierResultsSingleTables() {
return getVerifierResults().stream()
.filter(r -> !r.isMultiTable())
.collect(Collectors.toList());
}
public List<VerifierResult> getVerifierResultsMultiTables() {
return getVerifierResults().stream()
.filter(VerifierResult::isMultiTable)
.collect(Collectors.toList());
}
public static Builder getBuilder() {
return new VerifierCollectionResult().new Builder();
}
......
......@@ -82,6 +82,7 @@
<p:fileDownload value="#{buttonBean.downloadDmn}"/>
</p:commandButton>
</h:form>
<!-- Single Table -->
<p:ajaxStatus style="display:block;">
<f:facet name="default">
</f:facet>
......@@ -91,8 +92,67 @@
</f:facet>
<f:facet name="complete">
<h2>Single table results</h2>
<p:dataTable var="verifier"
value="#{tableDataBean.verifierResultList}"
value="#{tableDataBean.verifierResultListSingleTables}"
emptyMessage="No records found, check syntax!">
<p:column style="width:16px">
<p:rowToggler/>
</p:column>
<p:column styleClass="col-dataType" headerText="Type">
<h:outputText value="#{verifier.verifierType}"/>
</p:column>
<p:column styleClass="col-description" headerText="Description">
<h:outputText value="#{verifier.verificationDescription}"/>
</p:column>
<p:column styleClass="col-quantity" headerText="Quantity">
<h:outputText value="#{verifier.verificationsCount}"/>
</p:column>
<p:rowExpansion>
<p:dataTable var="results" value="#{verifier.verifications}">
<p:column styleClass="subcol-message" headerText="Message">
<h:outputText value="#{results.message}"/>
</p:column>
<p:column styleClass="subcol-rules" headerText="Rules">
<h:panelGroup rendered="#{not verifier.multiTable}">
<p:commandButton styleClass="ruleselect-button"
style="width: 95%;"
onclick="addHighlightCss(#{results.rulesAsJson});"
value="Show"/>
</h:panelGroup>
<h:panelGroup rendered="#{verifier.multiTable}">
<p:dataTable var="rule" value="#{results.rules}">
<p:column style="padding: 0px">
<p:commandButton styleClass="ruleselect-button"
style="width: 95%;"
onclick="addHighlightCssSingleRule('#{rule.ruleId}', '#{rule.decisionKey}');"
value="#{rule.tableName.concat(' (').concat(rule.rowNumber).concat(')')}"/>
</p:column>
</p:dataTable>
</h:panelGroup>
</p:column>
</p:dataTable>
</p:rowExpansion>
</p:dataTable>
</f:facet>
</p:ajaxStatus>
<!-- Multi Table -->
<p:ajaxStatus style="display:block;">
<f:facet name="default">
</f:facet>
<f:facet name="start">
</f:facet>
<f:facet name="complete">
<h2>Multi table results</h2>
<p:dataTable var="verifier"
value="#{tableDataBean.verifierResultListMultiTables}"
emptyMessage="No records found, check syntax!">
<p:column style="width:16px">
<p:rowToggler/>
......
......@@ -4,6 +4,10 @@ html, body {
margin: 0;
}
h2 {
margin: 10px;
}
.col-type {
width: 25%;
word-wrap: break-word;
......@@ -29,7 +33,7 @@ html, body {
.highlight {
background-color: darkred;
color:white;
color: white;
}
.dmn-button {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment