CB-1240 Object rename + delete feature in nav node

This commit is contained in:
Serge Rider
2021-09-09 10:28:45 +03:00
parent 8525dc2c2f
commit 117e40bbf6
2 changed files with 19 additions and 1 deletions
@@ -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.
@@ -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]);
}