From: Tuukka Lehtonen Date: Mon, 19 Nov 2018 10:23:10 +0000 (+0200) Subject: Fire selection change events on every selection change X-Git-Tag: v1.43.0~136^2~260^2 X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=commitdiff_plain;h=a8ee105b0825fcefc76b9aa967b275f418308df7;hp=3fe6778c21d6437e90d08987de6dae7bca89bc6d Fire selection change events on every selection change Also added trace-level logging for selection firing for debugging purposes. gitlab #184 Change-Id: Ic499e83b87cc0939c45976ca1f7bda03d428ebd6 --- diff --git a/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/GraphExplorerImpl.java b/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/GraphExplorerImpl.java index df4860d42..e90ae5eee 100644 --- a/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/GraphExplorerImpl.java +++ b/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/GraphExplorerImpl.java @@ -173,6 +173,8 @@ import org.simantics.utils.ui.SWTUtils; import org.simantics.utils.ui.jface.BasePostSelectionProvider; import org.simantics.utils.ui.widgets.VetoingEventHandler; import org.simantics.utils.ui.workbench.WorkbenchUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import gnu.trove.map.hash.THashMap; import gnu.trove.procedure.TObjectProcedure; @@ -185,6 +187,8 @@ import gnu.trove.set.hash.THashSet; */ class GraphExplorerImpl extends GraphExplorerImplBase implements Listener, GraphExplorer /*, IPostSelectionProvider*/ { + private static final Logger LOGGER = LoggerFactory.getLogger(GraphExplorerImpl.class); + private static class GraphExplorerPostSelectionProvider implements IPostSelectionProvider { private GraphExplorerImpl ge; @@ -1553,10 +1557,14 @@ class GraphExplorerImpl extends GraphExplorerImplBase implements Listener, Graph OpenStrategy os = new OpenStrategy(tree); os.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> { - resetSelectionFromWidget(); + ISelection s = resetSelectionFromWidget(); + if (s != null) { + LOGGER.trace("Fire selection change: {}", s); + selectionProvider.fireSelection(s); + } })); os.addPostSelectionListener(SelectionListener.widgetSelectedAdapter(e -> { - //System.out.println("OPENSTRATEGY: post selection changed: " + e); + LOGGER.trace("Fire post-selection change: {}", selectionProvider.getSelection()); resetSelectionFromWidgetAndFirePostSelection(true); }));