Source:
public ViewApps(ThemeManager themeManager, JavaFxSettingsManager javaFxSettingsManager, ToolsConfiguration toolsConfiguration) { super(tr("Apps"), themeManager); this.availableApps = new CombinedListWidget<ApplicationDTO>(ListWidgetEntry::create, (element, event) -> showAppDetails(element, javaFxSettingsManager)); this.filter = new ApplicationFilter(toolsConfiguration.operatingSystemFetcher(), (filterText, application) -> application.getName().toLowerCase().contains(filterText)); this.categories = FXCollections.observableArrayList(); this.installableCategories = this.categories .filtered(category -> category.getType() == CategoryDTO.CategoryType.INSTALLERS); this.sortedCategories = this.installableCategories.sorted(Comparator.comparing(CategoryDTO::getName)); this.applications = new ExpandedList<ApplicationDTO, CategoryDTO>(this.installableCategories, CategoryDTO::getApplications); this.filteredApplications = new FilteredList<ApplicationDTO>(this.applications); this.filteredApplications.predicateProperty().bind(filter.applicationFilterProperty()); this.sortedApplications = this.filteredApplications.sorted(Comparator.comparing(ApplicationDTO::getName)); this.sidebar = new ApplicationSidebar(availableApps, filter, javaFxSettingsManager); this.sidebar.bindCategories(this.sortedCategories); this.availableApps.bind(this.sortedApplications); this.sidebar.setOnCategorySelection(category -> { filter.setFilterCategory(category); this.closeDetailsView(); }); this.sidebar.setOnAllCategorySelection(() -> { System.out.println("Dong!"); filter.setFilterCategory(null); this.closeDetailsView(); }); this.setSidebar(this.sidebar); }

Target:
public ViewApps(ThemeManager themeManager, JavaFxSettingsManager javaFxSettingsManager, ToolsConfiguration toolsConfiguration) { super(tr("Apps"), themeManager); this.availableApps = new CombinedListWidget<ApplicationDTO>(ListWidgetEntry::create, (element, event) -> showAppDetails(element, javaFxSettingsManager)); this.filter = new ApplicationFilter(toolsConfiguration.operatingSystemFetcher(), (filterText, application) -> application.getName().toLowerCase().contains(filterText)); this.categories = FXCollections.observableArrayList(); this.installableCategories = this.categories .filtered(category -> category.getType() == CategoryDTO.CategoryType.INSTALLERS); this.sortedCategories = this.installableCategories.sorted(Comparator.comparing(CategoryDTO::getName)); this.applications = new ExpandedList<ApplicationDTO, CategoryDTO>(this.installableCategories, CategoryDTO::getApplications); this.filteredApplications = new FilteredList<ApplicationDTO>(this.applications); this.filteredApplications.predicateProperty().bind(filter.applicationFilterProperty()); this.sortedApplications = this.filteredApplications.sorted(Comparator.comparing(ApplicationDTO::getName)); this.sidebar = new ApplicationSidebar(availableApps, filter, javaFxSettingsManager); this.sidebar.bindCategories(this.sortedCategories); this.availableApps.bind(this.sortedApplications); this.sidebar.setOnCategorySelection(category -> { filter.setFilterCategory(category); this.closeDetailsView(); }); this.sidebar.setOnAllCategorySelection(() -> { filter.setFilterCategory(null); this.closeDetailsView(); }); this.setSidebar(this.sidebar); }