提交 60dc2fa5 编写于 作者: S Serge Rider

dbeaver/dbeaver-ee#954 Merge schemas model

上级 9b49ce34
......@@ -31,7 +31,7 @@ public interface DBNBrowseSettings {
boolean isHideFolders();
boolean isHideSchemas();
boolean isMergeSchemas();
boolean isHideVirtualModel();
......
......@@ -431,6 +431,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBNLazyNode, DB
final boolean showSystem = navSettings.isShowSystemObjects();
final boolean showOnlyEntities = navSettings.isShowOnlyEntities();
final boolean hideFolders = navSettings.isHideFolders();
final boolean mergeSchemas = navSettings.isMergeSchemas();
for (DBXTreeNode child : childMetas) {
if (monitor.isCanceled()) {
......@@ -440,13 +441,18 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBNLazyNode, DB
if (showOnlyEntities && !isEntityMeta(child)) {
continue;
}
if (child instanceof DBXTreeItem) {
final DBXTreeItem item = (DBXTreeItem) child;
boolean isLoaded = loadTreeItems(monitor, item, oldList, toList, source, showSystem, hideFolders, reflect);
if (!isLoaded && item.isOptional() && item.getRecursiveLink() == null) {
// This may occur only if no child nodes was read
// Then we try to go on next DBX level
loadChildren(monitor, item, oldList, toList, source, reflect);
/*if (mergeSchemas && isSchemaItem(item)) {
// Merge
} else */{
boolean isLoaded = loadTreeItems(monitor, item, oldList, toList, source, showSystem, hideFolders, reflect);
if (!isLoaded && item.isOptional() && item.getRecursiveLink() == null) {
// This may occur only if no child nodes was read
// Then we try to go on next DBX level
loadChildren(monitor, item, oldList, toList, source, reflect);
}
}
} else if (child instanceof DBXTreeFolder) {
if (hideFolders) {
......
......@@ -81,7 +81,7 @@ public class DataSourceNavigatorSettings implements DBNBrowseSettings {
private boolean showOnlyEntities;
private boolean mergeEntities;
private boolean hideFolders;
private boolean hideSchemas;
private boolean mergeSchemas;
private boolean hideVirtualModel;
public DataSourceNavigatorSettings() {
......@@ -93,7 +93,7 @@ public class DataSourceNavigatorSettings implements DBNBrowseSettings {
this.showOnlyEntities = copyFrom.isShowOnlyEntities();
this.mergeEntities = copyFrom.isMergeEntities();
this.hideFolders = copyFrom.isHideFolders();
this.hideSchemas = copyFrom.isHideSchemas();
this.mergeSchemas = copyFrom.isMergeSchemas();
this.hideVirtualModel = copyFrom.isHideVirtualModel();
}
......@@ -143,12 +143,12 @@ public class DataSourceNavigatorSettings implements DBNBrowseSettings {
}
@Override
public boolean isHideSchemas() {
return hideSchemas;
public boolean isMergeSchemas() {
return mergeSchemas;
}
public void setHideSchemas(boolean hideSchemas) {
this.hideSchemas = hideSchemas;
public void setMergeSchemas(boolean mergeSchemas) {
this.mergeSchemas = mergeSchemas;
}
@Override
......@@ -171,7 +171,7 @@ public class DataSourceNavigatorSettings implements DBNBrowseSettings {
this.showOnlyEntities == source.showOnlyEntities &&
this.mergeEntities == source.mergeEntities &&
this.hideFolders == source.hideFolders &&
this.hideSchemas == source.hideSchemas &&
this.mergeSchemas == source.mergeSchemas &&
this.hideVirtualModel == source.hideVirtualModel;
}
......@@ -181,7 +181,7 @@ public class DataSourceNavigatorSettings implements DBNBrowseSettings {
private static final String DEFAULT_SHOW_ONLY_ENTITIES = "navigator.settings.default.showOnlyEntities";
private static final String DEFAULT_MERGE_ENTITIES = "navigator.settings.default.mergeEntities";
private static final String DEFAULT_HIDE_FOLDERS = "navigator.settings.default.hideFolders";
private static final String DEFAULT_HIDE_SCHEMAS = "navigator.settings.default.hideSchemas";
private static final String DEFAULT_MERGE_SCHEMAS = "navigator.settings.default.mergeSchemas";
private static final String DEFAULT_HIDE_VIRTUAL_MODEL = "navigator.settings.default.hideVirtualModel";
public static DBNBrowseSettings getDefaultSettings() {
......@@ -202,7 +202,7 @@ public class DataSourceNavigatorSettings implements DBNBrowseSettings {
settings.setShowOnlyEntities(preferences.getBoolean(DEFAULT_SHOW_ONLY_ENTITIES));
settings.setMergeEntities(preferences.getBoolean(DEFAULT_MERGE_ENTITIES));
settings.setHideFolders(preferences.getBoolean(DEFAULT_HIDE_FOLDERS));
settings.setHideSchemas(preferences.getBoolean(DEFAULT_HIDE_SCHEMAS));
settings.setMergeSchemas(preferences.getBoolean(DEFAULT_MERGE_SCHEMAS));
settings.setHideVirtualModel(preferences.getBoolean(DEFAULT_HIDE_VIRTUAL_MODEL));
return settings;
}
......@@ -231,7 +231,7 @@ public class DataSourceNavigatorSettings implements DBNBrowseSettings {
preferences.setValue(DEFAULT_SHOW_ONLY_ENTITIES, settings.isShowOnlyEntities());
preferences.setValue(DEFAULT_MERGE_ENTITIES, settings.isMergeEntities());
preferences.setValue(DEFAULT_HIDE_FOLDERS, settings.isHideFolders());
preferences.setValue(DEFAULT_HIDE_SCHEMAS, settings.isHideSchemas());
preferences.setValue(DEFAULT_MERGE_SCHEMAS, settings.isMergeSchemas());
preferences.setValue(DEFAULT_HIDE_VIRTUAL_MODEL, settings.isHideVirtualModel());
}
......
......@@ -483,7 +483,7 @@ class DataSourceSerializerLegacy implements DataSourceSerializer
navSettings.setShowUtilityObjects(CommonUtils.getBoolean(atts.getValue(DataSourceSerializerModern.ATTR_NAVIGATOR_SHOW_UTIL_OBJECTS)));
navSettings.setShowOnlyEntities(CommonUtils.getBoolean(atts.getValue(DataSourceSerializerModern.ATTR_NAVIGATOR_SHOW_ONLY_ENTITIES)));
navSettings.setHideFolders(CommonUtils.getBoolean(atts.getValue(DataSourceSerializerModern.ATTR_NAVIGATOR_HIDE_FOLDERS)));
navSettings.setHideSchemas(CommonUtils.getBoolean(atts.getValue(DataSourceSerializerModern.ATTR_NAVIGATOR_HIDE_SCHEMAS)));
navSettings.setMergeSchemas(CommonUtils.getBoolean(atts.getValue(DataSourceSerializerModern.ATTR_NAVIGATOR_HIDE_SCHEMAS)));
navSettings.setHideVirtualModel(CommonUtils.getBoolean(atts.getValue(DataSourceSerializerModern.ATTR_NAVIGATOR_HIDE_VIRTUAL)));
navSettings.setMergeEntities(CommonUtils.getBoolean(atts.getValue(DataSourceSerializerModern.ATTR_NAVIGATOR_MERGE_ENTITIES)));
......
......@@ -506,7 +506,7 @@ class DataSourceSerializerModern implements DataSourceSerializer
navSettings.setShowUtilityObjects(JSONUtils.getBoolean(conObject, DataSourceSerializerModern.ATTR_NAVIGATOR_SHOW_UTIL_OBJECTS));
navSettings.setShowOnlyEntities(JSONUtils.getBoolean(conObject, DataSourceSerializerModern.ATTR_NAVIGATOR_SHOW_ONLY_ENTITIES));
navSettings.setHideFolders(JSONUtils.getBoolean(conObject, DataSourceSerializerModern.ATTR_NAVIGATOR_HIDE_FOLDERS));
navSettings.setHideSchemas(JSONUtils.getBoolean(conObject, DataSourceSerializerModern.ATTR_NAVIGATOR_HIDE_SCHEMAS));
navSettings.setMergeSchemas(JSONUtils.getBoolean(conObject, DataSourceSerializerModern.ATTR_NAVIGATOR_HIDE_SCHEMAS));
navSettings.setHideVirtualModel(JSONUtils.getBoolean(conObject, DataSourceSerializerModern.ATTR_NAVIGATOR_HIDE_VIRTUAL));
navSettings.setMergeEntities(JSONUtils.getBoolean(conObject, DataSourceSerializerModern.ATTR_NAVIGATOR_MERGE_ENTITIES));
......@@ -767,7 +767,7 @@ class DataSourceSerializerModern implements DataSourceSerializer
if (navSettings.isShowUtilityObjects()) JSONUtils.field(json, ATTR_NAVIGATOR_SHOW_UTIL_OBJECTS, true);
if (navSettings.isShowOnlyEntities()) JSONUtils.field(json, ATTR_NAVIGATOR_SHOW_ONLY_ENTITIES, true);
if (navSettings.isHideFolders()) JSONUtils.field(json, ATTR_NAVIGATOR_HIDE_FOLDERS, true);
if (navSettings.isHideSchemas()) JSONUtils.field(json, ATTR_NAVIGATOR_HIDE_SCHEMAS, true);
if (navSettings.isMergeSchemas()) JSONUtils.field(json, ATTR_NAVIGATOR_HIDE_SCHEMAS, true);
if (navSettings.isHideVirtualModel()) JSONUtils.field(json, ATTR_NAVIGATOR_HIDE_VIRTUAL, true);
if (navSettings.isMergeEntities()) JSONUtils.field(json, ATTR_NAVIGATOR_MERGE_ENTITIES, true);
......
......@@ -342,7 +342,7 @@ public class DataSourceUtils {
navSettings.setShowSystemObjects(showSystemObjects);
navSettings.setShowUtilityObjects(showUtilityObjects);
navSettings.setShowOnlyEntities(showOnlyEntities);
navSettings.setHideSchemas(hideSchemas);
navSettings.setMergeSchemas(hideSchemas);
navSettings.setHideFolders(hideFolders);
navSettings.setMergeEntities(mergeEntities);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册