@Test public void selectingCategoryNodeChangesCategoryPanel() { JPanel toolPanel = toolWindow.getContent(); Component[] components = toolPanel.getComponents(); OnePixelSplitter splitter = (OnePixelSplitter) components[0]; JBScrollPane leftPane = (JBScrollPane) splitter.getFirstComponent(); JViewport leftView = leftPane.getViewport(); Tree suggestionTree = (Tree) leftView.getView(); assertThat(suggestionTree.getSelectionCount()).isEqualTo(0); TreePath webPPath = getTreePathWithString(suggestionTree, webPCategoryData.toString()); suggestionTree.addSelectionPath(webPPath); JPanel rightPane = (JPanel) splitter.getSecondComponent(); assertThat(suggestionTree.getSelectionCount()).isEqualTo(1); for (Component component : rightPane.getComponents()) { if (component instanceof SimpleColoredComponent) { assertThat(component.toString()).contains(webPCategoryData.toString()); assertThat(component.toString()).contains("Estimated savings: 29.30 KB"); } else if (component instanceof JPanel) { Component[] suggestionPanelComponents = ((JPanel) component).getComponents(); assertThat(suggestionPanelComponents).hasLength(1); for (Component linkLabel : suggestionPanelComponents) { assertThat(((LinkLabel<?>) linkLabel).getText()).isEqualTo(SuggestionDataFactory.issueTypeNodeNames.get(IssueType.WEBP)); } } } }
public JPanel getContent() { window.validate(); return window; }
AnalyzeSizeToolWindow { public JPanel getContent() { window.validate(); return window; } }
AnalyzeSizeToolWindow { public JPanel getContent() { window.validate(); return window; } AnalyzeSizeToolWindow(
      ToolWindow toolWindow,
      Project project,
      ImmutableListMultimap<Category, Suggestion> categorizedSuggestions,
      ImmutableList<Category> categoryDisplayOrder); }
AnalyzeSizeToolWindow { public JPanel getContent() { window.validate(); return window; } AnalyzeSizeToolWindow(
      ToolWindow toolWindow,
      Project project,
      ImmutableListMultimap<Category, Suggestion> categorizedSuggestions,
      ImmutableList<Category> categoryDisplayOrder); JPanel getContent(); void setCategorizedSuggestions(
      ImmutableListMultimap<Category, Suggestion> categorizedSuggestions); void setCategoryDisplayOrder(ImmutableList<Category> categoryDisplayOrder); }
AnalyzeSizeToolWindow { public JPanel getContent() { window.validate(); return window; } AnalyzeSizeToolWindow(
      ToolWindow toolWindow,
      Project project,
      ImmutableListMultimap<Category, Suggestion> categorizedSuggestions,
      ImmutableList<Category> categoryDisplayOrder); JPanel getContent(); void setCategorizedSuggestions(
      ImmutableListMultimap<Category, Suggestion> categorizedSuggestions); void setCategoryDisplayOrder(ImmutableList<Category> categoryDisplayOrder);  }