mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 13:02:30 +07:00
DBE-25037 Demote ServiceView's COPY_PROVIDER and DELETE_ELEMENT_PROVIDER to DataRule level to prevent overriding
overriding TableResultPanelUIDataRule for DataGrid GitOrigin-RevId: 7a93251b9aed22dee2cf0fdb127ed9fb9b6baacb
This commit is contained in:
committed by
intellij-monorepo-bot
parent
abfc5cd465
commit
4ec7cfc95e
@@ -33,7 +33,7 @@
|
||||
<registryKey key="database.grid.show.chart.tab" defaultValue="true" restartRequired="false"
|
||||
description="Adds 'Show Chart' action to DG tables in editor, inlay and services."/>
|
||||
<uiDataRule implementation="com.intellij.database.run.ui.TableResultPanelUIDataRule"
|
||||
id="TableResultPanelDataRule" order="before BasicUiDataRule"/>
|
||||
id="TableResultPanelDataRule" order="before BasicUiDataRule, before ServiceViewProvidersDataRule"/>
|
||||
<uiDataRule implementation="com.intellij.database.run.ui.InnerEditorsTableResultPanelUIDataRule"
|
||||
id="InnerEditorsTableResultPanelUIDataRule" order="before TableResultPanelDataRule"/>
|
||||
<applicationService serviceInterface="com.intellij.database.extensions.ExtensionsService" serviceImplementation="com.intellij.database.extensions.ExtensionsServiceImpl"/>
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
<postStartupActivity implementation="com.intellij.platform.execution.serviceView.ServiceViewStartupActivity"/>
|
||||
<remote.customDataContextSerializer implementation="com.intellij.platform.execution.serviceView.ServiceViewDescriptorIdsSerializer"/>
|
||||
<uiDataRule implementation="com.intellij.platform.execution.serviceView.ServiceViewSelectionDataRule"/>
|
||||
<uiDataRule id="ServiceViewProvidersDataRule" implementation="com.intellij.platform.execution.serviceView.ServiceViewProvidersDataRule"/>
|
||||
</extensions>
|
||||
<actions>
|
||||
<group id="ServiceViewTreeToolbar">
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.intellij.execution.services.*;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.DataSink;
|
||||
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys;
|
||||
import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
||||
import com.intellij.openapi.actionSystem.UiDataProvider;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.platform.execution.serviceView.ServiceModel.ServiceViewItem;
|
||||
@@ -114,6 +113,7 @@ abstract class ServiceView extends JPanel implements UiDataProvider, Disposable
|
||||
List<ServiceViewItem> selection = getSelectedItems();
|
||||
ServiceViewItem onlyItem = ContainerUtil.getOnlyItem(selection);
|
||||
|
||||
sink.set(ServiceViewActionProvider.SERVICE_VIEW, this);
|
||||
sink.set(PlatformCoreDataKeys.HELP_ID,
|
||||
ServiceViewManagerImpl.getToolWindowContextHelpId());
|
||||
sink.set(PlatformCoreDataKeys.SELECTED_ITEM,
|
||||
@@ -121,7 +121,6 @@ abstract class ServiceView extends JPanel implements UiDataProvider, Disposable
|
||||
sink.set(ServiceViewActionProvider.SERVICES_SELECTED_ITEMS, selection);
|
||||
|
||||
ServiceViewContributor<?> contributor = ServiceViewDragHelper.getTheOnlyRootContributor(selection);
|
||||
sink.set(PlatformDataKeys.DELETE_ELEMENT_PROVIDER, ServiceViewDefaultDeleteProvider.getInstance());
|
||||
ServiceViewDescriptor contributorDescriptor = contributor != null ? contributor.getViewDescriptor(myProject) : null;
|
||||
if (contributorDescriptor instanceof UiDataProvider uiDataProvider) {
|
||||
sink.uiDataSnapshot(uiDataProvider);
|
||||
@@ -129,7 +128,6 @@ abstract class ServiceView extends JPanel implements UiDataProvider, Disposable
|
||||
else {
|
||||
DataSink.uiDataSnapshot(sink, contributorDescriptor != null ? contributorDescriptor.getDataProvider() : null);
|
||||
}
|
||||
sink.set(PlatformDataKeys.COPY_PROVIDER, new ServiceViewCopyProvider(this));
|
||||
sink.set(ServiceViewActionUtils.CONTRIBUTORS_KEY,
|
||||
getModel().getRoots().stream().map(item -> item.getRootContributor()).collect(Collectors.toSet()));
|
||||
sink.set(ServiceViewActionUtils.OPTIONS_KEY, myViewOptions);
|
||||
|
||||
@@ -42,6 +42,7 @@ public final class ServiceViewActionProvider {
|
||||
static final @NonNls String SERVICE_VIEW_ITEM_POPUP = "ServiceViewItemPopup";
|
||||
private static final @NonNls String SERVICE_VIEW_TREE_TOOLBAR = "ServiceViewTreeToolbar";
|
||||
|
||||
static final DataKey<ServiceView> SERVICE_VIEW = DataKey.create("service.view");
|
||||
static final DataKey<List<ServiceViewItem>> SERVICES_SELECTED_ITEMS = DataKey.create("services.selected.items");
|
||||
static final DataKey<List<ServiceViewDescriptorId>> SERVICES_SELECTED_DESCRIPTOR_IDS = DataKey.create("services.selected.descriptor.ids");
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.platform.execution.serviceView
|
||||
|
||||
import com.intellij.execution.services.ServiceViewDefaultDeleteProvider
|
||||
import com.intellij.openapi.actionSystem.*
|
||||
|
||||
class ServiceViewProvidersDataRule : UiDataRule {
|
||||
override fun uiDataSnapshot(sink: DataSink, snapshot: DataSnapshot) {
|
||||
val serviceView = snapshot[ServiceViewActionProvider.SERVICE_VIEW] ?: return
|
||||
sink[PlatformDataKeys.COPY_PROVIDER] = ServiceViewCopyProvider(serviceView)
|
||||
sink[PlatformDataKeys.DELETE_ELEMENT_PROVIDER] = ServiceViewDefaultDeleteProvider.getInstance()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user