private SessionDataDto defineCurrentSession(CellDoubleClickEvent event) { String sessionId = treeGrid.getColumnModel().getColumn(event.getCellIndex()).getHeader().asString(); String sessionData_id = sessionId.substring(sessionId.indexOf(' ') + 1); SessionDataDto currentSession = null; for (SessionDataDto sessionDataDto : SessionComparisonPanel.this.chosenSessions) { if (sessionDataDto.getSessionId().equals(sessionData_id)) { currentSession = sessionDataDto; break; } } return currentSession; }
public void addTestInfo(TaskDataDto test, Map<String, TestInfoDto> testInfoMap) { TreeItem testItem = getTestItem(test); String testInfoId = testItem.getKey() + TEST_INFO; if (treeStore.findModelWithKey(testInfoId) != null) { return; } String testItemName = getTestItemName(test); TreeItem testInfo = new TreeItem(testInfoId); testInfo.put(NAME, TEST_INFO); testInfo.put(TEST_DESCRIPTION, test.getDescription()); testInfo.put(TEST_NAME, testItemName); treeStore.insert(testItem, 0, testInfo); TreeItem clock = new TreeItem(testItem.getKey() + "Clock"); clock.put(NAME, "Clock"); clock.put(TEST_DESCRIPTION, test.getDescription()); clock.put(TEST_NAME, testItemName); clock.put(TEST_INFO, TEST_INFO); for (SessionDataDto session : chosenSessions) { if (testInfoMap.get(session.getSessionId()) != null) clock.put( SESSION_HEADER + session.getSessionId(), testInfoMap.get(session.getSessionId()).getClock()); } treeStore.add(testInfo, clock); TreeItem termination = new TreeItem(testItem.getKey() + "Termination"); termination.put(NAME, "Termination"); termination.put(TEST_DESCRIPTION, test.getDescription()); termination.put(TEST_NAME, testItemName); termination.put(TEST_INFO, TEST_INFO); for (SessionDataDto session : chosenSessions) { if (testInfoMap.get(session.getSessionId()) != null) termination.put( SESSION_HEADER + session.getSessionId(), testInfoMap.get(session.getSessionId()).getTermination()); } treeStore.add(testInfo, termination); TreeItem startTime = new TreeItem(testItem.getKey() + "Start time"); startTime.put(NAME, "Start time"); startTime.put(TEST_DESCRIPTION, test.getDescription()); startTime.put(TEST_NAME, testItemName); startTime.put(TEST_INFO, TEST_INFO); for (SessionDataDto session : chosenSessions) { if (testInfoMap.get(session.getSessionId()) != null) { Date date = testInfoMap.get(session.getSessionId()).getStartTime(); startTime.put(SESSION_HEADER + session.getSessionId(), dateFormatter.format(date)); } } treeStore.add(testInfo, startTime); }
public void addSessionInfo() { TreeItem sessionInfo = new TreeItem(SESSION_INFO_ID); sessionInfo.put(NAME, "Session Info"); treeStore.insert(0, sessionInfo); String tagsStr = ""; TreeItem itemActiveKernels = new TreeItem(ACTIVE_KERNELS); TreeItem itemTaskExecuted = new TreeItem(TASKS_EXECUTED); TreeItem itemTaskFailed = new TreeItem(TASKS_FAILED); TreeItem itemDateStart = new TreeItem(START_DATE); TreeItem itemDateEnd = new TreeItem(END_DATE); TreeItem itemComment = new TreeItem(COMMENT); TreeItem itemUserComment = new TreeItem(USER_COMMENT); TreeItem itemTags = new TreeItem(SESSION_TAGS); itemActiveKernels.put(NAME, ACTIVE_KERNELS); itemTaskExecuted.put(NAME, TASKS_EXECUTED); itemTaskFailed.put(NAME, TASKS_FAILED); itemDateStart.put(NAME, START_DATE); itemDateEnd.put(NAME, END_DATE); itemComment.put(NAME, COMMENT); if (webClientProperties.isUserCommentStoreAvailable()) itemUserComment.put(NAME, USER_COMMENT); if (webClientProperties.isTagsStoreAvailable()) itemTags.put(NAME, SESSION_TAGS); for (SessionDataDto session : chosenSessions) { itemActiveKernels.put( SESSION_HEADER + session.getSessionId(), session.getActiveKernelsCount() + ""); itemTaskExecuted.put( SESSION_HEADER + session.getSessionId(), session.getTasksExecuted() + ""); itemTaskFailed.put(SESSION_HEADER + session.getSessionId(), session.getTasksFailed() + ""); itemDateStart.put( SESSION_HEADER + session.getSessionId(), dateFormatter.format(session.getStartDate())); itemDateEnd.put( SESSION_HEADER + session.getSessionId(), dateFormatter.format(session.getEndDate())); itemComment.put(SESSION_HEADER + session.getSessionId(), session.getComment()); if (webClientProperties.isUserCommentStoreAvailable()) { String userComment = session.getUserComment() == null ? "" : session.getUserComment(); itemUserComment.put(SESSION_HEADER + session.getSessionId(), userComment); } if (webClientProperties.isTagsStoreAvailable()) { for (int i = 0; i < session.getTags().size(); i++) { if (i == session.getTags().size() - 1) tagsStr += session.getTags().get(i).getName(); else tagsStr += session.getTags().get(i).getName() + ", "; } itemTags.put(SESSION_HEADER + session.getSessionId(), tagsStr); tagsStr = ""; } } treeStore.add(sessionInfo, itemComment); if (webClientProperties.isUserCommentStoreAvailable()) treeStore.add(sessionInfo, itemUserComment); if (webClientProperties.isTagsStoreAvailable()) treeStore.add(sessionInfo, itemTags); treeStore.add(sessionInfo, itemDateStart); treeStore.add(sessionInfo, itemDateEnd); treeStore.add(sessionInfo, itemActiveKernels); treeStore.add(sessionInfo, itemTaskExecuted); treeStore.add(sessionInfo, itemTaskFailed); }
private void init(Set<SessionDataDto> chosenSessions, int width) { int colWidth = calculateWidth(chosenSessions.size(), width); treeStore.clear(); List<ColumnConfig<TreeItem, ?>> columns = new ArrayList<ColumnConfig<TreeItem, ?>>(); // sort sessions by number sessionId SortedSet<SessionDataDto> sortedSet = new TreeSet<SessionDataDto>( new Comparator<SessionDataDto>() { @Override public int compare(SessionDataDto o, SessionDataDto o2) { return (Long.parseLong(o.getSessionId()) - Long.parseLong(o2.getSessionId())) > 0 ? 1 : -1; } }); sortedSet.addAll(chosenSessions); ColumnConfig<TreeItem, String> nameColumn = new ColumnConfig<TreeItem, String>( new MapValueProvider(NAME), (int) (colWidth * METRIC_COLUMN_WIDTH_FACTOR)); nameColumn.setHeader(METRIC); nameColumn.setSortable(false); nameColumn.setMenuDisabled(true); columns.add(nameColumn); for (SessionDataDto session : sortedSet) { ColumnConfig<TreeItem, String> column = new ColumnConfig<TreeItem, String>( new MapValueProvider(SESSION_HEADER + session.getSessionId())); column.setHeader(SESSION_HEADER + session.getSessionId()); column.setWidth(colWidth); column.setSortable(false); column.setCell( new AbstractCell<String>() { @Override public void render(Context context, String value, SafeHtmlBuilder sb) { if (value != null) { sb.appendHtmlConstant(value); } } }); column.setMenuDisabled(true); column.setColumnTextStyle( new SafeStyles() { @Override public String asString() { return WHITE_SPACE_NORMAL; } }); columns.add(column); } ColumnModel<TreeItem> cm = new ColumnModel<TreeItem>(columns); treeGrid = new NoIconsTreeGrid(treeStore, cm, nameColumn); treeGrid.addBeforeCollapseHandler( new BeforeCollapseItemEvent.BeforeCollapseItemHandler<TreeItem>() { @Override public void onBeforeCollapse(BeforeCollapseItemEvent<TreeItem> event) { event.setCancelled(true); } }); treeGrid.setAutoExpand(true); treeGrid.getView().setStripeRows(true); treeGrid.setMinColumnWidth(MIN_COLUMN_WIDTH); treeGrid.setAllowTextSelection(true); treeGrid.getView().setForceFit(true); treeStore.addStoreAddHandler( new StoreAddEvent.StoreAddHandler<TreeItem>() { @Override public void onAdd(StoreAddEvent<TreeItem> event) { for (TreeItem item : event.getItems()) { treeGrid.setExpanded(item, true); } } }); if (webClientProperties.isUserCommentEditAvailable()) { treeGrid.addCellDoubleClickHandler( new CellDoubleClickEvent.CellDoubleClickHandler() { @Override public void onCellClick(CellDoubleClickEvent event) { TreeItem item = treeGrid.findNode(treeGrid.getTreeView().getRow(event.getRowIndex())).getModel(); if (item.getKey().equals(USER_COMMENT) && event.getCellIndex() > 0) { SessionDataDto currentSession = defineCurrentSession(event); userCommentBox.popUp( currentSession, item.get(SESSION_HEADER + currentSession.getSessionId()), item); } } }); } if (webClientProperties.isTagsAvailable()) { treeGrid.addCellDoubleClickHandler( new CellDoubleClickEvent.CellDoubleClickHandler() { @Override public void onCellClick(CellDoubleClickEvent event) { TreeItem item = treeGrid.findNode(treeGrid.getTreeView().getRow(event.getRowIndex())).getModel(); if (item.getKey().equals(SESSION_TAGS) && event.getCellIndex() > 0) { SessionDataDto currentSession = defineCurrentSession(event); if (allTagsLoadComplete) tagBox.popUpForEdit(currentSession, item, allTags); } } }); } add(treeGrid); }