X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.document.swt.core%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fswt%2Fcore%2Fwidget%2FExplorerListener.java;fp=bundles%2Forg.simantics.document.swt.core%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fswt%2Fcore%2Fwidget%2FExplorerListener.java;h=5d38c8be7883770caba6222140284b6309e4f39c;hb=0ffcb1180dcccf28e66a391338885be224ba1c47;hp=0000000000000000000000000000000000000000;hpb=342a2b006b88330280060c16c2ab50374468a4c6;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/widget/ExplorerListener.java b/bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/widget/ExplorerListener.java new file mode 100644 index 000000000..5d38c8be7 --- /dev/null +++ b/bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/widget/ExplorerListener.java @@ -0,0 +1,60 @@ +package org.simantics.document.swt.core.widget; + +import java.util.List; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.TreeItem; +import org.simantics.browsing.ui.BuiltinKeys; +import org.simantics.browsing.ui.NodeContext; +import org.simantics.document.server.client.WidgetData; +import org.simantics.document.server.io.CommandContext; +import org.simantics.document.server.io.CommandContextImpl; +import org.simantics.document.server.io.CommandContextMutable; +import org.simantics.document.server.io.ICommand; +import org.simantics.document.swt.core.SWTDocument; +import org.simantics.document.swt.core.base.PropertyWidgetManager; +import org.simantics.utils.datastructures.Pair; + +public class ExplorerListener implements Listener { + + private WidgetData wd; + private List> data; + + public ExplorerListener(WidgetData wd, List> data) { + this.wd = wd; + this.data = data; + } + + @Override + public void handleEvent(Event event) { + + switch (event.type) { + case SWT.Selection: + if (event.detail == SWT.CHECK && event.item != null) { + + TreeItem item = (TreeItem) event.item; + NodeContext ctx = (NodeContext)item.getData(); + Object value = ctx.getConstant(BuiltinKeys.INPUT); + + boolean checked = item.getChecked(); + + CommandContextMutable context = new CommandContextImpl(); + context.putValue("event", "onCheck"); + context.putValue("checked", checked); + context.putValue("item", value); + + if(!data.isEmpty()) { + ((SWTDocument)wd.document).handleCommands(data, context, event.widget); + } + + CommandContext ret = PropertyWidgetManager.sendEvent((SWTDocument)wd.document, wd, "onCheck", event.widget, context); + + } + break; + } + + } + +} \ No newline at end of file