提交 6c41f5e8 编写于 作者: S Serge Rider

Reveal new datasources

上级 af18f7d8
......@@ -306,7 +306,7 @@ public class DataSourceRegistry implements DBPDataSourceRegistry
this.dataSources.add(descriptor);
}
this.saveDataSources();
this.fireDataSourceEvent(DBPEvent.Action.OBJECT_ADD, descriptor);
notifyDataSourceListeners(new DBPEvent(DBPEvent.Action.OBJECT_ADD, descriptor, true));
}
public void removeDataSource(DBPDataSourceContainer dataSource)
......
......@@ -177,8 +177,9 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen
{
switch (event.getAction()) {
case ADD:
case REMOVE:
final DBNNode parentNode = event.getNode().getParentNode();
case REMOVE: {
final DBNNode node = event.getNode();
final DBNNode parentNode = node.getParentNode();
if (parentNode != null) {
DBeaverUI.syncExec(new Runnable() {
@Override
......@@ -186,12 +187,17 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen
if (!treeViewer.getControl().isDisposed()) {
if (!parentNode.isDisposed()) {
treeViewer.refresh(getViewerObject(parentNode));
if (event.getNodeChange() == DBNEvent.NodeChange.SELECT) {
treeViewer.reveal(node);
treeViewer.setSelection(new StructuredSelection(node));
}
}
}
}
});
}
break;
}
case UPDATE:
DBeaverUI.syncExec(new Runnable() {
@Override
......
......@@ -35,6 +35,7 @@ public class DBNEvent {
LOAD,
UNLOAD,
REFRESH,
SELECT,
STRUCT_REFRESH,
LOCK,
UNLOCK,
......
......@@ -51,7 +51,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
List<? extends DBPDataSourceContainer> projectDataSources = this.dataSourceRegistry.getDataSources();
for (DBPDataSourceContainer ds : projectDataSources) {
addDataSource(ds, false);
addDataSource(ds, false, false);
}
}
......@@ -205,13 +205,17 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
return null;
}
private DBNDataSource addDataSource(DBPDataSourceContainer descriptor, boolean reflect)
private DBNDataSource addDataSource(DBPDataSourceContainer descriptor, boolean reflect, boolean reveal)
{
DBNDataSource newNode = new DBNDataSource(this, descriptor);
dataSources.add(newNode);
children = null;
if (reflect) {
getModel().fireNodeEvent(new DBNEvent(this, DBNEvent.Action.ADD, newNode));
getModel().fireNodeEvent(new DBNEvent(
this,
DBNEvent.Action.ADD,
reveal ? DBNEvent.NodeChange.SELECT : DBNEvent.NodeChange.REFRESH,
newNode));
}
return newNode;
}
......@@ -240,7 +244,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
switch (event.getAction()) {
case OBJECT_ADD:
if (event.getObject() instanceof DBPDataSourceContainer) {
addDataSource((DBPDataSourceContainer) event.getObject(), true);
addDataSource((DBPDataSourceContainer) event.getObject(), true, event.getEnabled() != null && event.getEnabled());
} else if (model.getNodeByObject(event.getObject()) == null) {
DBNDatabaseNode parentNode = model.getParentNode(event.getObject());
boolean parentFound = (parentNode != null);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册