private void updateUiOnFilterChange() { FilterModel[] models = { myBranchFilterModel, myUserFilterModel, myDateFilterModel, myStructureFilterModel, myTextFilterModel }; for (FilterModel<?> model : models) { model.addSetFilterListener( new Runnable() { @Override public void run() { myUi.applyFiltersAndUpdateUi(); myBranchFilterModel.onStructureFilterChanged( new HashSet<VirtualFile>(myLogDataHolder.getRoots()), myStructureFilterModel.getFilter()); } }); } }
@NotNull @Override public VcsLogFilterCollection getFilters() { ApplicationManager.getApplication().assertIsDispatchThread(); Pair<VcsLogTextFilter, VcsLogHashFilter> filtersFromText = getFiltersFromTextArea(myTextFilterModel.getFilter()); return new VcsLogFilterCollectionImpl( myBranchFilterModel.getFilter(), myUserFilterModel.getFilter(), filtersFromText.second, myDateFilterModel.getFilter(), filtersFromText.first, myStructureFilterModel.getFilter() == null ? null : myStructureFilterModel.getFilter().getStructureFilter(), myStructureFilterModel.getFilter() == null ? null : myStructureFilterModel.getFilter().getRootFilter()); }
@Override void setFilter(@Nullable VcsLogTextFilter filter) { super.setFilter(filter); myText = null; }