[services] introduce interface for drag bean

GitOrigin-RevId: 2a2f91962881b1a46f346fb2b01328f7b1b46e72
This commit is contained in:
Konstantin Aleev
2024-08-30 14:11:05 +02:00
committed by intellij-monorepo-bot
parent 3e416d5e8b
commit c6afb2968c
4 changed files with 23 additions and 23 deletions

View File

@@ -166,14 +166,13 @@ public final class RunDashboardServiceViewContributor
@Nullable
private static RunDashboardRunConfigurationNode getRunConfigurationNode(@NotNull DnDEvent event, @NotNull Project project) {
Object object = event.getAttachedObject();
if (!(object instanceof DataProvider)) return null;
if (!(object instanceof ServiceViewDragBeanBase dragBean)) return null;
Object data = ((DataProvider)object).getData(PlatformCoreDataKeys.SELECTED_ITEMS.getName());
if (!(data instanceof Object[] items)) return null;
List<Object> items = dragBean.getSelectedItems();
Object item = ContainerUtil.getOnlyItem(items);
if (item == null) return null;
if (items.length != 1) return null;
RunDashboardRunConfigurationNode node = ObjectUtils.tryCast(items[0], RunDashboardRunConfigurationNode.class);
RunDashboardRunConfigurationNode node = ObjectUtils.tryCast(item, RunDashboardRunConfigurationNode.class);
if (node != null && !node.getConfigurationSettings().getConfiguration().getProject().equals(project)) return null;
return node;

View File

@@ -2,17 +2,12 @@
package com.intellij.platform.execution.serviceView;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.services.ServiceViewContributor;
import com.intellij.execution.services.ServiceViewDescriptor;
import com.intellij.execution.services.ServiceViewDnDDescriptor;
import com.intellij.execution.services.*;
import com.intellij.execution.services.ServiceViewDnDDescriptor.Position;
import com.intellij.execution.services.ServiceViewManager;
import com.intellij.ide.dnd.*;
import com.intellij.ide.projectView.PresentationData;
import com.intellij.ide.util.treeView.PresentableNodeDescriptor;
import com.intellij.navigation.ItemPresentation;
import com.intellij.openapi.actionSystem.DataProvider;
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.NlsContexts;
import com.intellij.openapi.util.NlsSafe;
@@ -147,7 +142,7 @@ final class ServiceViewDragHelper {
return content;
}
static final class ServiceViewDragBean implements DataProvider {
static final class ServiceViewDragBean implements ServiceViewDragBeanBase {
private final ServiceView myServiceView;
private final List<ServiceViewItem> myItems;
private final ServiceViewContributor myContributor;
@@ -182,17 +177,10 @@ final class ServiceViewDragHelper {
return myContributor;
}
@Nullable
@Override
public Object getData(@NotNull String dataId) {
if (PlatformCoreDataKeys.SELECTED_ITEMS.is(dataId)) {
return ContainerUtil.map2Array(myItems, ServiceViewItem::getValue);
}
if (PlatformCoreDataKeys.SELECTED_ITEM.is(dataId)) {
ServiceViewItem item = ContainerUtil.getOnlyItem(myItems);
return item != null ? item.getValue() : null;
}
return null;
@NotNull
public List<Object> getSelectedItems() {
return ContainerUtil.map(myItems, ServiceViewItem::getValue);
}
}

View File

@@ -2209,6 +2209,8 @@ e:com.intellij.execution.services.ServiceViewDnDDescriptor$Position
- sf:INTO:com.intellij.execution.services.ServiceViewDnDDescriptor$Position
- s:valueOf(java.lang.String):com.intellij.execution.services.ServiceViewDnDDescriptor$Position
- s:values():com.intellij.execution.services.ServiceViewDnDDescriptor$Position[]
com.intellij.execution.services.ServiceViewDragBeanBase
- a:getSelectedItems():java.util.List
com.intellij.execution.services.ServiceViewGroupingContributor
- com.intellij.execution.services.ServiceViewContributor
- a:getGroupDescriptor(java.lang.Object):com.intellij.execution.services.ServiceViewDescriptor

View File

@@ -0,0 +1,11 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.execution.services;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public interface ServiceViewDragBeanBase {
@NotNull
List<Object> getSelectedItems();
}