|
15 | 15 |
|
16 | 16 | import java.util.ArrayList; |
17 | 17 | import java.util.Collections; |
18 | | -import java.util.Comparator; |
19 | 18 | import java.util.HashMap; |
20 | 19 | import java.util.Iterator; |
21 | 20 | import java.util.List; |
@@ -1975,7 +1974,12 @@ public int selectLambda(List<LambdaExpression> lambdaExps) { |
1975 | 1974 | protected FilteredList createFilteredList(Composite parent) { |
1976 | 1975 | FilteredList filteredList = super.createFilteredList(parent); |
1977 | 1976 | // Disable default sorting to keep the original order |
1978 | | - filteredList.setComparator(new LambdaPositionComparator(lambdaNames)); |
| 1977 | + filteredList.setComparator((o1, o2) -> { |
| 1978 | + if (o1 instanceof LambdaExpression l1 && o2 instanceof LambdaExpression l2) { |
| 1979 | + return Integer.compare(l1.getStartPosition(), l2.getStartPosition()); |
| 1980 | + } |
| 1981 | + return 0; |
| 1982 | + }); |
1979 | 1983 | filteredList.addSelectionListener(new SelectionAdapter() { |
1980 | 1984 | @Override |
1981 | 1985 | public void widgetSelected(SelectionEvent e) { |
@@ -2012,21 +2016,6 @@ protected void setShellStyle(int newShellStyle) { |
2012 | 2016 | return -1; |
2013 | 2017 | } |
2014 | 2018 |
|
2015 | | - private static class LambdaPositionComparator implements Comparator<Object> { |
2016 | | - private List<String> lambdaNames; |
2017 | | - |
2018 | | - public LambdaPositionComparator(List<String> lambdaNames) { |
2019 | | - this.lambdaNames = lambdaNames; |
2020 | | - } |
2021 | | - |
2022 | | - @Override |
2023 | | - public int compare(Object o1, Object o2) { |
2024 | | - int index1 = lambdaNames.indexOf(o1); |
2025 | | - int index2 = lambdaNames.indexOf(o2); |
2026 | | - return index1 - index2; |
2027 | | - } |
2028 | | - } |
2029 | | - |
2030 | 2019 | private static class LambdaLabelProvider extends LabelProvider { |
2031 | 2020 | private List<LambdaExpression> lambdaExps; |
2032 | 2021 | private List<String> lambdaNames; |
|
0 commit comments