diff options
author | Eike Stepper | 2022-07-10 06:55:18 +0000 |
---|---|---|
committer | Eike Stepper | 2022-07-10 06:55:18 +0000 |
commit | 4fb0d12a8e2bb9ee40070eb1aeefc2bcd699cc6c (patch) | |
tree | df8cea0f757936182d8e87c5947a2864f20ca563 | |
parent | 51a89a70e922b659bd0c1bfc68765bfb97f20803 (diff) | |
download | cdo-4fb0d12a8e2bb9ee40070eb1aeefc2bcd699cc6c.tar.gz cdo-4fb0d12a8e2bb9ee40070eb1aeefc2bcd699cc6c.tar.xz cdo-4fb0d12a8e2bb9ee40070eb1aeefc2bcd699cc6c.zip |
[580343] Support customizable structure providers for Net4j Introspector view
https://bugs.eclipse.org/bugs/show_bug.cgi?id=580343
-rw-r--r-- | plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/views/Net4jIntrospectorView.java | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/views/Net4jIntrospectorView.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/views/Net4jIntrospectorView.java index c765d1fc83..6d336d3719 100644 --- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/views/Net4jIntrospectorView.java +++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/views/Net4jIntrospectorView.java @@ -157,13 +157,7 @@ public class Net4jIntrospectorView extends ViewPart return; } - Object pageSelection = null; - if (sel instanceof IStructuredSelection) - { - IStructuredSelection ssel = (IStructuredSelection)sel; - pageSelection = ssel.getFirstElement(); - } - + Object pageSelection = getPageSelection(sel); if (pageSelection != lastPageSelection) { lastPageSelection = pageSelection; @@ -175,6 +169,27 @@ public class Net4jIntrospectorView extends ViewPart } } } + + private Object getPageSelection(ISelection sel) + { + if (sel.isEmpty()) + { + return null; + } + + if (sel instanceof IStructuredSelection) + { + IStructuredSelection ssel = (IStructuredSelection)sel; + if (ssel.size() == 1) + { + return ssel.getFirstElement(); + } + + return ssel.toList(); + } + + return sel; + } }; private final IListener elementListener = new IListener() @@ -729,7 +744,7 @@ public class Net4jIntrospectorView extends ViewPart @Override public Object[] getElements(Object parent) { - if (currentValue != null) + if (currentValue != null && provider.canHandle(currentValue)) { try { |