@Override
 public void debugEventHandler(long executionId) {
   PipelineExecution exec =
       pipelineHelper.runPipeline(getLightExecution(executionId).getPipeline(), true);
   if (exec != null) {
     refreshEventHandler();
     view.setSelectedRow(exec.getId());
     view.showExecutionDetail(exec, new ExecutionDetailData(getMessageDataSource()));
   }
 }
 @Override
 public void refreshEventHandler() {
   boolean hasModifiedExecutions = pipelineFacade.hasModifiedExecutions(lastLoad);
   view.refresh(hasModifiedExecutions);
   if (hasModifiedExecutions) {
     lastLoad = new Date();
     cachedSource.invalidate();
     dataObject.getContainer().refresh();
   }
 }
 @Override
 public void showDebugEventHandler(long executionId) {
   PipelineExecution exec = getLightExecution(executionId);
   if (exec == null) {
     Notification.show(
         String.format("Execution with ID=%d doesn't exist!", executionId),
         Notification.Type.ERROR_MESSAGE);
     return;
   }
   view.showExecutionDetail(exec, new ExecutionDetailData(getMessageDataSource()));
 }
  @Override
  public Object enter() {
    navigator = ((AppEntry) UI.getCurrent()).getNavigation();
    // prepare data object
    cachedSource =
        new DbCachedSource<>(dbExecution, new ExecutionAccessor(), utils.getPageLength());
    ReadOnlyContainer c = new ReadOnlyContainer<>(cachedSource);
    c.sort(new Object[] {"id"}, new boolean[] {false});
    dataObject = new ExecutionListData(c);
    // prepare view
    Object viewObject = view.enter(this);
    refreshManager = ((AppEntry) UI.getCurrent()).getRefreshManager();
    refreshManager.addListener(
        RefreshManager.EXECUTION_MONITOR,
        new Refresher.RefreshListener() {
          private long lastRefreshFinished = 0;

          @Override
          public void refresh(Refresher source) {
            if (new Date().getTime() - lastRefreshFinished > RefreshManager.MIN_REFRESH_INTERVAL) {
              refreshEventHandler();
              LOG.debug("ExecutionMonitor refreshed.");
              lastRefreshFinished = new Date().getTime();
            }
          }
        });

    // set data object
    view.setDisplay(dataObject);

    // add initial name filter
    view.setFilter("owner.username", utils.getUserName());

    // return main component
    return viewObject;
  }
 @Override
 public void setParameters(Object configuration) {
   if (configuration != null && Map.class.isAssignableFrom(configuration.getClass())) {
     int pageNumber = 0;
     Map<String, String> config = (Map<String, String>) configuration;
     for (Map.Entry<String, String> entry : config.entrySet()) {
       switch (entry.getKey()) {
         case "exec":
           Long execId = Long.parseLong(entry.getValue());
           view.setSelectedRow(execId);
           showDebugEventHandler(execId);
           break;
         case "page":
           pageNumber = Integer.parseInt(entry.getValue());
           break;
         case "id":
           view.setFilter(entry.getKey(), ParametersHandler.getInterval(entry.getValue()));
           break;
         case "status":
           view.setFilter(entry.getKey(), PipelineExecutionStatus.valueOf(entry.getValue()));
           break;
         case "isDebugging":
         case "schedule":
           view.setFilter(entry.getKey(), Boolean.parseBoolean(entry.getValue()));
           break;
         case "start":
           view.setFilter(entry.getKey(), ParametersHandler.getDateInterval(entry.getValue()));
           break;
         default:
           view.setFilter(entry.getKey(), entry.getValue());
           break;
       }
     }
     if (pageNumber != 0) {
       // Page number is set as last, because filtering automatically moves table to first page.
       view.setPage(pageNumber);
     }
   }
   //		if (configuration != null && configuration.getClass() == String.class) {
   //			String strExecId = (String) configuration;
   //			try {
   //				Long execId = Long.parseLong(strExecId);
   //				view.setSelectedRow(execId);
   //				showDebugEventHandler(execId);
   //			} catch (NumberFormatException e) {
   //				//LOG.warn("Invalid parameter for execution monitor.", e);
   //			}
   //		}
 }