From d1b324d62eeabe20e455f30f43e3ba488b49c8a9 Mon Sep 17 00:00:00 2001 From: "specgui@pc-e3-qsk-15" <specgui@pc-e3-qsk-15> Date: Fri, 4 Aug 2023 15:01:25 +0200 Subject: [PATCH] add start trigger to tab context menu --- src/imageProc/core/swt/TabFolderMenu.java | 32 ++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/imageProc/core/swt/TabFolderMenu.java b/src/imageProc/core/swt/TabFolderMenu.java index b381a3da..0a2e1e5d 100644 --- a/src/imageProc/core/swt/TabFolderMenu.java +++ b/src/imageProc/core/swt/TabFolderMenu.java @@ -23,7 +23,7 @@ public class TabFolderMenu { private ImageWindow imgWin; /** Things for context-menu on tab folder headers */ - private MenuItem tabMenuItemShowAsOther, tabMenuItemAbort, tabMenuItemRemove, tabMenuItemReload; + private MenuItem tabMenuItemShowAsOther, tabMenuItemStart, tabMenuItemAbort, tabMenuItemRemove, tabMenuItemReload; private int lastTabClickX = 0, lastTabClickY = 0; private CTabItem tabMenuSelectedTab = null; @@ -46,6 +46,11 @@ public class TabFolderMenu { tabMenuItemShowAsOther.setToolTipText("Shows/opens the window in which this source/sink is a sink/source. Only applicable for 'pipes' (things that are both a source and sink)"); tabMenuItemShowAsOther.addListener(SWT.Selection, new Listener() { @Override public void handleEvent(Event event) { tabShowEvent(event); }}); + tabMenuItemStart = new MenuItem(sinkMenu, SWT.CASCADE); + tabMenuItemStart.setText("Start"); + tabMenuItemStart.setToolTipText("Signal start to only this module."); + tabMenuItemStart.addListener(SWT.Selection, new Listener() { @Override public void handleEvent(Event event) { tabStartEvent(event); }}); + tabMenuItemAbort = new MenuItem(sinkMenu, SWT.CASCADE); tabMenuItemAbort.setText("Abort"); tabMenuItemAbort.setToolTipText("Signal abort to only this module."); @@ -92,6 +97,7 @@ public class TabFolderMenu { tabMenuItemShowAsOther.setEnabled(false); tabMenuItemShowAsOther.setText("Show other window ..."); + tabMenuItemStart.setEnabled(false); tabMenuItemAbort.setEnabled(false); tabMenuItemRemove.setEnabled(false); tabMenuItemReload.setEnabled(false); @@ -99,8 +105,12 @@ public class TabFolderMenu { if(tabMenuSelectedTab == imgWin.getInfoTab()) { //leav all disabled }else if(tabMenuSelectedTab == imgWin.getSourceTab()) { - tabMenuItemAbort.setEnabled(true); tabMenuItemReload.setEnabled(true); + + if(imgWin.getConnectedSource() instanceof EventReciever) { + tabMenuItemStart.setEnabled(true); + tabMenuItemAbort.setEnabled(true); + } if(imgWin.getConnectedSource() instanceof ImgSink) { tabMenuItemShowAsOther.setEnabled(true); @@ -115,9 +125,12 @@ public class TabFolderMenu { tabMenuItemRemove.setEnabled(true); tabMenuItemReload.setEnabled(true); } + - if(tabMenuSelectedTab.getData() instanceof EventReciever) + if(tabMenuSelectedTab.getData() instanceof EventReciever) { + tabMenuItemStart.setEnabled(true); tabMenuItemAbort.setEnabled(true); + } if(tabMenuSelectedTab.getData() instanceof ImgSource) { tabMenuItemShowAsOther.setEnabled(true); @@ -139,6 +152,19 @@ public class TabFolderMenu { ((ImgPipe)tabMenuSelectedTab.getData()).destroy(); } + protected void tabStartEvent(Event event) { + if(tabMenuSelectedTab == null) + return; + + if(tabMenuSelectedTab == imgWin.getSourceTab() && imgWin.getConnectedSource() != null && imgWin.getConnectedSource() instanceof EventReciever) { + ((EventReciever)imgWin.getConnectedSource()).event(EventReciever.Event.GlobalStart); + + }else if(tabMenuSelectedTab.getData() != null && tabMenuSelectedTab.getData() instanceof EventReciever) { + ((EventReciever)tabMenuSelectedTab.getData()).event(EventReciever.Event.GlobalStart); + } + } + + protected void tabAbortEvent(Event event) { if(tabMenuSelectedTab == null) return; -- GitLab