提交 47f208ff 编写于 作者: N Nikita Akilov

#10879 match DBNNode's description when applying search filter


Former-commit-id: 55e333c1
上级 4cdce802
...@@ -46,8 +46,6 @@ import org.jkiss.dbeaver.model.runtime.AbstractJob; ...@@ -46,8 +46,6 @@ import org.jkiss.dbeaver.model.runtime.AbstractJob;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor; import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import org.jkiss.dbeaver.model.sql.SQLUtils; import org.jkiss.dbeaver.model.sql.SQLUtils;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.DBSWrapper;
import org.jkiss.dbeaver.runtime.DBWorkbench; import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.runtime.properties.*; import org.jkiss.dbeaver.runtime.properties.*;
import org.jkiss.dbeaver.ui.*; import org.jkiss.dbeaver.ui.*;
...@@ -63,6 +61,7 @@ import org.jkiss.utils.CommonUtils; ...@@ -63,6 +61,7 @@ import org.jkiss.utils.CommonUtils;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.List; import java.util.List;
import java.util.*; import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException; import java.util.regex.PatternSyntaxException;
...@@ -1275,28 +1274,28 @@ public abstract class ObjectListControl<OBJECT_TYPE> extends ProgressPageControl ...@@ -1275,28 +1274,28 @@ public abstract class ObjectListControl<OBJECT_TYPE> extends ProgressPageControl
} }
} }
private class SearchFilter extends ViewerFilter { private static final class SearchFilter extends ViewerFilter {
final Pattern pattern; private final Pattern pattern;
public SearchFilter(String searchString, boolean caseSensitiveSearch) throws PatternSyntaxException { private SearchFilter(String searchString, boolean caseSensitiveSearch) {
pattern = Pattern.compile(SQLUtils.makeLikePattern(searchString), caseSensitiveSearch ? 0 : Pattern.CASE_INSENSITIVE); pattern = Pattern.compile(SQLUtils.makeLikePattern(searchString), caseSensitiveSearch ? 0 : Pattern.CASE_INSENSITIVE);
} }
@Override @Override
public boolean select(Viewer viewer, Object parentElement, Object element) { public boolean select(Viewer viewer, Object parentElement, Object element) {
if (element instanceof DBNNode && matches(((DBNNode) element).getName())) { if (!(element instanceof DBNNode)) {
return true; return false;
}
if (element instanceof DBSWrapper) {
DBSWrapper wrapper = (DBSWrapper) element;
DBSObject dbsObject = wrapper.getObject();
return dbsObject != null && matches(dbsObject.getDescription());
} }
return false; DBNNode node = (DBNNode) element;
return matches(node.getName()) || matches(node.getNodeDescription());
} }
private boolean matches(@Nullable String string) { private boolean matches(@Nullable CharSequence charSequence) {
return string != null && pattern.matcher(string).find(); if (charSequence == null) {
return false;
}
Matcher matcher = pattern.matcher(charSequence);
return matcher.find();
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册