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

Reveal new datasources

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