Fixed PropertyPageView to publish its selection to the workbench 12/2512/1
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Fri, 30 Nov 2018 20:08:02 +0000 (22:08 +0200)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Fri, 30 Nov 2018 20:08:02 +0000 (22:08 +0200)
Removing the property page view site selection provider caused the
workbench to naturally never receive any selections from the view thus
breaking any handlers whose activity/functionality relies on the current
workbench selection being accurate also with property tabs.

gitlab #185

Change-Id: I0d7067a0880486b93d135631baccd14ca613be90

bundles/org.simantics.browsing.ui.platform/META-INF/MANIFEST.MF
bundles/org.simantics.browsing.ui.platform/src/org/simantics/browsing/ui/platform/PropertyPageView.java

index f70303d53f4c338d7565f18bfcdde8782c19897a..d95fd417dab2173f8d444553a30cdbb7c98d2c40 100644 (file)
@@ -13,7 +13,8 @@ Require-Bundle: org.eclipse.ui,
  org.simantics.views.swt;bundle-version="1.0.0",
  org.simantics.selectionview;bundle-version="1.0.0",
  org.simantics.utils.thread.swt;bundle-version="1.1.0",
- org.eclipse.e4.core.contexts;bundle-version="1.1.0"
+ org.eclipse.e4.core.contexts;bundle-version="1.1.0",
+ org.slf4j.api;bundle-version="1.7.25"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.simantics.browsing.ui.platform
index 05109c8132bef66da570f2448270949503be2f10..ed78ebc339004e7743a533c748801ea86d2461ac 100644 (file)
@@ -43,6 +43,8 @@ import org.simantics.ui.workbench.IPropertyPage;
 import org.simantics.ui.workbench.ResourceInput;
 import org.simantics.utils.ui.BundleUtils;
 import org.simantics.utils.ui.SWTUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This is a version of the standard eclipse <code>PropertySheet</code> view a
@@ -83,6 +85,8 @@ import org.simantics.utils.ui.SWTUtils;
  */
 public class PropertyPageView extends PageBookView implements IContributedContentsView {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(PropertyPageView.class);
+
     private static final String                   PROPERTY_VIEW_CONTEXT      = "org.simantics.modeling.ui.properties";
 
     private static final String                   PROP_PINNED                = "pinned";
@@ -192,11 +196,6 @@ public class PropertyPageView extends PageBookView implements IContributedConten
         //System.out.println("PPV init: " + this);
         super.init(site);
 
-        // This prevents the Properties view from providing a selection to other
-        // workbench parts, thus making them lose their selections which is not
-        // desirable.
-        site.setSelectionProvider(null);
-
         contextProvider = Simantics.getSessionContextProvider();
 
         if (!bootstrapOnly) {
@@ -386,6 +385,8 @@ public class PropertyPageView extends PageBookView implements IContributedConten
      *         <code>false</code> otherwise
      */
     boolean doSelectionChanged(IWorkbenchPart part, ISelection sel) {
+        LOGGER.trace("doSelectionChanged({}): incoming selection {}", part, sel);
+
         // we ignore our own selection or null selection
         if (isPropertyView(part) || sel == null) {
             return false;
@@ -424,6 +425,7 @@ public class PropertyPageView extends PageBookView implements IContributedConten
             }
 
             if (!sameSelection) {
+                LOGGER.trace("doSelectionChanged({}): updating page input selection to {}", part, sel);
                 updatePartName(ppage, sel);
                 ppage.selectionChanged(part, sel);
                 return true;