Mercurial > hg > release > heapstats-2.1
changeset 125:7e39fbbb64d8
Bug 2736: The Excluded classes are listed in "Class Search".
Reviewed-by: ykubota
author | Yasumasa Suenaga <yasuenag@gmail.com> |
---|---|
date | Fri, 11 Dec 2015 12:51:18 +0900 |
parents | dea22a8f1da6 |
children | 9ea2c0187067 |
files | ChangeLog analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/HistogramController.java |
diffstat | 2 files changed, 20 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Thu Dec 10 21:49:05 2015 +0900 +++ b/ChangeLog Fri Dec 11 12:51:18 2015 +0900 @@ -1,3 +1,7 @@ +2015-12-11 Yasumasa Suenaga <yasuenag@gmail.com> + + * Bug 2736: The Excluded classes are listed in "Class Search". + 2015-12-10 Yasumasa Suenaga <yasuenag@gmail.com> * Bug 2706: [REDO] Cannot show all Japanese chars in SnapShot Data tab.
--- a/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/HistogramController.java Thu Dec 10 21:49:05 2015 +0900 +++ b/analyzer/fx/src/main/java/jp/co/ntt/oss/heapstats/plugin/builtin/snapshot/tabs/HistogramController.java Fri Dec 11 12:51:18 2015 +0900 @@ -30,6 +30,7 @@ import java.util.function.Consumer; import java.util.function.Predicate; import java.util.stream.Collectors; +import java.util.stream.Stream; import javafx.application.Platform; import javafx.beans.binding.Bindings; import javafx.beans.property.BooleanProperty; @@ -149,6 +150,8 @@ private Consumer<Task<Void>> taskExecutor; + private List<String> hideRegexList; + /** * Initializes the controller class. */ @@ -348,12 +351,6 @@ public Predicate<? super ObjectData> getFilter() { HashSet<String> targetSet = new HashSet<>(searchList.getSelectionModel().getSelectedItems()); Predicate<ObjectData> searchFilter = o -> targetSet.contains(o.getName()); - - List<String> hideRegexList = excludeTable.getItems().stream() - .filter(f -> f.isHide()) - .flatMap(f -> f.getClasses().getName().stream()) - .map(s -> ".*" + s + ".*") - .collect(Collectors.toList()); Predicate<ObjectData> hideFilter = o -> hideRegexList.stream().noneMatch(s -> o.getName().matches(s)); Predicate<ObjectData> filter; @@ -379,6 +376,11 @@ @FXML private void onHiddenFilterApply(ActionEvent event) { excludeFilterEnable = true; + hideRegexList = excludeTable.getItems().stream() + .filter(f -> f.isHide()) + .flatMap(f -> f.getClasses().getName().stream()) + .map(s -> ".*" + s + ".*") + .collect(Collectors.toList()); Predicate<? super ObjectData> filter = getFilter(); taskExecutor.accept(getDrawTopNDataTask(currentTarget.get(), false, filter)); @@ -391,9 +393,14 @@ */ @FXML private void onSearchTextChanged(KeyEvent event) { + Stream<String> searchStrings = currentClassNameSet.get().stream(); + + if(excludeFilterEnable){ + searchStrings = searchStrings.filter(n -> hideRegexList.stream().noneMatch(s -> n.matches(s))); + } + searchList.getItems().clear(); - searchList.getItems().addAll(currentClassNameSet.get().stream() - .filter(n -> n.contains(searchText.getText())) + searchList.getItems().addAll(searchStrings.filter(n -> n.contains(searchText.getText())) .collect(Collectors.toList())); } @@ -423,7 +430,7 @@ searchText.setText(""); searchList.getItems().clear(); - taskExecutor.accept(getDrawTopNDataTask(currentTarget.get(), false, null)); + taskExecutor.accept(getDrawTopNDataTask(currentTarget.get(), true, null)); } /**