mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
simplify SimpleDataContext initialization
GitOrigin-RevId: b6edcfb213008b427423e5315e619328a7d4660f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5a08bed5cb
commit
e3ea3aeb62
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user