提交 8be9b259 编写于 作者: J jurgen

Model refactoring

上级 3ba6086d
...@@ -24,6 +24,7 @@ import org.jkiss.code.NotNull; ...@@ -24,6 +24,7 @@ import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBPApplication; import org.jkiss.dbeaver.model.DBPApplication;
import org.jkiss.dbeaver.model.DBPPreferenceStore; import org.jkiss.dbeaver.model.DBPPreferenceStore;
import org.jkiss.dbeaver.model.DBPProjectManager;
import org.jkiss.dbeaver.registry.PluginServiceRegistry; import org.jkiss.dbeaver.registry.PluginServiceRegistry;
import org.jkiss.dbeaver.runtime.IPluginService; import org.jkiss.dbeaver.runtime.IPluginService;
import org.jkiss.dbeaver.runtime.net.GlobalProxyAuthenticator; import org.jkiss.dbeaver.runtime.net.GlobalProxyAuthenticator;
...@@ -175,7 +176,7 @@ public class DBeaverCore implements DBPApplication { ...@@ -175,7 +176,7 @@ public class DBeaverCore implements DBPApplication {
initializeProjects(); initializeProjects();
// Navigator model // Navigator model
this.navigatorModel = new DBNModel(); this.navigatorModel = new DBNModel(this);
this.navigatorModel.initialize(); this.navigatorModel.initialize();
// Activate plugin services // Activate plugin services
...@@ -297,6 +298,11 @@ public class DBeaverCore implements DBPApplication { ...@@ -297,6 +298,11 @@ public class DBeaverCore implements DBPApplication {
return workspace; return workspace;
} }
@Override
public DBPProjectManager getProjectManager() {
return getProjectRegistry();
}
/** /**
* Returns configuration file * Returns configuration file
*/ */
......
...@@ -18,10 +18,13 @@ ...@@ -18,10 +18,13 @@
package org.jkiss.dbeaver.model; package org.jkiss.dbeaver.model;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.IWorkspace;
import org.jkiss.code.NotNull; import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.model.navigator.DBNModel; import org.jkiss.dbeaver.model.navigator.DBNModel;
import java.util.Collection;
/** /**
* DBPApplication * DBPApplication
*/ */
...@@ -32,4 +35,7 @@ public interface DBPApplication ...@@ -32,4 +35,7 @@ public interface DBPApplication
IWorkspace getWorkspace(); IWorkspace getWorkspace();
DBPProjectManager getProjectManager();
Collection<IProject> getLiveProjects();
} }
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2015 Serge Rieder (serge@jkiss.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package org.jkiss.dbeaver.model;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.jkiss.dbeaver.model.project.DBPProjectListener;
import org.jkiss.dbeaver.model.project.DBPResourceHandler;
/**
* ProjectManager
*/
public interface DBPProjectManager
{
DBPResourceHandler getResourceHandler(IResource resource);
IProject getActiveProject();
void setActiveProject(IProject project);
void addProject(IProject project);
void removeProject(IProject project);
void addProjectListener(DBPProjectListener listener);
void removeProjectListener(DBPProjectListener listener);
DBPDataSourceRegistry getDataSourceRegistry(IProject project);
}
...@@ -49,7 +49,7 @@ public class DBNDataSource extends DBNDatabaseNode implements IAdaptable ...@@ -49,7 +49,7 @@ public class DBNDataSource extends DBNDatabaseNode implements IAdaptable
super(parentNode); super(parentNode);
this.dataSource = dataSource; this.dataSource = dataSource;
this.treeRoot = dataSource.getDriver().getNavigatorRoot(); this.treeRoot = dataSource.getDriver().getNavigatorRoot();
DBNModel.getInstance().addNode(this, false); registerNode();
} }
@Override @Override
...@@ -68,7 +68,7 @@ public class DBNDataSource extends DBNDatabaseNode implements IAdaptable ...@@ -68,7 +68,7 @@ public class DBNDataSource extends DBNDatabaseNode implements IAdaptable
@Override @Override
protected void dispose(boolean reflect) protected void dispose(boolean reflect)
{ {
DBNModel.getInstance().removeNode(this, reflect); unregisterNode(reflect);
super.dispose(reflect); super.dispose(reflect);
} }
......
...@@ -45,13 +45,13 @@ public class DBNDatabaseFolder extends DBNDatabaseNode implements DBNContainer, ...@@ -45,13 +45,13 @@ public class DBNDatabaseFolder extends DBNDatabaseNode implements DBNContainer,
{ {
super(parent); super(parent);
this.meta = meta; this.meta = meta;
DBNModel.getInstance().addNode(this); registerNode();
} }
@Override @Override
protected void dispose(boolean reflect) protected void dispose(boolean reflect)
{ {
DBNModel.getInstance().removeNode(this, reflect); unregisterNode(reflect);
super.dispose(reflect); super.dispose(reflect);
} }
......
...@@ -34,7 +34,7 @@ public class DBNDatabaseItem extends DBNDatabaseNode ...@@ -34,7 +34,7 @@ public class DBNDatabaseItem extends DBNDatabaseNode
super(parent); super(parent);
this.meta = meta; this.meta = meta;
this.object = object; this.object = object;
DBNModel.getInstance().addNode(this, reflect); registerNode();
} }
@Override @Override
...@@ -46,9 +46,7 @@ public class DBNDatabaseItem extends DBNDatabaseNode ...@@ -46,9 +46,7 @@ public class DBNDatabaseItem extends DBNDatabaseNode
@Override @Override
protected void dispose(boolean reflect) protected void dispose(boolean reflect)
{ {
// Notify model unregisterNode(reflect);
// Reflect changes only if underlying object is not persisted
DBNModel.getInstance().removeNode(this, reflect);
this.object = null; this.object = null;
super.dispose(reflect); super.dispose(reflect);
} }
...@@ -61,9 +59,9 @@ public class DBNDatabaseItem extends DBNDatabaseNode ...@@ -61,9 +59,9 @@ public class DBNDatabaseItem extends DBNDatabaseNode
@Override @Override
protected void reloadObject(DBRProgressMonitor monitor, DBSObject object) { protected void reloadObject(DBRProgressMonitor monitor, DBSObject object) {
DBNModel.getInstance().removeNode(this, false); unregisterNode(false);
this.object = object; this.object = object;
DBNModel.getInstance().addNode(this, false); registerNode();
} }
@Override @Override
......
...@@ -52,6 +52,20 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP ...@@ -52,6 +52,20 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP
super(parentNode); super(parentNode);
} }
protected void registerNode() {
DBNModel model = getModel();
if (model != null) {
model.addNode(this);
}
}
protected void unregisterNode(boolean reflect) {
DBNModel model = getModel();
if (model != null) {
model.removeNode(this, reflect);
}
}
@Override @Override
void dispose(boolean reflect) void dispose(boolean reflect)
{ {
...@@ -178,7 +192,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP ...@@ -178,7 +192,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP
synchronized (this) { synchronized (this) {
childNodes.add(newChild); childNodes.add(newChild);
} }
DBNModel.getInstance().fireNodeEvent(new DBNEvent(this, DBNEvent.Action.ADD, DBNEvent.NodeChange.LOAD, newChild)); getModel().fireNodeEvent(new DBNEvent(this, DBNEvent.Action.ADD, DBNEvent.NodeChange.LOAD, newChild));
} else { } else {
log.error("Cannot add child item to " + getNodeName() + ". Conditions doesn't met"); //$NON-NLS-1$ //$NON-NLS-2$ log.error("Cannot add child item to " + getNodeName() + ". Conditions doesn't met"); //$NON-NLS-1$ //$NON-NLS-2$
} }
...@@ -262,7 +276,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP ...@@ -262,7 +276,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP
return; return;
} }
this.locked = true; this.locked = true;
DBNModel model = DBNModel.getInstance(); DBNModel model = getModel();
try { try {
model.fireNodeUpdate(source, this, DBNEvent.NodeChange.LOCK); model.fireNodeUpdate(source, this, DBNEvent.NodeChange.LOCK);
...@@ -361,7 +375,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP ...@@ -361,7 +375,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP
monitor.done(); monitor.done();
if (filtered) { if (filtered) {
DBNModel.getInstance().fireNodeUpdate(this, this, DBNEvent.NodeChange.REFRESH); getModel().fireNodeUpdate(this, this, DBNEvent.NodeChange.REFRESH);
} }
} }
...@@ -449,7 +463,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP ...@@ -449,7 +463,7 @@ public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBP
// Refresh children recursive // Refresh children recursive
oldChild.reloadChildren(monitor); oldChild.reloadChildren(monitor);
} }
DBNModel.getInstance().fireNodeUpdate(this, oldChild, DBNEvent.NodeChange.REFRESH); getModel().fireNodeUpdate(this, oldChild, DBNEvent.NodeChange.REFRESH);
toList.add(oldChild); toList.add(oldChild);
added = true; added = true;
......
...@@ -37,13 +37,13 @@ public class DBNDatabaseObject extends DBNDatabaseNode implements DBSObject ...@@ -37,13 +37,13 @@ public class DBNDatabaseObject extends DBNDatabaseNode implements DBSObject
{ {
super(parent); super(parent);
this.meta = meta; this.meta = meta;
DBNModel.getInstance().addNode(this); registerNode();
} }
@Override @Override
protected void dispose(boolean reflect) protected void dispose(boolean reflect)
{ {
DBNModel.getInstance().removeNode(this, reflect); unregisterNode(reflect);
super.dispose(reflect); super.dispose(reflect);
} }
......
...@@ -23,15 +23,14 @@ import org.eclipse.core.resources.IResourceChangeListener; ...@@ -23,15 +23,14 @@ import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IResourceDelta;
import org.jkiss.code.Nullable; import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.Log; import org.jkiss.dbeaver.core.Log;
import org.jkiss.dbeaver.model.DBIconComposite; import org.jkiss.dbeaver.model.DBIconComposite;
import org.jkiss.dbeaver.model.DBPApplication;
import org.jkiss.dbeaver.model.DBPImage; import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.navigator.meta.DBXTreeFolder;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSObject; import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.DBSObjectState; import org.jkiss.dbeaver.model.struct.DBSObjectState;
import org.jkiss.dbeaver.registry.ProjectRegistry;
import org.jkiss.dbeaver.model.navigator.meta.DBXTreeFolder;
import org.jkiss.utils.CommonUtils; import org.jkiss.utils.CommonUtils;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -51,18 +50,18 @@ import java.util.Map; ...@@ -51,18 +50,18 @@ import java.util.Map;
public class DBNModel implements IResourceChangeListener { public class DBNModel implements IResourceChangeListener {
static final Log log = Log.getLog(DBNModel.class); static final Log log = Log.getLog(DBNModel.class);
private final DBPApplication application;
private DBNRoot root; private DBNRoot root;
private final List<INavigatorListener> listeners = new ArrayList<INavigatorListener>(); private final List<INavigatorListener> listeners = new ArrayList<INavigatorListener>();
private transient INavigatorListener[] listenersCopy = null; private transient INavigatorListener[] listenersCopy = null;
private final Map<DBSObject, Object> nodeMap = new HashMap<DBSObject, Object>(); private final Map<DBSObject, Object> nodeMap = new HashMap<DBSObject, Object>();
public DBNModel() public DBNModel(DBPApplication application) {
{ this.application = application;
} }
public static DBNModel getInstance() public DBPApplication getApplication() {
{ return application;
return DBeaverCore.getInstance().getNavigatorModel();
} }
public void initialize() public void initialize()
...@@ -70,25 +69,19 @@ public class DBNModel implements IResourceChangeListener { ...@@ -70,25 +69,19 @@ public class DBNModel implements IResourceChangeListener {
if (this.root != null) { if (this.root != null) {
throw new IllegalStateException("Can't initialize navigator model more than once"); throw new IllegalStateException("Can't initialize navigator model more than once");
} }
this.root = new DBNRoot(); this.root = new DBNRoot(this);
// Add all existing projects to root node // Add all existing projects to root node
final DBeaverCore core = DBeaverCore.getInstance(); for (IProject project : application.getLiveProjects()) {
for (IProject project : core.getLiveProjects()) {
root.addProject(project, false); root.addProject(project, false);
} }
/*
for (DataSourceDescriptor dataSource : registry.getDataSources()) {
root.addProject(dataSource);
}
*/
core.getWorkspace().addResourceChangeListener(this); application.getWorkspace().addResourceChangeListener(this);
} }
public void dispose() public void dispose()
{ {
DBeaverCore.getInstance().getWorkspace().removeResourceChangeListener(this); application.getWorkspace().removeResourceChangeListener(this);
this.root.dispose(false); this.root.dispose(false);
synchronized (nodeMap) { synchronized (nodeMap) {
this.nodeMap.clear(); this.nodeMap.clear();
...@@ -193,7 +186,7 @@ public class DBNModel implements IResourceChangeListener { ...@@ -193,7 +186,7 @@ public class DBNModel implements IResourceChangeListener {
@Nullable @Nullable
public DBNDataSource getDataSourceByPath(String path) throws DBException public DBNDataSource getDataSourceByPath(String path) throws DBException
{ {
DBNProject project = getRoot().getProject(getProjectRegistry().getActiveProject()); DBNProject project = getRoot().getProject(application.getProjectManager().getActiveProject());
if (project == null) { if (project == null) {
log.debug("Project node not found"); log.debug("Project node not found");
return null; return null;
...@@ -204,7 +197,7 @@ public class DBNModel implements IResourceChangeListener { ...@@ -204,7 +197,7 @@ public class DBNModel implements IResourceChangeListener {
@Nullable @Nullable
public DBNNode getNodeByPath(DBRProgressMonitor monitor, String path) throws DBException public DBNNode getNodeByPath(DBRProgressMonitor monitor, String path) throws DBException
{ {
DBNProject project = getRoot().getProject(getProjectRegistry().getActiveProject()); DBNProject project = getRoot().getProject(application.getProjectManager().getActiveProject());
if (project == null) { if (project == null) {
log.debug("Project node not found"); log.debug("Project node not found");
return null; return null;
...@@ -444,8 +437,8 @@ public class DBNModel implements IResourceChangeListener { ...@@ -444,8 +437,8 @@ public class DBNModel implements IResourceChangeListener {
// New projectNode // New projectNode
getRoot().addProject(project, true); getRoot().addProject(project, true);
if (getProjectRegistry().getActiveProject() == null) { if (application.getProjectManager().getActiveProject() == null) {
getProjectRegistry().setActiveProject(project); application.getProjectManager().setActiveProject(project);
} }
} else { } else {
// Project not found - report an error // Project not found - report an error
...@@ -455,8 +448,8 @@ public class DBNModel implements IResourceChangeListener { ...@@ -455,8 +448,8 @@ public class DBNModel implements IResourceChangeListener {
if (childDelta.getKind() == IResourceDelta.REMOVED) { if (childDelta.getKind() == IResourceDelta.REMOVED) {
// Project deleted // Project deleted
getRoot().removeProject(project); getRoot().removeProject(project);
if (project == getProjectRegistry().getActiveProject()) { if (project == application.getProjectManager().getActiveProject()) {
getProjectRegistry().setActiveProject(null); application.getProjectManager().setActiveProject(null);
} }
} else { } else {
if (childDelta.getFlags() == IResourceDelta.OPEN) { if (childDelta.getFlags() == IResourceDelta.OPEN) {
...@@ -503,8 +496,4 @@ public class DBNModel implements IResourceChangeListener { ...@@ -503,8 +496,4 @@ public class DBNModel implements IResourceChangeListener {
} }
} }
private static ProjectRegistry getProjectRegistry() {
return DBeaverCore.getInstance().getProjectRegistry();
}
} }
...@@ -36,7 +36,7 @@ public abstract class DBNNode implements DBPNamedObject, DBPPersistedObject ...@@ -36,7 +36,7 @@ public abstract class DBNNode implements DBPNamedObject, DBPPersistedObject
{ {
static final Log log = Log.getLog(DBNNode.class); static final Log log = Log.getLog(DBNNode.class);
private DBNNode parentNode; private final DBNNode parentNode;
protected DBNNode() protected DBNNode()
{ {
...@@ -55,17 +55,15 @@ public abstract class DBNNode implements DBPNamedObject, DBPPersistedObject ...@@ -55,17 +55,15 @@ public abstract class DBNNode implements DBPNamedObject, DBPPersistedObject
void dispose(boolean reflect) void dispose(boolean reflect)
{ {
this.parentNode = null;
} }
public DBNNode getParentNode() public DBNModel getModel() {
{ return parentNode == null ? null : parentNode.getModel();
return parentNode;
} }
protected void setParentNode(DBNNode parentNode) public DBNNode getParentNode()
{ {
this.parentNode = parentNode; return parentNode;
} }
public boolean isLocked() public boolean isLocked()
......
...@@ -23,13 +23,12 @@ import org.eclipse.core.resources.IResource; ...@@ -23,13 +23,12 @@ import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IAdaptable;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.DBeaverCore; import org.jkiss.dbeaver.model.DBIcon;
import org.jkiss.dbeaver.model.DBPDataSourceRegistry;
import org.jkiss.dbeaver.model.DBPImage; import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.project.DBPResourceHandler; import org.jkiss.dbeaver.model.project.DBPResourceHandler;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.registry.DataSourceRegistry;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor; import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import org.jkiss.dbeaver.model.DBIcon;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -42,7 +41,7 @@ public class DBNProject extends DBNResource implements IAdaptable ...@@ -42,7 +41,7 @@ public class DBNProject extends DBNResource implements IAdaptable
public DBNProject(DBNNode parentNode, IProject project, DBPResourceHandler handler) public DBNProject(DBNNode parentNode, IProject project, DBPResourceHandler handler)
{ {
super(parentNode, project, handler); super(parentNode, project, handler);
DBeaverCore.getInstance().getProjectRegistry().addProject(project); getModel().getApplication().getProjectManager().addProject(project);
} }
@Override @Override
...@@ -50,7 +49,7 @@ public class DBNProject extends DBNResource implements IAdaptable ...@@ -50,7 +49,7 @@ public class DBNProject extends DBNResource implements IAdaptable
{ {
IProject project = getProject(); IProject project = getProject();
super.dispose(reflect); super.dispose(reflect);
DBeaverCore.getInstance().getProjectRegistry().removeProject(project); getModel().getApplication().getProjectManager().removeProject(project);
} }
public IProject getProject() public IProject getProject()
...@@ -109,7 +108,7 @@ public class DBNProject extends DBNResource implements IAdaptable ...@@ -109,7 +108,7 @@ public class DBNProject extends DBNResource implements IAdaptable
public boolean supportsRename() public boolean supportsRename()
{ {
// Do not rename active projects // Do not rename active projects
return DBeaverCore.getInstance().getProjectRegistry().getActiveProject() != getProject(); return getModel().getApplication().getProjectManager().getActiveProject() != getProject();
} }
@Override @Override
...@@ -134,7 +133,7 @@ public class DBNProject extends DBNResource implements IAdaptable ...@@ -134,7 +133,7 @@ public class DBNProject extends DBNResource implements IAdaptable
throw new DBException("Can't open project '" + getProject().getName() + "'", e); throw new DBException("Can't open project '" + getProject().getName() + "'", e);
} }
} }
DataSourceRegistry dataSourceRegistry = DBeaverCore.getInstance().getProjectRegistry().getDataSourceRegistry(getProject()); DBPDataSourceRegistry dataSourceRegistry = getModel().getApplication().getProjectManager().getDataSourceRegistry(getProject());
List<DBNNode> children = super.readChildNodes(monitor); List<DBNNode> children = super.readChildNodes(monitor);
if (dataSourceRegistry != null) { if (dataSourceRegistry != null) {
children.add(0, new DBNProjectDatabases(this, dataSourceRegistry)); children.add(0, new DBNProjectDatabases(this, dataSourceRegistry));
......
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
package org.jkiss.dbeaver.model.navigator; package org.jkiss.dbeaver.model.navigator;
import org.jkiss.dbeaver.core.CoreMessages; import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI; import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.*; import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
...@@ -160,7 +159,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve ...@@ -160,7 +159,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
public void refreshChildren() public void refreshChildren()
{ {
this.children = null; this.children = null;
DBeaverCore.getInstance().getNavigatorModel().fireNodeUpdate(this, this, DBNEvent.NodeChange.STRUCT_REFRESH); getModel().fireNodeUpdate(this, this, DBNEvent.NodeChange.STRUCT_REFRESH);
} }
@Override @Override
...@@ -202,7 +201,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve ...@@ -202,7 +201,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
dataSources.add(newNode); dataSources.add(newNode);
children = null; children = null;
if (reflect) { if (reflect) {
DBNModel.getInstance().fireNodeEvent(new DBNEvent(this, DBNEvent.Action.ADD, newNode)); getModel().fireNodeEvent(new DBNEvent(this, DBNEvent.Action.ADD, newNode));
} }
return newNode; return newNode;
} }
...@@ -227,12 +226,13 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve ...@@ -227,12 +226,13 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
@Override @Override
public void handleDataSourceEvent(DBPEvent event) public void handleDataSourceEvent(DBPEvent event)
{ {
DBNModel model = getModel();
switch (event.getAction()) { switch (event.getAction()) {
case OBJECT_ADD: case OBJECT_ADD:
if (event.getObject() instanceof DBSDataSourceContainer) { if (event.getObject() instanceof DBSDataSourceContainer) {
addDataSource((DBSDataSourceContainer) event.getObject(), true); addDataSource((DBSDataSourceContainer) event.getObject(), true);
} else if (DBNModel.getInstance().getNodeByObject(event.getObject()) == null) { } else if (model.getNodeByObject(event.getObject()) == null) {
final DBNDatabaseNode parentNode = DBNModel.getInstance().getParentNode(event.getObject()); final DBNDatabaseNode parentNode = model.getParentNode(event.getObject());
if (parentNode != null) { if (parentNode != null) {
if (parentNode.getChildNodes() == null && parentNode.allowsChildren()) { if (parentNode.getChildNodes() == null && parentNode.allowsChildren()) {
...@@ -265,7 +265,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve ...@@ -265,7 +265,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
if (event.getObject() instanceof DBSDataSourceContainer) { if (event.getObject() instanceof DBSDataSourceContainer) {
removeDataSource((DBSDataSourceContainer) event.getObject()); removeDataSource((DBSDataSourceContainer) event.getObject());
} else { } else {
final DBNDatabaseNode node = DBNModel.getInstance().getNodeByObject(event.getObject()); final DBNDatabaseNode node = model.getNodeByObject(event.getObject());
if (node != null && node.getParentNode() instanceof DBNDatabaseNode) { if (node != null && node.getParentNode() instanceof DBNDatabaseNode) {
((DBNDatabaseNode)node.getParentNode()).removeChildItem(event.getObject()); ((DBNDatabaseNode)node.getParentNode()).removeChildItem(event.getObject());
} }
...@@ -274,7 +274,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve ...@@ -274,7 +274,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
case OBJECT_UPDATE: case OBJECT_UPDATE:
case OBJECT_SELECT: case OBJECT_SELECT:
{ {
DBNNode dbmNode = DBNModel.getInstance().getNodeByObject(event.getObject()); DBNNode dbmNode = model.getNodeByObject(event.getObject());
if (dbmNode != null) { if (dbmNode != null) {
DBNEvent.NodeChange nodeChange; DBNEvent.NodeChange nodeChange;
Boolean enabled = null; Boolean enabled = null;
...@@ -292,7 +292,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve ...@@ -292,7 +292,7 @@ public class DBNProjectDatabases extends DBNNode implements DBNContainer, DBPEve
nodeChange = DBNEvent.NodeChange.REFRESH; nodeChange = DBNEvent.NodeChange.REFRESH;
} }
} }
DBNModel.getInstance().fireNodeUpdate( model.fireNodeUpdate(
this, this,
dbmNode, dbmNode,
nodeChange); nodeChange);
......
...@@ -22,7 +22,6 @@ import org.eclipse.core.runtime.CoreException; ...@@ -22,7 +22,6 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor;
import org.jkiss.code.Nullable; import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBIcon; import org.jkiss.dbeaver.model.DBIcon;
import org.jkiss.dbeaver.model.DBPImage; import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.meta.Property; import org.jkiss.dbeaver.model.meta.Property;
...@@ -63,7 +62,7 @@ public class DBNResource extends DBNNode ...@@ -63,7 +62,7 @@ public class DBNResource extends DBNNode
children = null; children = null;
} }
if (reflect) { if (reflect) {
DBNModel.getInstance().fireNodeEvent(new DBNEvent(this, DBNEvent.Action.REMOVE, this)); getModel().fireNodeEvent(new DBNEvent(this, DBNEvent.Action.REMOVE, this));
} }
} }
super.dispose(reflect); super.dispose(reflect);
...@@ -147,7 +146,6 @@ public class DBNResource extends DBNNode ...@@ -147,7 +146,6 @@ public class DBNResource extends DBNNode
protected List<DBNNode> readChildNodes(DBRProgressMonitor monitor) throws DBException protected List<DBNNode> readChildNodes(DBRProgressMonitor monitor) throws DBException
{ {
//final ProjectRegistry projectRegistry = DBeaverCore.getInstance().getProjectRegistry();
List<DBNNode> result = new ArrayList<DBNNode>(); List<DBNNode> result = new ArrayList<DBNNode>();
try { try {
IResource[] members = ((IContainer) resource).members(); IResource[] members = ((IContainer) resource).members();
...@@ -192,7 +190,7 @@ public class DBNResource extends DBNNode ...@@ -192,7 +190,7 @@ public class DBNResource extends DBNNode
// Sub folder // Sub folder
return handler.makeNavigatorNode(this, resource); return handler.makeNavigatorNode(this, resource);
} }
DBPResourceHandler resourceHandler = DBeaverCore.getInstance().getProjectRegistry().getResourceHandler(resource); DBPResourceHandler resourceHandler = getModel().getApplication().getProjectManager().getResourceHandler(resource);
if (resourceHandler == null) { if (resourceHandler == null) {
log.debug("Skip resource '" + resource.getName() + "'"); log.debug("Skip resource '" + resource.getName() + "'");
return null; return null;
...@@ -349,9 +347,10 @@ public class DBNResource extends DBNNode ...@@ -349,9 +347,10 @@ public class DBNResource extends DBNNode
void handleResourceChange(IResourceDelta delta) void handleResourceChange(IResourceDelta delta)
{ {
DBNModel model = getModel();
if (delta.getKind() == IResourceDelta.CHANGED) { if (delta.getKind() == IResourceDelta.CHANGED) {
// Update this node in navigator // Update this node in navigator
DBNModel.getInstance().fireNodeEvent(new DBNEvent(delta, DBNEvent.Action.UPDATE, this)); model.fireNodeEvent(new DBNEvent(delta, DBNEvent.Action.UPDATE, this));
} }
if (children == null) { if (children == null) {
// Child nodes are not yet read so nothing to change here - just return // Child nodes are not yet read so nothing to change here - just return
...@@ -366,7 +365,7 @@ public class DBNResource extends DBNNode ...@@ -366,7 +365,7 @@ public class DBNResource extends DBNNode
if (newChild != null) { if (newChild != null) {
children.add(newChild); children.add(newChild);
sortChildren(children); sortChildren(children);
DBNModel.getInstance().fireNodeEvent(new DBNEvent(childDelta, DBNEvent.Action.ADD, newChild)); model.fireNodeEvent(new DBNEvent(childDelta, DBNEvent.Action.ADD, newChild));
if (childDelta.getKind() == IResourceDelta.CHANGED) { if (childDelta.getKind() == IResourceDelta.CHANGED) {
// Notify just created resource // Notify just created resource
......
...@@ -19,7 +19,6 @@ package org.jkiss.dbeaver.model.navigator; ...@@ -19,7 +19,6 @@ package org.jkiss.dbeaver.model.navigator;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.jkiss.dbeaver.core.CoreMessages; import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBPImage; import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.project.DBPProjectListener; import org.jkiss.dbeaver.model.project.DBPProjectListener;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
...@@ -31,12 +30,14 @@ import java.util.*; ...@@ -31,12 +30,14 @@ import java.util.*;
*/ */
public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener
{ {
private final DBNModel model;
private List<DBNProject> projects = new ArrayList<DBNProject>(); private List<DBNProject> projects = new ArrayList<DBNProject>();
public DBNRoot() public DBNRoot(DBNModel model)
{ {
super(); super();
DBeaverCore.getInstance().getProjectRegistry().addProjectListener(this); this.model = model;
model.getApplication().getProjectManager().addProjectListener(this);
} }
@Override @Override
...@@ -46,7 +47,12 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener ...@@ -46,7 +47,12 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener
project.dispose(reflect); project.dispose(reflect);
} }
projects.clear(); projects.clear();
DBeaverCore.getInstance().getProjectRegistry().removeProjectListener(this); model.getApplication().getProjectManager().removeProjectListener(this);
}
@Override
public DBNModel getModel() {
return model;
} }
@Override @Override
...@@ -130,7 +136,7 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener ...@@ -130,7 +136,7 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener
DBNProject projectNode = new DBNProject( DBNProject projectNode = new DBNProject(
this, this,
project, project,
DBeaverCore.getInstance().getProjectRegistry().getResourceHandler(project)); model.getApplication().getProjectManager().getResourceHandler(project));
projects.add(projectNode); projects.add(projectNode);
Collections.sort(projects, new Comparator<DBNProject>() { Collections.sort(projects, new Comparator<DBNProject>() {
@Override @Override
...@@ -139,7 +145,7 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener ...@@ -139,7 +145,7 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener
return o1.getNodeName().compareTo(o2.getNodeName()); return o1.getNodeName().compareTo(o2.getNodeName());
} }
}); });
DBNModel.getInstance().fireNodeEvent(new DBNEvent(this, DBNEvent.Action.ADD, projectNode)); model.fireNodeEvent(new DBNEvent(this, DBNEvent.Action.ADD, projectNode));
return projectNode; return projectNode;
} }
...@@ -150,7 +156,7 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener ...@@ -150,7 +156,7 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener
DBNProject projectNode = iter.next(); DBNProject projectNode = iter.next();
if (projectNode.getProject() == project) { if (projectNode.getProject() == project) {
iter.remove(); iter.remove();
DBNModel.getInstance().fireNodeEvent(new DBNEvent(this, DBNEvent.Action.REMOVE, projectNode)); model.fireNodeEvent(new DBNEvent(this, DBNEvent.Action.REMOVE, projectNode));
projectNode.dispose(true); projectNode.dispose(true);
break; break;
} }
...@@ -163,10 +169,10 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener ...@@ -163,10 +169,10 @@ public class DBNRoot extends DBNNode implements DBNContainer, DBPProjectListener
DBNProject projectNode = getProject(newValue); DBNProject projectNode = getProject(newValue);
DBNProject oldProjectNode = getProject(oldValue); DBNProject oldProjectNode = getProject(oldValue);
if (projectNode != null) { if (projectNode != null) {
DBNModel.getInstance().fireNodeEvent(new DBNEvent(this, DBNEvent.Action.UPDATE, projectNode)); model.fireNodeEvent(new DBNEvent(this, DBNEvent.Action.UPDATE, projectNode));
} }
if (oldProjectNode != null) { if (oldProjectNode != null) {
DBNModel.getInstance().fireNodeEvent(new DBNEvent(this, DBNEvent.Action.UPDATE, oldProjectNode)); model.fireNodeEvent(new DBNEvent(this, DBNEvent.Action.UPDATE, oldProjectNode));
} }
} }
} }
...@@ -23,6 +23,7 @@ import org.eclipse.core.runtime.*; ...@@ -23,6 +23,7 @@ import org.eclipse.core.runtime.*;
import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Display;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.DBeaverCore; import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBPProjectManager;
import org.jkiss.dbeaver.ui.resources.DefaultResourceHandlerImpl; import org.jkiss.dbeaver.ui.resources.DefaultResourceHandlerImpl;
import org.jkiss.dbeaver.model.project.DBPProjectListener; import org.jkiss.dbeaver.model.project.DBPProjectListener;
import org.jkiss.dbeaver.model.project.DBPResourceHandler; import org.jkiss.dbeaver.model.project.DBPResourceHandler;
...@@ -34,7 +35,7 @@ import org.jkiss.utils.CommonUtils; ...@@ -34,7 +35,7 @@ import org.jkiss.utils.CommonUtils;
import java.util.*; import java.util.*;
public class ProjectRegistry { public class ProjectRegistry implements DBPProjectManager {
static final Log log = Log.getLog(ProjectRegistry.class); static final Log log = Log.getLog(ProjectRegistry.class);
private static final String PROP_PROJECT_ACTIVE = "project.active"; private static final String PROP_PROJECT_ACTIVE = "project.active";
...@@ -153,6 +154,7 @@ public class ProjectRegistry { ...@@ -153,6 +154,7 @@ public class ProjectRegistry {
} }
} }
@Override
public void addProjectListener(DBPProjectListener listener) public void addProjectListener(DBPProjectListener listener)
{ {
synchronized (projectListeners) { synchronized (projectListeners) {
...@@ -160,6 +162,7 @@ public class ProjectRegistry { ...@@ -160,6 +162,7 @@ public class ProjectRegistry {
} }
} }
@Override
public void removeProjectListener(DBPProjectListener listener) public void removeProjectListener(DBPProjectListener listener)
{ {
synchronized (projectListeners) { synchronized (projectListeners) {
...@@ -167,6 +170,7 @@ public class ProjectRegistry { ...@@ -167,6 +170,7 @@ public class ProjectRegistry {
} }
} }
@Override
public DBPResourceHandler getResourceHandler(IResource resource) public DBPResourceHandler getResourceHandler(IResource resource)
{ {
if (resource == null || resource.isHidden() || resource.isPhantom()) { if (resource == null || resource.isHidden() || resource.isPhantom()) {
...@@ -255,6 +259,7 @@ public class ProjectRegistry { ...@@ -255,6 +259,7 @@ public class ProjectRegistry {
return dataSourceRegistry; return dataSourceRegistry;
} }
@Override
public IProject getActiveProject() public IProject getActiveProject()
{ {
return activeProject; return activeProject;
...@@ -319,6 +324,7 @@ public class ProjectRegistry { ...@@ -319,6 +324,7 @@ public class ProjectRegistry {
* Otherwise set of workspace synchronize problems occur * Otherwise set of workspace synchronize problems occur
* @param project project * @param project project
*/ */
@Override
public void addProject(IProject project) public void addProject(IProject project)
{ {
if (busyProjects.contains(project)) { if (busyProjects.contains(project)) {
...@@ -332,6 +338,7 @@ public class ProjectRegistry { ...@@ -332,6 +338,7 @@ public class ProjectRegistry {
projectDatabases.put(project, new DataSourceRegistry(project)); projectDatabases.put(project, new DataSourceRegistry(project));
} }
@Override
public void removeProject(IProject project) public void removeProject(IProject project)
{ {
// Remove project from registry // Remove project from registry
......
...@@ -18,18 +18,17 @@ ...@@ -18,18 +18,17 @@
package org.jkiss.dbeaver.tools.scripts; package org.jkiss.dbeaver.tools.scripts;
import org.jkiss.dbeaver.core.Log;
import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.DBeaverCore; import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.ui.resources.ScriptsHandlerImpl; import org.jkiss.dbeaver.core.Log;
import org.jkiss.dbeaver.model.navigator.DBNModel;
import org.jkiss.dbeaver.model.navigator.DBNNode; import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.navigator.DBNProject; import org.jkiss.dbeaver.model.navigator.DBNProject;
import org.jkiss.dbeaver.model.navigator.DBNResource; import org.jkiss.dbeaver.model.navigator.DBNResource;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor; import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import org.jkiss.dbeaver.ui.resources.ScriptsHandlerImpl;
/** /**
* Utils * Utils
...@@ -42,7 +41,7 @@ class ScriptsExportUtils { ...@@ -42,7 +41,7 @@ class ScriptsExportUtils {
{ {
final IProject activeProject = DBeaverCore.getInstance().getProjectRegistry().getActiveProject(); final IProject activeProject = DBeaverCore.getInstance().getProjectRegistry().getActiveProject();
if (activeProject == null) { if (activeProject == null) {
return DBNModel.getInstance().getRoot(); return DBeaverCore.getInstance().getNavigatorModel().getRoot();
} }
final DBNProject projectNode = DBeaverCore.getInstance().getNavigatorModel().getRoot().getProject(activeProject); final DBNProject projectNode = DBeaverCore.getInstance().getNavigatorModel().getRoot().getProject(activeProject);
DBNNode scriptsNode = projectNode; DBNNode scriptsNode = projectNode;
......
...@@ -21,10 +21,10 @@ import org.eclipse.jface.text.IRegion; ...@@ -21,10 +21,10 @@ import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.hyperlink.IHyperlink; import org.eclipse.jface.text.hyperlink.IHyperlink;
import org.eclipse.ui.PlatformUI; import org.eclipse.ui.PlatformUI;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI; import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBUtils; import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode; import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
import org.jkiss.dbeaver.model.navigator.DBNModel;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress; import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress;
import org.jkiss.dbeaver.model.struct.DBSObject; import org.jkiss.dbeaver.model.struct.DBSObject;
...@@ -111,7 +111,7 @@ public class EntityHyperlink implements IHyperlink ...@@ -111,7 +111,7 @@ public class EntityHyperlink implements IHyperlink
monitor.beginTask("Resolve object " + reference.getName(), 1); monitor.beginTask("Resolve object " + reference.getName(), 1);
try { try {
DBSObject object = reference.resolveObject(monitor); DBSObject object = reference.resolveObject(monitor);
node = DBNModel.getInstance().getNodeByObject(monitor, object, true); node = DBeaverCore.getInstance().getNavigatorModel().getNodeByObject(monitor, object, true);
} catch (DBException e) { } catch (DBException e) {
throw new InvocationTargetException(e); throw new InvocationTargetException(e);
} finally { } finally {
......
...@@ -19,11 +19,11 @@ package org.jkiss.dbeaver.ui.search; ...@@ -19,11 +19,11 @@ package org.jkiss.dbeaver.ui.search;
import org.eclipse.jface.dialogs.DialogPage; import org.eclipse.jface.dialogs.DialogPage;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI; import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.core.Log; import org.jkiss.dbeaver.core.Log;
import org.jkiss.dbeaver.model.DBPPreferenceStore; import org.jkiss.dbeaver.model.DBPPreferenceStore;
import org.jkiss.dbeaver.model.navigator.DBNDataSource; import org.jkiss.dbeaver.model.navigator.DBNDataSource;
import org.jkiss.dbeaver.model.navigator.DBNModel;
import org.jkiss.dbeaver.model.navigator.DBNNode; import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress; import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress;
...@@ -77,12 +77,12 @@ public abstract class AbstractSearchPage extends DialogPage implements IObjectSe ...@@ -77,12 +77,12 @@ public abstract class AbstractSearchPage extends DialogPage implements IObjectSe
while (st.hasMoreTokens()) { while (st.hasMoreTokens()) {
String nodePath = st.nextToken(); String nodePath = st.nextToken();
try { try {
DBNDataSource dsNode = DBNModel.getInstance().getDataSourceByPath(nodePath); DBNDataSource dsNode = DBeaverCore.getInstance().getNavigatorModel().getDataSourceByPath(nodePath);
if (brokenDataSources.contains(dsNode)) { if (brokenDataSources.contains(dsNode)) {
continue; continue;
} }
DBNNode node = DBNModel.getInstance().getNodeByPath(monitor, nodePath); DBNNode node = DBeaverCore.getInstance().getNavigatorModel().getNodeByPath(monitor, nodePath);
if (node != null) { if (node != null) {
result.add(node); result.add(node);
} else { } else {
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
*/ */
package org.jkiss.dbeaver.ui.search.data; package org.jkiss.dbeaver.ui.search.data;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.Log; import org.jkiss.dbeaver.core.Log;
import org.jkiss.code.NotNull; import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
...@@ -71,7 +72,7 @@ public class SearchDataQuery implements IObjectSearchQuery { ...@@ -71,7 +72,7 @@ public class SearchDataQuery implements IObjectSearchQuery {
} }
// Search // Search
DBNModel dbnModel = DBNModel.getInstance(); DBNModel dbnModel = DBeaverCore.getInstance().getNavigatorModel();
monitor.beginTask( monitor.beginTask(
"Search \"" + searchString + "\" in " + params.sources.size() + " table(s) / " + dataSources.size() + " database(s)", "Search \"" + searchString + "\" in " + params.sources.size() + " table(s) / " + dataSources.size() + " database(s)",
......
...@@ -66,7 +66,7 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen ...@@ -66,7 +66,7 @@ public class DatabaseNavigatorTree extends Composite implements INavigatorListen
{ {
super(parent, SWT.NONE); super(parent, SWT.NONE);
this.setLayout(new FillLayout()); this.setLayout(new FillLayout());
this.model = DBNModel.getInstance(); this.model = DBeaverCore.getInstance().getNavigatorModel();
this.model.addListener(this); this.model.addListener(this);
addDisposeListener(new DisposeListener() { addDisposeListener(new DisposeListener() {
@Override @Override
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册