diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ItemListControl.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ItemListControl.java index d5387c75ac5df0e2ad1f85f3ed480278a970c419..465cea38bf96e99ebfc30428307f88d18f7cbcb6 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ItemListControl.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ItemListControl.java @@ -43,6 +43,7 @@ import org.jkiss.dbeaver.runtime.properties.ObjectPropertyDescriptor; import org.jkiss.dbeaver.runtime.ui.DBUserInterface; import org.jkiss.dbeaver.ui.*; import org.jkiss.dbeaver.ui.actions.navigator.NavigatorHandlerFilterConfig; +import org.jkiss.dbeaver.ui.editors.DatabaseEditorUtils; import org.jkiss.dbeaver.ui.editors.entity.EntityEditor; import org.jkiss.dbeaver.ui.navigator.NavigatorUtils; import org.jkiss.utils.ArrayUtils; @@ -140,20 +141,7 @@ public class ItemListControl extends NodeListControl final MultiPageEditorPart editor = ((MultiPageEditorSite) workbenchSite).getMultiPageEditor(); if (editor instanceof EntityEditor) { contributionManager.add(new Separator()); - contributionManager.add(ActionUtils.makeCommandContribution( - workbenchSite, - IWorkbenchCommandConstants.FILE_SAVE, - null, - UIIcon.SAVE, - null, - true)); - contributionManager.add(ActionUtils.makeCommandContribution( - workbenchSite, - IWorkbenchCommandConstants.FILE_REVERT, - null, - UIIcon.RESET, - null, - true)); + DatabaseEditorUtils.contributeStandardEditorActions(workbenchSite, contributionManager); } } } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorUtils.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorUtils.java index fa052cf4664e9453131033179485076bfd1df474..42da0cdde3747bc0b2e3ba862932ba713570bae8 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorUtils.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorUtils.java @@ -16,15 +16,36 @@ */ package org.jkiss.dbeaver.ui.editors; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IContributionManager; +import org.eclipse.jface.action.Separator; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IWorkbenchCommandConstants; +import org.eclipse.ui.IWorkbenchSite; +import org.eclipse.ui.part.MultiPageEditorPart; +import org.eclipse.ui.part.MultiPageEditorSite; +import org.jkiss.dbeaver.core.CoreCommands; +import org.jkiss.dbeaver.core.CoreMessages; import org.jkiss.dbeaver.model.DBPContextProvider; import org.jkiss.dbeaver.model.DBPDataSourceContainer; import org.jkiss.dbeaver.model.IDataSourceContainerProvider; +import org.jkiss.dbeaver.model.edit.DBEObjectReorderer; import org.jkiss.dbeaver.model.exec.DBCExecutionContext; +import org.jkiss.dbeaver.model.navigator.DBNDatabaseFolder; +import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode; +import org.jkiss.dbeaver.model.navigator.DBNNode; +import org.jkiss.dbeaver.registry.editor.EntityEditorsRegistry; +import org.jkiss.dbeaver.ui.ActionUtils; +import org.jkiss.dbeaver.ui.DBeaverIcons; +import org.jkiss.dbeaver.ui.UIIcon; import org.jkiss.dbeaver.ui.UIUtils; +import org.jkiss.dbeaver.ui.actions.navigator.NavigatorHandlerFilterConfig; +import org.jkiss.dbeaver.ui.editors.entity.EntityEditor; + +import java.util.List; /** * DB editor utils @@ -66,4 +87,22 @@ public class DatabaseEditorUtils { } } + public static void contributeStandardEditorActions(IWorkbenchSite workbenchSite, IContributionManager contributionManager) + { + contributionManager.add(ActionUtils.makeCommandContribution( + workbenchSite, + IWorkbenchCommandConstants.FILE_SAVE, + null, + UIIcon.SAVE, + null, + true)); + contributionManager.add(ActionUtils.makeCommandContribution( + workbenchSite, + IWorkbenchCommandConstants.FILE_REVERT, + null, + UIIcon.RESET, + null, + true)); + } + } 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 51095a5383103acdd0f17104605e112927ad4b73..a31c1f7d1c10654c60c4acf416f9c30890478711 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 @@ -16,9 +16,7 @@ */ package org.jkiss.dbeaver.ext.postgresql.ui.editors; -import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IContributionManager; -import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; @@ -31,8 +29,10 @@ import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; 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.Menu; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; import org.eclipse.ui.IWorkbenchCommandConstants; @@ -41,7 +41,6 @@ import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.core.DBeaverCore; import org.jkiss.dbeaver.core.DBeaverUI; import org.jkiss.dbeaver.ext.postgresql.model.*; -import org.jkiss.dbeaver.model.DBIcon; import org.jkiss.dbeaver.model.DBPEvaluationContext; import org.jkiss.dbeaver.model.DBUtils; import org.jkiss.dbeaver.model.navigator.DBNDatabaseFolder; @@ -53,10 +52,10 @@ import org.jkiss.dbeaver.model.runtime.load.DatabaseLoadService; import org.jkiss.dbeaver.model.struct.DBSObject; import org.jkiss.dbeaver.ui.ActionUtils; import org.jkiss.dbeaver.ui.LoadingJob; -import org.jkiss.dbeaver.ui.UIIcon; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.controls.ProgressPageControl; import org.jkiss.dbeaver.ui.editors.AbstractDatabaseObjectEditor; +import org.jkiss.dbeaver.ui.editors.DatabaseEditorUtils; import org.jkiss.dbeaver.ui.navigator.NavigatorUtils; import org.jkiss.dbeaver.ui.navigator.database.DatabaseNavigatorLabelProvider; import org.jkiss.dbeaver.ui.navigator.database.DatabaseNavigatorTree; @@ -77,8 +76,6 @@ public class PostgresRolePrivilegesEditor extends AbstractDatabaseObjectEditor

{ - manager.add(actionGrant); - manager.add(actionRevoke); - }); - - menuMgr.setRemoveAllWhenShown(true); - Menu menu = menuMgr.createContextMenu(roleOrObjectTable); - roleOrObjectTable.setMenu(menu); - } -*/ - // Register objects context menu - { - MenuManager menuMgr = new MenuManager(); - menuMgr.addMenuListener(manager -> { - manager.add(actionCheckAll); - manager.add(actionCheckNone); - }); - - menuMgr.setRemoveAllWhenShown(true); - Menu menu = menuMgr.createContextMenu(permissionTable); - permissionTable.setMenu(menu); - } - } - - private void openPermObject() { - DBSObject selectedObject = NavigatorUtils.getSelectedObject(roleOrObjectTable.getViewer().getSelection()); - if (selectedObject == null) { - updateObjectPermissions(null, null); - } else { - PostgrePermission permission = permissionMap.get(selectedObject); - updateObjectPermissions(permission, selectedObject); - } - -/* - new AbstractJob("Open target object") { - @Override - protected IStatus run(DBRProgressMonitor monitor) { - try { - final PostgreObject targetObject = permission.getTargetObject(monitor); - if (targetObject != null) { - DBeaverUI.syncExec(() -> NavigatorHandlerObjectOpen.openEntityEditor(targetObject)); - } - } catch (DBException e) { - return GeneralUtils.makeExceptionStatus(e); - } - return Status.OK_STATUS; - } - }.schedule(); -*/ - } - private void updateObjectPermissions(PostgrePermission data, DBSObject curObject) { this.currentPermission = data; if (curObject instanceof PostgreTableBase || curObject instanceof PostgreRole) { @@ -341,8 +292,6 @@ public class PostgresRolePrivilegesEditor extends AbstractDatabaseObjectEditor