use of org.eclipse.ui.menus.CommandContributionItem in project dbeaver by serge-rider.
the class ResultSetHandlerCopyAs method fillCopyAsMenu.
public static void fillCopyAsMenu(ResultSetViewer viewer, IContributionManager copyAsMenu) {
IWorkbenchPartSite site = viewer.getSite();
copyAsMenu.add(ActionUtils.makeCommandContribution(site, ResultSetHandlerCopySpecial.CMD_COPY_SPECIAL));
copyAsMenu.add(ActionUtils.makeCommandContribution(site, ResultSetHandlerCopySpecial.CMD_COPY_COLUMN_NAMES));
copyAsMenu.add(ActionUtils.makeCommandContribution(site, ResultSetHandlerMain.CMD_COPY_ROW_NAMES));
// Add copy commands for different formats
copyAsMenu.add(new Separator());
ResultSetDataContainerOptions options = new ResultSetDataContainerOptions();
ResultSetDataContainer dataContainer = new ResultSetDataContainer(viewer, options);
List<DataTransferProcessorDescriptor> appProcessors = new ArrayList<>();
for (final DataTransferNodeDescriptor consumerNode : DataTransferRegistry.getInstance().getAvailableConsumers(Collections.singleton(dataContainer))) {
for (DataTransferProcessorDescriptor processor : consumerNode.getProcessors()) {
if (processor.isBinaryFormat()) {
continue;
}
appProcessors.add(processor);
}
}
appProcessors.sort(Comparator.comparing(DataTransferProcessorDescriptor::getName));
for (DataTransferProcessorDescriptor processor : appProcessors) {
CommandContributionItemParameter params = new CommandContributionItemParameter(site, processor.getId(), ResultSetHandlerCopyAs.CMD_COPY_AS, CommandContributionItem.STYLE_PUSH);
params.label = processor.getName();
if (processor.getIcon() != null) {
params.icon = DBeaverIcons.getImageDescriptor(processor.getIcon());
}
Map<String, Object> parameters = new HashMap<>();
parameters.put(ResultSetHandlerCopyAs.PARAM_PROCESSOR_ID, processor.getFullId());
params.parameters = parameters;
copyAsMenu.add(new CommandContributionItem(params));
}
}
use of org.eclipse.ui.menus.CommandContributionItem in project dbeaver by serge-rider.
the class ResultSetHandlerOpenWith method fillOpenWithMenu.
public static void fillOpenWithMenu(ResultSetViewer viewer, IContributionManager openWithMenu) {
ResultSetDataContainerOptions options = new ResultSetDataContainerOptions();
ResultSetDataContainer dataContainer = new ResultSetDataContainer(viewer, options);
List<DataTransferProcessorDescriptor> appProcessors = new ArrayList<>();
for (final DataTransferNodeDescriptor consumerNode : DataTransferRegistry.getInstance().getAvailableConsumers(Collections.singleton(dataContainer))) {
for (DataTransferProcessorDescriptor processor : consumerNode.getProcessors()) {
if (processor.getAppFileExtension() != null) {
appProcessors.add(processor);
}
}
}
appProcessors.sort(Comparator.comparingInt(DataTransferProcessorDescriptor::getOrder));
for (DataTransferProcessorDescriptor processor : appProcessors) {
CommandContributionItemParameter params = new CommandContributionItemParameter(viewer.getSite(), processor.getId(), ResultSetHandlerOpenWith.CMD_OPEN_WITH, CommandContributionItem.STYLE_RADIO);
params.label = processor.getAppName();
if (processor.getIcon() != null) {
params.icon = DBeaverIcons.getImageDescriptor(processor.getIcon());
}
Map<String, Object> parameters = new HashMap<>();
parameters.put(ResultSetHandlerOpenWith.PARAM_PROCESSOR_ID, processor.getFullId());
params.parameters = parameters;
openWithMenu.add(new CommandContributionItem(params));
}
}
use of org.eclipse.ui.menus.CommandContributionItem in project dbeaver by serge-rider.
the class ResultSetViewer method fillPanelsMenu.
private List<IContributionItem> fillPanelsMenu() {
List<IContributionItem> items = new ArrayList<>();
for (final ResultSetPanelDescriptor panel : availablePanels) {
CommandContributionItemParameter params = new CommandContributionItemParameter(site, panel.getId(), ResultSetHandlerTogglePanel.CMD_TOGGLE_PANEL, CommandContributionItem.STYLE_CHECK);
Map<String, String> parameters = new HashMap<>();
parameters.put(ResultSetHandlerTogglePanel.PARAM_PANEL_ID, panel.getId());
params.parameters = parameters;
items.add(new CommandContributionItem(params));
}
items.add(new Separator());
// if (viewerSash.getMaximizedControl() == null) {
// items.add(ActionUtils.makeCommandContribution(site, ResultSetHandlerMain.CMD_TOGGLE_LAYOUT));
// }
items.add(ActionUtils.makeCommandContribution(site, ResultSetHandlerMain.CMD_TOGGLE_MAXIMIZE));
// items.add(ActionUtils.makeCommandContribution(site, ResultSetHandlerMain.CMD_TOGGLE_PANELS));
items.add(ActionUtils.makeCommandContribution(site, ResultSetHandlerMain.CMD_ACTIVATE_PANELS));
return items;
}
use of org.eclipse.ui.menus.CommandContributionItem in project dbeaver by serge-rider.
the class ActionUtils method makeCommandContribution.
public static CommandContributionItem makeCommandContribution(@NotNull IServiceLocator serviceLocator, @NotNull String commandId, int style, @Nullable String name, @Nullable DBPImage image, @Nullable String toolTip, boolean showText, @Nullable Map<String, Object> parameters) {
final CommandContributionItemParameter contributionParameters = new CommandContributionItemParameter(serviceLocator, null, commandId, null, image == null ? null : DBeaverIcons.getImageDescriptor(image), null, null, name, null, toolTip, style, null, false);
contributionParameters.parameters = parameters;
if (showText) {
contributionParameters.mode = CommandContributionItem.MODE_FORCE_TEXT;
}
return new CommandContributionItem(contributionParameters);
}
use of org.eclipse.ui.menus.CommandContributionItem in project dbeaver by serge-rider.
the class NavigatorHandlerObjectCreateNew method execute.
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
String objectType = event.getParameter(NavigatorCommands.PARAM_OBJECT_TYPE);
boolean isFolder = CommonUtils.toBoolean(event.getParameter(NavigatorCommands.PARAM_OBJECT_TYPE_FOLDER));
final ISelection selection = HandlerUtil.getCurrentSelection(event);
DBNNode node = NavigatorUtils.getSelectedNode(selection);
if (node != null) {
Class<?> newObjectType = null;
if (objectType != null) {
if (node instanceof DBNDatabaseNode) {
newObjectType = ((DBNDatabaseNode) node).getMeta().getSource().getObjectClass(objectType);
} else {
try {
newObjectType = Class.forName(objectType);
} catch (ClassNotFoundException e) {
log.error("Error detecting new object type " + objectType, e);
}
}
} else {
// No explicit object type. Try to detect from selection
IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
if (activePart != null) {
List<IContributionItem> actions = fillCreateMenuItems(activePart.getSite(), node);
for (IContributionItem item : actions) {
if (item instanceof CommandContributionItem) {
ParameterizedCommand command = ((CommandContributionItem) item).getCommand();
if (command != null) {
ActionUtils.runCommand(command.getId(), selection, command.getParameterMap(), activePart.getSite());
return null;
}
}
}
}
}
createNewObject(HandlerUtil.getActiveWorkbenchWindow(event), node, newObjectType, null, isFolder);
}
return null;
}
Aggregations