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

Merge branch 'develop' into 'master'

Develop

See merge request fg-bks/br-verification-tool!28
parents a5521b96 5a853fa5
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;
}
}
......@@ -23,7 +23,7 @@ public class VerificationResult implements Serializable {
protected VerificationResult() {
super();
rules = new ArrayList<>();
rules = new ArrayList<>(5);
}
@XmlElement(name = "ruleCount")
......
......@@ -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();
}
......
......@@ -38,91 +38,135 @@
<script src="js/dmnViewer.js"></script>
</h:panelGroup>
<h:form>
<p:commandButton value="Verify"
id="verify-button"
styleClass="dmn-button"
onclick="exportDiagram()"
action="#{buttonBean.validateDmn}"
update="content"
disabled="#{buttonBean.disabled}"/>
<!--
<p:selectBooleanCheckbox value="#{buttonBean.calculateMultiTable}"
disabled="#{buttonBean.disabled}"
itemLabel="Calculate Multi Table"/>
-->
<p:commandButton value="Empty DMN"
id="clear-button"
styleClass="dmn-button"
action="#{buttonBean.setEmptyDmn}"
update="content"
ajax="true"/>
<p:commandButton value="Sample DMN"
id="sample-button"
styleClass="dmn-button"
action="#{buttonBean.setSampleDmn}"
update="content"
ajax="true"/>
<p:commandButton value="Sample Multi"
id="sample2-button"
styleClass="dmn-button"
action="#{buttonBean.setSampleMultiDmn}"
update="content"
ajax="true"/>
<p:commandButton value="Download"
id="download-button"
styleClass="dmn-button"
onclick="exportDiagram()"
ajax="false"
disabled="#{buttonBean.disabled}">
<p:fileDownload value="#{buttonBean.downloadDmn}"/>
</p:commandButton>
</h:form>
<p:ajaxStatus style="display:block;">
<f:facet name="default">
</f:facet>
<f:facet name="start">
<p:graphicImage style="margin-left: 20px;" name="img/Spinner.gif"/>
</f:facet>
<f:facet name="complete">
<p:dataTable var="verifier"
value="#{tableDataBean.verifierResultList}"
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}">
<h:panelGroup id="content-buttons" layout="block">
<h:form>
<p:commandButton value="Verify"
id="verify-button"
styleClass="dmn-button"
onclick="exportDiagram()"
action="#{buttonBean.validateDmn}"
update="content"
disabled="#{buttonBean.disabled}"/>
<!--
<p:selectBooleanCheckbox value="#{buttonBean.calculateMultiTable}"
disabled="#{buttonBean.disabled}"
itemLabel="Calculate Multi Table"/>
-->
<p:commandButton value="Empty DMN"
id="clear-button"
styleClass="dmn-button"
action="#{buttonBean.setEmptyDmn}"
update="content"
ajax="true"/>
<p:commandButton value="Sample DMN"
id="sample-button"
styleClass="dmn-button"
action="#{buttonBean.setSampleDmn}"
update="content"
ajax="true"/>
<p:commandButton value="Sample Multi"
id="sample2-button"
styleClass="dmn-button"
action="#{buttonBean.setSampleMultiDmn}"
update="content"
ajax="true"/>
<p:commandButton value="Download"
id="download-button"
styleClass="dmn-button"
onclick="exportDiagram()"
ajax="false"
disabled="#{buttonBean.disabled}">
<p:fileDownload value="#{buttonBean.downloadDmn}"/>
</p:commandButton>
</h:form>
</h:panelGroup>
<h:panelGroup id="content-tables" layout="block">
<!-- Single Table -->
<p:ajaxStatus style="display:block;">
<f:facet name="default">
</f:facet>
<f:facet name="start">
<p:graphicImage style="margin-left: 20px;" name="img/Spinner.gif"/>
</f:facet>
<f:facet name="complete">
<h2>Single table results</h2>
<p:dataTable var="verifier"
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">
<p:commandButton styleClass="ruleselect-button"
style="width: 95%;"
onclick="addHighlightCss(#{results.rulesAsJson});"
value="Show"/>
</h:panelGroup>
<h:panelGroup rendered="#{verifier.multiTable}">
</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/>
</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">
<p:dataTable var="rule" value="#{results.rules}">
<p:column style="padding: 0px">
<p:commandButton styleClass="ruleselect-button"
......@@ -131,13 +175,13 @@
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>
</p:column>
</p:dataTable>
</p:rowExpansion>
</p:dataTable>
</f:facet>
</p:ajaxStatus>
</h:panelGroup>
</h:panelGroup>
</ui:define>
</ui:composition>
......@@ -2,6 +2,11 @@ html, body {
height: 100%;
padding: 0;
margin: 0;
font-size: 10pt;
}
h2 {
margin: 10px;
}
.col-type {
......@@ -29,7 +34,7 @@ html, body {
.highlight {
background-color: darkred;
color:white;
color: white;
}
.dmn-button {
......@@ -46,6 +51,17 @@ html, body {
#content-dmn {
margin: 5px;
position: relative;
}
#content-buttons {
margin: 5px;
position: relative;
}
#content-tables {
margin: 5px;
position: relative;
}
.dmn-js-parent {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment