From a8ee105b0825fcefc76b9aa967b275f418308df7 Mon Sep 17 00:00:00 2001 From: Tuukka Lehtonen Date: Mon, 19 Nov 2018 12:23:10 +0200 Subject: [PATCH] Fire selection change events on every selection change Also added trace-level logging for selection firing for debugging purposes. gitlab #184 Change-Id: Ic499e83b87cc0939c45976ca1f7bda03d428ebd6 --- .../simantics/browsing/ui/swt/GraphExplorerImpl.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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); })); -- 2.43.2