提交 cbde3387 编写于 作者: J jurgen

Navigator model cleanup

Former-commit-id: e551ef60
上级 7b145148
......@@ -32,7 +32,6 @@ import org.jkiss.dbeaver.model.struct.DBSDataSourceContainer;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.jkiss.dbeaver.registry.tree.DBXTreeNode;
import org.jkiss.dbeaver.ui.NavigatorUtils;
import org.jkiss.dbeaver.ui.actions.datasource.DataSourceConnectHandler;
import org.jkiss.utils.CommonUtils;
......@@ -43,7 +42,7 @@ import java.util.Collection;
*/
public class DBNDataSource extends DBNDatabaseNode implements IAdaptable
{
private DataSourceDescriptor dataSource;
private final DataSourceDescriptor dataSource;
private DBXTreeNode treeRoot;
public DBNDataSource(DBNNode parentNode, DataSourceDescriptor dataSource)
......@@ -57,7 +56,7 @@ public class DBNDataSource extends DBNDatabaseNode implements IAdaptable
@Override
public DBNNode getParentNode()
{
String folderPath = dataSource == null ? null : dataSource.getFolderPath();
String folderPath = dataSource.getFolderPath();
if (!CommonUtils.isEmpty(folderPath)) {
DBNLocalFolder localFolder = ((DBNProjectDatabases) super.getParentNode()).getLocalFolder(folderPath);
if (localFolder != null) {
......@@ -72,7 +71,6 @@ public class DBNDataSource extends DBNDatabaseNode implements IAdaptable
{
DBNModel.getInstance().removeNode(this, reflect);
this.dataSource = null;
super.dispose(reflect);
}
......@@ -120,7 +118,7 @@ public class DBNDataSource extends DBNDatabaseNode implements IAdaptable
@Override
protected void reloadObject(DBRProgressMonitor monitor, DBSObject object) {
dataSource = (DataSourceDescriptor) object;
}
@Override
......@@ -219,18 +217,18 @@ public class DBNDataSource extends DBNDatabaseNode implements IAdaptable
@Override
public void dropNodes(Collection<DBNNode> nodes) throws DBException
{
String folderPath = getDataSourceContainer().getFolderPath();
String folderPath = dataSource.getFolderPath();
for (DBNNode node : nodes) {
if (node instanceof DBNDataSource) {
((DBNDataSource) node).setFolderPath(folderPath);
}
}
NavigatorUtils.updateConfigAndRefreshDatabases(this);
DBNModel.updateConfigAndRefreshDatabases(this);
}
public void setFolderPath(String folder)
{
getDataSourceContainer().setFolderPath(folder);
dataSource.setFolderPath(folder);
}
public DBNNode refreshNode(DBRProgressMonitor monitor, Object source) throws DBException
......
......@@ -18,7 +18,6 @@
package org.jkiss.dbeaver.model.navigator;
import org.eclipse.core.runtime.Status;
import org.eclipse.ui.IActionFilter;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.CoreMessages;
......@@ -46,7 +45,7 @@ import java.util.*;
/**
* DBNDatabaseNode
*/
public abstract class DBNDatabaseNode extends DBNNode implements IActionFilter, DBSWrapper, DBPContextProvider, IDataSourceContainerProvider {
public abstract class DBNDatabaseNode extends DBNNode implements DBSWrapper, DBPContextProvider, IDataSourceContainerProvider {
private volatile boolean locked;
protected volatile List<DBNDatabaseNode> childNodes;
......@@ -233,16 +232,6 @@ public abstract class DBNDatabaseNode extends DBNNode implements IActionFilter,
return true;
}
/*
@Override
public boolean supportsRename()
{
final DBSObject object = getObject();
return !(object == null || !object.isPersisted()) &&
DBeaverCore.getInstance().getEditorsRegistry().getObjectManager(object.getClass(), DBEObjectRenamer.class) != null;
}
*/
/**
* Refreshes node.
* If refresh cannot be done in this level then refreshes parent node.
......@@ -582,21 +571,6 @@ public abstract class DBNDatabaseNode extends DBNNode implements IActionFilter,
}
}
@Override
public boolean testAttribute(Object target, String name, String value) {
if (getObject() != null) {
if (name.equals("targetType")) { //$NON-NLS-1$
try {
Class<?> targetClass = Class.forName(value);
return targetClass.isAssignableFrom(getObject().getClass());
} catch (ClassNotFoundException e) {
log.warn("Unknown target type: " + value); //$NON-NLS-1$
}
}
}
return false;
}
private static boolean equalObjects(DBSObject object1, DBSObject object2) {
if (object1 == object2) {
return true;
......
......@@ -17,10 +17,7 @@
*/
package org.jkiss.dbeaver.model.navigator;
import org.eclipse.ui.IEditorDescriptor;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.meta.Property;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
......@@ -35,14 +32,12 @@ import org.jkiss.utils.CommonUtils;
public class DBNDatabaseObject extends DBNDatabaseNode implements DBSObject
{
private DBXTreeObject meta;
private IEditorDescriptor editorDescriptor;
DBNDatabaseObject(DBNNode parent, DBXTreeObject meta)
{
super(parent);
this.meta = meta;
DBNModel.getInstance().addNode(this);
this.editorDescriptor = DBeaverUI.getActiveWorkbenchWindow().getWorkbench().getEditorRegistry().findEditor(meta.getEditorId());
}
@Override
......@@ -52,11 +47,6 @@ public class DBNDatabaseObject extends DBNDatabaseNode implements DBSObject
super.dispose(reflect);
}
public IEditorDescriptor getEditorDescriptor()
{
return editorDescriptor;
}
@Override
public DBXTreeObject getMeta()
{
......
......@@ -23,7 +23,6 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.jkiss.dbeaver.model.DBIcon;
import org.jkiss.dbeaver.ui.NavigatorUtils;
import org.jkiss.utils.CommonUtils;
import java.util.ArrayList;
......@@ -135,7 +134,7 @@ public class DBNLocalFolder extends DBNNode implements DBNContainer
((DBNDataSource) node).setFolderPath(getName());
}
}
NavigatorUtils.updateConfigAndRefreshDatabases(this);
DBNModel.updateConfigAndRefreshDatabases(this);
}
@Override
......@@ -155,6 +154,6 @@ public class DBNLocalFolder extends DBNNode implements DBNContainer
dataSource.setFolderPath(newName);
}
name = newName;
NavigatorUtils.updateConfigAndRefreshDatabases(this);
DBNModel.updateConfigAndRefreshDatabases(this);
}
}
......@@ -494,6 +494,18 @@ public class DBNModel implements IResourceChangeListener {
return new DBIconComposite(image, false, null, null, null, overlayImage);
}
public static void updateConfigAndRefreshDatabases(DBNNode node)
{
for (DBNNode parentNode = node.getParentNode(); parentNode != null; parentNode = parentNode.getParentNode()) {
if (parentNode instanceof DBNProjectDatabases) {
DBNProjectDatabases projectDatabases = (DBNProjectDatabases) parentNode;
projectDatabases.getDataSourceRegistry().flushConfig();
projectDatabases.refreshChildren();
break;
}
}
}
private static ProjectRegistry getProjectRegistry() {
return DBeaverCore.getInstance().getProjectRegistry();
}
......
......@@ -423,15 +423,4 @@ public class NavigatorUtils {
return false;
}
public static void updateConfigAndRefreshDatabases(DBNNode node)
{
for (DBNNode parentNode = node.getParentNode(); parentNode != null; parentNode = parentNode.getParentNode()) {
if (parentNode instanceof DBNProjectDatabases) {
DBNProjectDatabases projectDatabases = (DBNProjectDatabases) parentNode;
projectDatabases.getDataSourceRegistry().flushConfig();
projectDatabases.refreshChildren();
break;
}
}
}
}
......@@ -25,7 +25,6 @@ import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.handlers.HandlerUtil;
import org.jkiss.dbeaver.model.navigator.*;
import org.jkiss.dbeaver.ui.NavigatorUtils;
import org.jkiss.dbeaver.ui.dialogs.EnterNameDialog;
import org.jkiss.utils.CommonUtils;
......@@ -70,7 +69,7 @@ public class NavigatorHandlerLocalFolderCreate extends AbstractHandler {
for (DBNDataSource node : nodes) {
node.setFolderPath(newName);
}
NavigatorUtils.updateConfigAndRefreshDatabases(nodes.iterator().next());
DBNModel.updateConfigAndRefreshDatabases(nodes.iterator().next());
return true;
}
......
......@@ -102,7 +102,7 @@ public class NavigatorHandlerObjectDelete extends NavigatorHandlerObjectBase imp
for (DBNDataSource dataSource : dataSources) {
dataSource.setFolderPath(null);
}
NavigatorUtils.updateConfigAndRefreshDatabases(localFolder);
DBNModel.updateConfigAndRefreshDatabases(localFolder);
}
private boolean deleteResource(IWorkbenchWindow workbenchWindow, final DBNResource resourceNode)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册