From d3ee974b85c4ed810a0306be0011b61d6689407b Mon Sep 17 00:00:00 2001 From: Jonas <50097340+JKutscha@users.noreply.github.com> Date: Mon, 2 Aug 2021 09:25:26 +0200 Subject: [PATCH] Close view using bot | create buttons and add them --- .../org/pitest/pitclipse/ui/view/PitView.java | 29 ++++++------------- .../ui/tests/AbstractPitclipseSWTBotTest.java | 27 +++++++++-------- 2 files changed, 22 insertions(+), 34 deletions(-) diff --git a/bundles/org.pitest.pitclipse.ui/src/org/pitest/pitclipse/ui/view/PitView.java b/bundles/org.pitest.pitclipse.ui/src/org/pitest/pitclipse/ui/view/PitView.java index a4bfce4a..e68d9ce6 100644 --- a/bundles/org.pitest.pitclipse.ui/src/org/pitest/pitclipse/ui/view/PitView.java +++ b/bundles/org.pitest.pitclipse.ui/src/org/pitest/pitclipse/ui/view/PitView.java @@ -46,15 +46,17 @@ public synchronized void createPartControl(Composite parent) { browser = new Browser(parent, SWT.NONE); resetBrowser(); browser.addProgressListener(new PitUiUpdatePublisher(browser)); + IActionBars actionBars = getViewSite().getActionBars(); + IToolBarManager toolBar = actionBars.getToolBarManager(); // create back button - final Action backButtonAction = new Action(BACK_BUTTON_TEXT) { + toolBar.add(new Action(BACK_BUTTON_TEXT) { @Override public void run() { browser.back(); } - }; + }); // create home button for navigation - final Action homeButtonAction = new Action(HOME_BUTTON_TEXT) { + toolBar.add(new Action(HOME_BUTTON_TEXT) { @Override public void run() { if (homeUrlString != null) { @@ -62,19 +64,14 @@ public void run() { browser.setUrl(homeUrlString); } } - }; + }); // create forward button - final Action forwardButtonAction = new Action(FORWARD_BUTTON_TEXT) { + toolBar.add(new Action(FORWARD_BUTTON_TEXT) { @Override public void run() { browser.forward(); } - }; - IActionBars actionBars = getViewSite().getActionBars(); - IToolBarManager toolBar = actionBars.getToolBarManager(); - toolBar.add(backButtonAction); - toolBar.add(homeButtonAction); - toolBar.add(forwardButtonAction); + }); actionBars.updateActionBars(); } catch (SWTError e) { MessageBox messageBox = new MessageBox(parent.getShell(), SWT.ICON_ERROR | SWT.OK); @@ -96,7 +93,7 @@ private void resetBrowser() { @Override public void setFocus() { - if (browser != null && !browser.isDisposed()) { + if (!browser.isDisposed()) { browser.setFocus(); } } @@ -110,12 +107,4 @@ public synchronized void update(File result) { browser.setUrl(homeUrlString); } } - - @Override - public void dispose() { - if (browser != null && !browser.isDisposed()) { - browser.dispose(); - } - super.dispose(); - } } diff --git a/tests/org.pitest.pitclipse.ui.tests/src/org/pitest/pitclipse/ui/tests/AbstractPitclipseSWTBotTest.java b/tests/org.pitest.pitclipse.ui.tests/src/org/pitest/pitclipse/ui/tests/AbstractPitclipseSWTBotTest.java index ecc89e06..3363a6f3 100644 --- a/tests/org.pitest.pitclipse.ui.tests/src/org/pitest/pitclipse/ui/tests/AbstractPitclipseSWTBotTest.java +++ b/tests/org.pitest.pitclipse.ui.tests/src/org/pitest/pitclipse/ui/tests/AbstractPitclipseSWTBotTest.java @@ -43,10 +43,10 @@ import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor; import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView; +import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; -import org.eclipse.ui.IViewReference; +import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.WorkbenchException; import org.eclipse.ui.intro.IIntroManager; @@ -147,18 +147,17 @@ public static void openViewById(String viewId) throws InterruptedException { }); } - public static void closeViewById(String viewId) throws InterruptedException { - Display.getDefault().syncExec(() -> { - IWorkbench workbench = PlatformUI.getWorkbench(); - final IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage(); - for (IViewReference view : page.getViewReferences()) { - if (view.getId().equals(viewId)) { - page.hideView(view); - return; - } - } - throw new RuntimeException("View with the id: '" + viewId + "' was not found and could not be closed."); - }); + public static void closeViewById(String viewId) { + final long previousTimeout = SWTBotPreferences.TIMEOUT; + try { + // set timeout short, because if the view is not present we don't wait long + SWTBotPreferences.TIMEOUT = 100; + bot.viewById(viewId).close(); + } catch (WidgetNotFoundException e) { + // expected, if the view was not present + } finally { + SWTBotPreferences.TIMEOUT = previousTimeout; + } } protected static IProject importTestProject(String projectName) throws CoreException {