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