simplify SimpleDataContext initialization

GitOrigin-RevId: b6edcfb213008b427423e5315e619328a7d4660f
This commit is contained in:
Gregory.Shrago
2024-08-09 18:26:47 +04:00
committed by intellij-monorepo-bot
parent 5a08bed5cb
commit e3ea3aeb62
2 changed files with 4 additions and 19 deletions

View File

@@ -176,19 +176,9 @@ public class DataManagerImpl extends DataManager {
@Override
public @NotNull DataContext customizeDataContext(@NotNull DataContext context, @NotNull Object provider) {
class MyAdapter implements EdtNoGetDataProvider, DataValidators.SourceWrapper {
@Override
public @NotNull Object unwrapSource() { return provider; }
@Override
public void dataSnapshot(@NotNull DataSink sink) {
if (provider instanceof UiDataProvider o) o.uiDataSnapshot(sink);
else if (provider instanceof DataSnapshotProvider o) o.dataSnapshot(sink);
}
}
DataProvider p = provider instanceof DataProvider o ? o :
provider instanceof UiDataProvider ? new MyAdapter() :
provider instanceof DataSnapshotProvider ? new MyAdapter() :
provider instanceof UiDataProvider o ? (EdtNoGetDataProvider)sink -> sink.uiDataSnapshot(o) :
provider instanceof DataSnapshotProvider o ? (EdtNoGetDataProvider)sink -> sink.dataSnapshot(o) :
null;
if (p == null) throw new AssertionError("Unexpected provider: " + provider.getClass().getName());
return IdeUiService.getInstance().createCustomizedDataContext(context, p);

View File

@@ -7,6 +7,7 @@ import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.awt.*;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -17,8 +18,7 @@ public final class SimpleDataContext extends CustomizedDataContext {
private SimpleDataContext(@NotNull Map<String, Object> map,
@Nullable DataContext parent) {
super(Objects.requireNonNullElseGet(parent, () -> IdeUiService.getInstance()
.createUiDataContext(PlatformCoreDataKeys.CONTEXT_COMPONENT
.getData((DataProvider)dataId -> getData(dataId, map)))),
.createUiDataContext((Component)map.get(PlatformCoreDataKeys.CONTEXT_COMPONENT.getName()))),
(EdtNoGetDataProvider)sink -> {
for (String dataId : map.keySet()) {
sink.set(DataKey.create(dataId),
@@ -27,11 +27,6 @@ public final class SimpleDataContext extends CustomizedDataContext {
}, false);
}
private static @Nullable Object getData(@NotNull String dataId, @NotNull Map<String, Object> map) {
return map.containsKey(dataId) ?
Objects.requireNonNullElse(map.get(dataId), EXPLICIT_NULL) : null;
}
/** @deprecated use {@link SimpleDataContext#getSimpleContext(DataKey, Object, DataContext)} instead. */
@Deprecated(forRemoval = true)
public static @NotNull DataContext getSimpleContext(@NotNull String dataId, @NotNull Object data, DataContext parent) {