package sushi.application.pages.monitoring.bpmn.monitoring;
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.QueryStatus;
import sushi.query.SushiPatternQuery;
/**
* This panel contains a label for displaying the {@link QueryStatus} of a {@link SushiPatternQuery}.
*/
public class QueryMonitoringStatusPanel extends Panel {
private static final long serialVersionUID = 1L;
/**
* Constructor for a panel, which contains a label for displaying the {@link QueryStatus} of a {@link SushiPatternQuery}.
* @param id
* @param entryId
* @param dataprovider
*/
public QueryMonitoringStatusPanel(String id, final int entryId, final AbstractDataProvider dataprovider) {
super(id);
ProcessInstanceMonitoringTreeTableElement treeTableElement = (ProcessInstanceMonitoringTreeTableElement) dataprovider.getEntry(entryId);
BootStrapTextEmphasisClass textEmphasisClass = BootStrapTextEmphasisClass.Muted;
QueryStatus queryStatus = treeTableElement.getProcessInstanceMonitor().getStatusForQuery(treeTableElement.getQuery());
switch(queryStatus){
case Finished:
textEmphasisClass = BootStrapTextEmphasisClass.Success;
break;
case NotExisting:
textEmphasisClass = BootStrapTextEmphasisClass.Muted;
break;
case Skipped:
textEmphasisClass = BootStrapTextEmphasisClass.Error;
break;
case Started:
textEmphasisClass = BootStrapTextEmphasisClass.Info;
break;
default:
break;
}
add(new BootStrapLabel("label", queryStatus.getTextValue(), textEmphasisClass));
}
}