提交 cb987a89 编写于 作者: S serge-rider

#5383 Navigator filters fix (container object identification)

上级 748be3d2
......@@ -500,11 +500,11 @@ public class DataSourceDescriptor
if (parentObject == null) {
filterMapping.defaultFilter = filter;
} else {
filterMapping.customFilters.put(DBUtils.getObjectUniqueName(parentObject), filter);
filterMapping.customFilters.put(FilterMapping.getFilterContainerUniqueID(parentObject), filter);
}
}
updateObjectFilter(type.getName(), parentObject == null ? null : DBUtils.getObjectUniqueName(parentObject), filter);
updateObjectFilter(type.getName(), parentObject == null ? null : FilterMapping.getFilterContainerUniqueID(parentObject), filter);
}
void clearFilters() {
......
......@@ -17,7 +17,9 @@
package org.jkiss.dbeaver.registry;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPEvaluationContext;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.struct.DBSInstance;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.DBSObjectFilter;
import org.jkiss.utils.CommonUtils;
......@@ -52,7 +54,7 @@ public class FilterMapping {
return defaultFilter;
}
if (!customFilters.isEmpty()) {
String objectID = DBUtils.getObjectUniqueName(parentObject);
String objectID = getFilterContainerUniqueID(parentObject);
DBSObjectFilter filter = customFilters.get(objectID);
if ((filter != null && !filter.isNotApplicable()) || firstMatch) {
return filter;
......@@ -81,4 +83,15 @@ public class FilterMapping {
CommonUtils.hashCode(defaultFilter) +
CommonUtils.hashCode(customFilters);
}
public static String getFilterContainerUniqueID(@Nullable DBSObject parentObject) {
String objectFullName = DBUtils.getObjectFullName(parentObject, DBPEvaluationContext.UI);
DBSInstance ownerInstance = DBUtils.getObjectOwnerInstance(parentObject);
if (!CommonUtils.equalObjects(ownerInstance.getName(), parentObject.getDataSource().getName())) {
return ownerInstance.getName() + ":" + objectFullName;
} else {
return objectFullName;
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册