@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); // } // } }