Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2022-07-10 06:55:18 +0000
committerEike Stepper2022-07-10 06:55:18 +0000
commit4fb0d12a8e2bb9ee40070eb1aeefc2bcd699cc6c (patch)
treedf8cea0f757936182d8e87c5947a2864f20ca563
parent51a89a70e922b659bd0c1bfc68765bfb97f20803 (diff)
downloadcdo-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.java31
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
{

Back to the top