mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
CB-1240 Object rename + delete feature in nav node
This commit is contained in:
@@ -45,7 +45,8 @@ type DatabaseObjectInfo {
|
||||
uniqueName: String
|
||||
state: String
|
||||
|
||||
# Features: script, scriptExtended, dataContainer, dataManipulator, entity, schema, catalog
|
||||
# Features: script, scriptExtended, dataContainer, dataManipulator,
|
||||
# entity, schema, catalog
|
||||
features: [ String! ]
|
||||
|
||||
# Supported editors: ddl, permissions, sourceDeclaration, sourceDefinition
|
||||
@@ -70,6 +71,7 @@ type NavigatorNodeInfo {
|
||||
object: DatabaseObjectInfo
|
||||
|
||||
# Supported features: item, container, leaf
|
||||
# canDelete, canRename
|
||||
features: [ String! ]
|
||||
|
||||
# Object detailed info.
|
||||
|
||||
+16
@@ -23,12 +23,15 @@ import io.cloudbeaver.model.session.WebSession;
|
||||
import org.jkiss.dbeaver.DBException;
|
||||
import org.jkiss.dbeaver.model.DBPObject;
|
||||
import org.jkiss.dbeaver.model.DBPObjectWithDetails;
|
||||
import org.jkiss.dbeaver.model.edit.DBEObjectMaker;
|
||||
import org.jkiss.dbeaver.model.edit.DBEObjectRenamer;
|
||||
import org.jkiss.dbeaver.model.meta.Association;
|
||||
import org.jkiss.dbeaver.model.meta.Property;
|
||||
import org.jkiss.dbeaver.model.navigator.*;
|
||||
import org.jkiss.dbeaver.model.struct.DBSEntity;
|
||||
import org.jkiss.dbeaver.model.struct.DBSObject;
|
||||
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedure;
|
||||
import org.jkiss.dbeaver.runtime.DBWorkbench;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -127,6 +130,19 @@ public class WebNavigatorNodeInfo {
|
||||
if (isShared) {
|
||||
features.add("shared");
|
||||
}
|
||||
|
||||
if (node instanceof DBNDatabaseNode) {
|
||||
DBSObject object = ((DBNDatabaseNode) node).getObject();
|
||||
DBEObjectMaker objectManager = DBWorkbench.getPlatform().getEditorsRegistry().getObjectManager(
|
||||
object.getClass(), DBEObjectMaker.class);
|
||||
if (objectManager != null && objectManager.canDeleteObject(object.getParentObject())) {
|
||||
features.add("canDelete");
|
||||
}
|
||||
if (objectManager instanceof DBEObjectRenamer && ((DBEObjectRenamer) objectManager).canRenameObject(object)) {
|
||||
features.add("canRename");
|
||||
}
|
||||
}
|
||||
|
||||
return features.toArray(new String[0]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user