use of org.eclipse.jface.viewers.ISelectionProvider in project dbeaver by serge-rider.
the class CompileHandler method updateElement.
@Override
public void updateElement(UIElement element, Map parameters) {
List<OracleSourceObject> objects = new ArrayList<>();
IWorkbenchPartSite partSite = UIUtils.getWorkbenchPartSite(element.getServiceLocator());
if (partSite != null) {
final ISelectionProvider selectionProvider = partSite.getSelectionProvider();
if (selectionProvider != null) {
ISelection selection = selectionProvider.getSelection();
if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
for (Iterator<?> iter = ((IStructuredSelection) selection).iterator(); iter.hasNext(); ) {
final Object item = iter.next();
final OracleSourceObject sourceObject = RuntimeUtils.getObjectAdapter(item, OracleSourceObject.class);
if (sourceObject != null) {
objects.add(sourceObject);
}
}
}
}
if (objects.isEmpty()) {
final IWorkbenchPart activePart = partSite.getPart();
final OracleSourceObject sourceObject = RuntimeUtils.getObjectAdapter(activePart, OracleSourceObject.class);
if (sourceObject != null) {
objects.add(sourceObject);
}
}
}
if (!objects.isEmpty()) {
if (objects.size() > 1) {
element.setText("Compile " + objects.size() + " objects");
} else {
final OracleSourceObject sourceObject = objects.get(0);
String objectType = TextUtils.formatWord(sourceObject.getSourceType().name());
element.setText("Compile " + objectType);
}
}
}
use of org.eclipse.jface.viewers.ISelectionProvider in project dbeaver by serge-rider.
the class NavigatorHandlerObjectOpen method updateElement.
@Override
public void updateElement(UIElement element, Map parameters) {
if (!updateUI) {
return;
}
final ISelectionProvider selectionProvider = UIUtils.getSelectionProvider(element.getServiceLocator());
if (selectionProvider != null) {
ISelection selection = selectionProvider.getSelection();
DBNNode node = NavigatorUtils.getSelectedNode(selection);
if (node != null) {
String actionName = CoreMessages.actions_navigator_open;
if (node instanceof DBNDataSource) {
actionName = CoreMessages.actions_navigator_edit;
} else if (node instanceof DBNDatabaseNode) {
DBSObject object = ((DBNDatabaseNode) node).getObject();
if (object != null) {
DBEObjectEditor objectManager = EntityEditorsRegistry.getInstance().getObjectManager(object.getClass(), DBEObjectEditor.class);
actionName = objectManager == null || !objectManager.canEditObject(object) ? CoreMessages.actions_navigator_view : CoreMessages.actions_navigator_edit;
}
}
String label;
if (selection instanceof IStructuredSelection && ((IStructuredSelection) selection).size() > 1) {
label = actionName + CoreMessages.actions_navigator__objects;
} else {
//$NON-NLS-1$
label = actionName + " " + node.getNodeType();
}
element.setText(label);
}
}
}
use of org.eclipse.jface.viewers.ISelectionProvider in project dbeaver by serge-rider.
the class DataSourceToolsContributor method fillContributionItems.
@Override
protected void fillContributionItems(List<IContributionItem> menuItems) {
IWorkbenchPart activePart = DBeaverUI.getActiveWorkbenchWindow().getActivePage().getActivePart();
if (activePart == null) {
return;
}
final ISelectionProvider selectionProvider = activePart.getSite().getSelectionProvider();
if (selectionProvider == null) {
return;
}
ISelection selection = selectionProvider.getSelection();
if (!(selection instanceof IStructuredSelection)) {
return;
}
DBSObject selectedObject = NavigatorUtils.getSelectedObject((IStructuredSelection) selection);
if (selectedObject != null) {
List<ToolDescriptor> tools = ToolsRegistry.getInstance().getTools((IStructuredSelection) selection);
fillToolsMenu(menuItems, tools, selection);
}
}
use of org.eclipse.jface.viewers.ISelectionProvider in project dbeaver by serge-rider.
the class UIUtils method getSelectionProvider.
@Nullable
public static ISelectionProvider getSelectionProvider(IServiceLocator serviceLocator) {
ISelectionProvider selectionProvider = serviceLocator.getService(ISelectionProvider.class);
if (selectionProvider != null) {
return selectionProvider;
}
IWorkbenchPartSite partSite = getWorkbenchPartSite(serviceLocator);
if (partSite == null) {
IWorkbenchPart activePart = serviceLocator.getService(IWorkbenchPart.class);
if (activePart == null) {
IWorkbenchWindow activeWindow = DBeaverUI.getActiveWorkbenchWindow();
if (activeWindow != null) {
activePart = activeWindow.getActivePage().getActivePart();
}
}
if (activePart != null) {
partSite = activePart.getSite();
}
}
if (partSite != null) {
return partSite.getSelectionProvider();
} else {
return null;
}
}
use of org.eclipse.jface.viewers.ISelectionProvider in project dbeaver by serge-rider.
the class TabbedFolderPageEditor method createControl.
@Override
public void createControl(Composite parent) {
editor = editorDescriptor.createEditor();
final IWorkbenchPartSite ownerSite = this.mainEditor.getSite();
if (ownerSite instanceof MultiPageEditorSite) {
final MultiPageEditorPart ownerMultiPageEditor = ((MultiPageEditorSite) ownerSite).getMultiPageEditor();
nestedEditorSite = new TabbedFolderPageEditorSite(ownerMultiPageEditor, editor);
// We need it to tell owner editor about dirty state change
if (ownerMultiPageEditor instanceof IPropertyChangeReflector) {
editor.addPropertyListener(new IPropertyListener() {
@Override
public void propertyChanged(Object source, int propId) {
((IPropertyChangeReflector) ownerMultiPageEditor).handlePropertyChange(propId);
}
});
}
} else {
nestedEditorSite = new SubEditorSite(mainEditor.getEditorSite());
}
try {
editor.init(nestedEditorSite, editorDescriptor.getNestedEditorInput(mainEditor.getEditorInput()));
} catch (PartInitException e) {
UIUtils.showErrorDialog(parent.getShell(), "Create SQL viewer", null, e);
}
editor.createPartControl(parent);
if (editor instanceof ISingleControlEditor) {
// Use focus to active selection provider and contributed actions
Control editorControl = ((ISingleControlEditor) editor).getEditorControl();
assert editorControl != null;
editorControl.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
ISelectionProvider selectionProvider = editor.getSite().getSelectionProvider();
mainEditor.getSite().setSelectionProvider(selectionProvider);
if (actionContributor != null) {
actionContributor.setActiveEditor(editor);
}
activateNestedSite(true);
}
@Override
public void focusLost(FocusEvent e) {
activateNestedSite(false);
if (actionContributor != null) {
actionContributor.setActiveEditor(null);
}
}
});
}
parent.addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent e) {
if (editor != null) {
editor.dispose();
editor = null;
}
}
});
}
Aggregations