package sushi.application.pages.monitoring.bpmn.monitoring; import java.util.Set; import org.apache.wicket.markup.html.panel.Panel; import sushi.application.components.form.BootStrapLabel; import sushi.application.components.form.BootStrapTextEmphasisClass; import sushi.application.components.table.model.AbstractDataProvider; import sushi.application.pages.monitoring.bpmn.monitoring.model.ProcessInstanceMonitoringTreeTableElement; import sushi.monitoring.bpmn.ViolationStatus; import sushi.query.SushiPatternQuery; /** * This panel contains a label for displaying the {@link ViolationStatus} of a {@link SushiPatternQuery}. */ public class QueryViolationMonitoringStatusPanel extends Panel { private static final long serialVersionUID = 1L; /** * Constructor for a panel, which contains a label for displaying the {@link ViolationStatus} of a {@link SushiPatternQuery}. * @param id * @param entryId * @param dataprovider */ public QueryViolationMonitoringStatusPanel(String id, final int entryId, final AbstractDataProvider dataprovider) { super(id); ProcessInstanceMonitoringTreeTableElement treeTableElement = (ProcessInstanceMonitoringTreeTableElement) dataprovider.getEntry(entryId); BootStrapTextEmphasisClass textEmphasisClass = BootStrapTextEmphasisClass.Muted; Set<ViolationStatus> violationStatus = treeTableElement.getProcessInstanceMonitor().getViolationStatusForQuery(treeTableElement.getQuery()); if(violationStatus != null){ if(violationStatus.isEmpty()){ textEmphasisClass = BootStrapTextEmphasisClass.Success; add(new BootStrapLabel("label", "No violations", textEmphasisClass)); } else { textEmphasisClass = BootStrapTextEmphasisClass.Error; add(new BootStrapLabel("label", violationStatus.toString(), textEmphasisClass)); } } else { add(new BootStrapLabel("label", "", textEmphasisClass)); } } }