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; package de.unikoblenz.fgbks.dmn.beans;
import de.unikoblenz.fgbks.dmn.core.DmnService; import de.unikoblenz.fgbks.dmn.core.DmnService;
import de.unikoblenz.fgbks.dmn.core.models.VerifierCollectionResult;
import de.unikoblenz.fgbks.dmn.core.models.VerifierResult; import de.unikoblenz.fgbks.dmn.core.models.VerifierResult;
import java.io.Serializable; import java.io.Serializable;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.function.Supplier;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.enterprise.context.SessionScoped; import javax.enterprise.context.SessionScoped;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -18,11 +20,11 @@ public class TableDataBean implements Serializable { ...@@ -18,11 +20,11 @@ public class TableDataBean implements Serializable {
private DmnService dmnService; private DmnService dmnService;
private List<VerifierResult> verifierResultList; private VerifierCollectionResult verifierResults;
@PostConstruct @PostConstruct
public void init() { public void init() {
verifierResultList = Collections.emptyList(); verifierResults = null;
if (dmnBean.getDmnXML() != null && !dmnBean.getDmnXML().isEmpty()) { if (dmnBean.getDmnXML() != null && !dmnBean.getDmnXML().isEmpty()) {
try { try {
dmnService = DmnService.getDmnServiceFromXml(dmnBean.getDmnXML()); dmnService = DmnService.getDmnServiceFromXml(dmnBean.getDmnXML());
...@@ -33,16 +35,31 @@ public class TableDataBean implements Serializable { ...@@ -33,16 +35,31 @@ public class TableDataBean implements Serializable {
} }
public List<VerifierResult> getVerifierResultList() { 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(); init();
if (dmnService == null) { if (dmnService == null) {
verifierResultList = Collections.emptyList(); verifierResults = null;
} else { } else {
verifierResultList = dmnService.getAllVerifier(calculateMultiTable).getVerifierResults(); verifierResults = dmnService.getAllVerifier(calculateMultiTable);
} }
return verifierResultList; return verifierResults;
} }
} }
...@@ -6,6 +6,7 @@ import java.util.Comparator; ...@@ -6,6 +6,7 @@ import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
...@@ -23,6 +24,18 @@ public class VerifierCollectionResult { ...@@ -23,6 +24,18 @@ public class VerifierCollectionResult {
return new ArrayList<>(verifierResults); 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() { public static Builder getBuilder() {
return new VerifierCollectionResult().new Builder(); return new VerifierCollectionResult().new Builder();
} }
......
...@@ -82,6 +82,7 @@ ...@@ -82,6 +82,7 @@
<p:fileDownload value="#{buttonBean.downloadDmn}"/> <p:fileDownload value="#{buttonBean.downloadDmn}"/>
</p:commandButton> </p:commandButton>
</h:form> </h:form>
<!-- Single Table -->
<p:ajaxStatus style="display:block;"> <p:ajaxStatus style="display:block;">
<f:facet name="default"> <f:facet name="default">
</f:facet> </f:facet>
...@@ -91,8 +92,67 @@ ...@@ -91,8 +92,67 @@
</f:facet> </f:facet>
<f:facet name="complete"> <f:facet name="complete">
<h2>Single table results</h2>
<p:dataTable var="verifier" <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!"> emptyMessage="No records found, check syntax!">
<p:column style="width:16px"> <p:column style="width:16px">
<p:rowToggler/> <p:rowToggler/>
......
...@@ -4,6 +4,10 @@ html, body { ...@@ -4,6 +4,10 @@ html, body {
margin: 0; margin: 0;
} }
h2 {
margin: 10px;
}
.col-type { .col-type {
width: 25%; width: 25%;
word-wrap: break-word; word-wrap: break-word;
...@@ -29,7 +33,7 @@ html, body { ...@@ -29,7 +33,7 @@ html, body {
.highlight { .highlight {
background-color: darkred; background-color: darkred;
color:white; color: white;
} }
.dmn-button { .dmn-button {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment