diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/ui/editors/PostgresRolePrivilegesEditor.java b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/ui/editors/PostgresRolePrivilegesEditor.java index aa878ca3d5f0cbc6d2e501b74b24e0dd10fbc231..1bd00df9c0ce4a23744ad5aec36ccf95a8df960f 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/ui/editors/PostgresRolePrivilegesEditor.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/ui/editors/PostgresRolePrivilegesEditor.java @@ -31,10 +31,10 @@ import org.eclipse.swt.graphics.Font; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowLayout; -import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; +import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IWorkbenchCommandConstants; import org.eclipse.ui.IWorkbenchSite; import org.jkiss.dbeaver.DBException; @@ -62,6 +62,7 @@ import org.jkiss.dbeaver.ui.navigator.NavigatorUtils; import org.jkiss.dbeaver.ui.navigator.database.DatabaseNavigatorLabelProvider; import org.jkiss.dbeaver.ui.navigator.database.DatabaseNavigatorTree; import org.jkiss.dbeaver.ui.navigator.database.DatabaseNavigatorTreeFilter; +import org.jkiss.utils.CommonUtils; import java.lang.reflect.InvocationTargetException; import java.util.*; @@ -80,6 +81,7 @@ public class PostgresRolePrivilegesEditor extends AbstractDatabaseObjectEditor
permissionMap = new HashMap<>(); + private Text objectDescriptionText; public void createPartControl(Composite parent) { this.pageControl = new PageControl(parent); @@ -87,7 +89,7 @@ public class PostgresRolePrivilegesEditor extends AbstractDatabaseObjectEditor
{
- DBSObject selectedObject = NavigatorUtils.getSelectedObject(treeViewer.getSelection());
- if (selectedObject == null) {
- updateObjectPermissions(null, null);
+ List objects) {
+ boolean hasBadObjects = CommonUtils.isEmpty(objects);
+ StringBuilder objectNames = new StringBuilder();
+ if (!hasBadObjects) {
+ for (DBSObject object : objects) {
+ if (!(object instanceof PostgreTableBase) && !(object instanceof PostgreRole)) {
+ hasBadObjects = true;
+ break;
+ }
+ if (objectNames.length() > 0) objectNames.append(", ");
+ objectNames.append(DBUtils.getObjectFullName(object.getDataSource(), object, DBPEvaluationContext.DML));
+ }
+ }
+ if (hasBadObjects) {
+ objectDescriptionText.setText(" {
- updateObjectPermissions(null, null);
+ updateObjectPermissions(null);
});
activatePart();
}