use of org.jkiss.dbeaver.model.connection.DBPEditorContribution in project dbeaver by serge-rider.
the class DBXTreeFolder method getChildren.
@NotNull
@Override
public List<DBXTreeNode> getChildren(DBNNode context) {
List<DBXTreeNode> children = super.getChildren(context);
if (!CommonUtils.isEmpty(contributedCategories) && context instanceof DBNDatabaseNode) {
// Add contributed editors
List<DBXTreeNode> childrenWithContributions = new ArrayList<>(children);
DBPDataSourceProviderRegistry dspRegistry = DBWorkbench.getPlatform().getDataSourceProviderRegistry();
DBPDataSourceContainer dataSource = ((DBNDatabaseNode) context).getDataSourceContainer();
for (String category : contributedCategories) {
DBPEditorContribution[] editors = dspRegistry.getContributedEditors(category, dataSource);
for (DBPEditorContribution editor : editors) {
DBXTreeObject editorNode = new DBXTreeObject(getSource(), // No parent - otherwise we'll have dups after each call
null, null, null, editor.getLabel(), editor.getDescription(), editor.getEditorId());
editorNode.setDefaultIcon(editor.getIcon());
childrenWithContributions.add(editorNode);
}
}
return childrenWithContributions;
}
return children;
}
use of org.jkiss.dbeaver.model.connection.DBPEditorContribution in project dbeaver by serge-rider.
the class DataSourceToolsContributor method fillContributionItems.
@Override
protected void fillContributionItems(List<IContributionItem> menuItems) {
IWorkbenchPage activePage = UIUtils.getActiveWorkbenchWindow().getActivePage();
IWorkbenchPart activePart = activePage.getActivePart();
if (activePart == null) {
return;
}
DBSObject selectedObject = null;
INavigatorModelView navigatorModelView = GeneralUtils.adapt(activePart, INavigatorModelView.class);
if (navigatorModelView != null) {
final ISelectionProvider selectionProvider = activePart.getSite().getSelectionProvider();
if (selectionProvider != null) {
ISelection selection = selectionProvider.getSelection();
if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
selectedObject = RuntimeUtils.getObjectAdapter(((IStructuredSelection) selection).getFirstElement(), DBSObject.class);
List<ToolDescriptor> tools = getAvailableTools((IStructuredSelection) selection);
fillToolsMenu(menuItems, tools, selection);
}
}
} else if (activePart instanceof IEditorPart) {
IEditorInput editorInput = ((IEditorPart) activePart).getEditorInput();
if (editorInput instanceof IDatabaseEditorInput) {
selectedObject = ((IDatabaseEditorInput) editorInput).getDatabaseObject();
} else if (activePart instanceof IDataSourceContainerProvider) {
selectedObject = ((IDataSourceContainerProvider) activePart).getDataSourceContainer();
}
}
if (selectedObject != null) {
// Contribute standard tools like session manager
DBPDataSource dataSource = selectedObject.getDataSource();
if (dataSource != null) {
DBPDataSourceContainer dataSourceContainer = dataSource.getContainer();
DBPEditorContribution[] contributedEditors = DBWorkbench.getPlatform().getDataSourceProviderRegistry().getContributedEditors(DBPEditorContribution.MB_CONNECTION_EDITOR, dataSourceContainer);
if (contributedEditors.length > 0) {
menuItems.add(new Separator());
for (DBPEditorContribution ec : contributedEditors) {
menuItems.add(new ActionContributionItem(new OpenToolsEditorAction(activePage, dataSource, ec)));
}
}
}
}
// Tasks management
{
menuItems.add(new Separator());
menuItems.add(ActionUtils.makeCommandContribution(activePart.getSite(), DatabaseTasksView.CREATE_TASK_CMD_ID));
}
}
use of org.jkiss.dbeaver.model.connection.DBPEditorContribution in project dbeaver by dbeaver.
the class DBXTreeFolder method getChildren.
@NotNull
@Override
public List<DBXTreeNode> getChildren(DBNNode context) {
List<DBXTreeNode> children = super.getChildren(context);
if (!CommonUtils.isEmpty(contributedCategories) && context instanceof DBNDatabaseNode) {
// Add contributed editors
List<DBXTreeNode> childrenWithContributions = new ArrayList<>(children);
DBPDataSourceProviderRegistry dspRegistry = DBWorkbench.getPlatform().getDataSourceProviderRegistry();
DBPDataSourceContainer dataSource = ((DBNDatabaseNode) context).getDataSourceContainer();
for (String category : contributedCategories) {
DBPEditorContribution[] editors = dspRegistry.getContributedEditors(category, dataSource);
for (DBPEditorContribution editor : editors) {
DBXTreeObject editorNode = new DBXTreeObject(getSource(), // No parent - otherwise we'll have dups after each call
null, null, null, editor.getLabel(), editor.getDescription(), editor.getEditorId());
editorNode.setDefaultIcon(editor.getIcon());
childrenWithContributions.add(editorNode);
}
}
return childrenWithContributions;
}
return children;
}
use of org.jkiss.dbeaver.model.connection.DBPEditorContribution in project dbeaver by dbeaver.
the class DataSourceToolsContributor method fillContributionItems.
@Override
protected void fillContributionItems(List<IContributionItem> menuItems) {
IWorkbenchPage activePage = UIUtils.getActiveWorkbenchWindow().getActivePage();
IWorkbenchPart activePart = activePage.getActivePart();
if (activePart == null) {
return;
}
DBSObject selectedObject = null;
INavigatorModelView navigatorModelView = GeneralUtils.adapt(activePart, INavigatorModelView.class);
if (navigatorModelView != null) {
final ISelectionProvider selectionProvider = activePart.getSite().getSelectionProvider();
if (selectionProvider != null) {
ISelection selection = selectionProvider.getSelection();
if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
selectedObject = RuntimeUtils.getObjectAdapter(((IStructuredSelection) selection).getFirstElement(), DBSObject.class);
List<ToolDescriptor> tools = getAvailableTools((IStructuredSelection) selection);
fillToolsMenu(menuItems, tools, selection);
}
}
} else if (activePart instanceof IEditorPart) {
IEditorInput editorInput = ((IEditorPart) activePart).getEditorInput();
if (editorInput instanceof IDatabaseEditorInput) {
selectedObject = ((IDatabaseEditorInput) editorInput).getDatabaseObject();
} else if (activePart instanceof IDataSourceContainerProvider) {
selectedObject = ((IDataSourceContainerProvider) activePart).getDataSourceContainer();
}
}
if (selectedObject != null) {
// Contribute standard tools like session manager
DBPDataSource dataSource = selectedObject.getDataSource();
if (dataSource != null) {
DBPDataSourceContainer dataSourceContainer = dataSource.getContainer();
DBPEditorContribution[] contributedEditors = DBWorkbench.getPlatform().getDataSourceProviderRegistry().getContributedEditors(DBPEditorContribution.MB_CONNECTION_EDITOR, dataSourceContainer);
if (contributedEditors.length > 0) {
menuItems.add(new Separator());
for (DBPEditorContribution ec : contributedEditors) {
menuItems.add(new ActionContributionItem(new OpenToolsEditorAction(activePage, dataSource, ec)));
}
}
}
}
// Tasks management
{
menuItems.add(new Separator());
menuItems.add(ActionUtils.makeCommandContribution(activePart.getSite(), DatabaseTasksView.CREATE_TASK_CMD_ID));
}
}
Aggregations