Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 237947 Details for
Bug 417829
Next/previous error buttons for test result view are only present when view has focus
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
patch for Bug 417829
0001-Sprint-task-JUB-76-fix-of-Next-previous-error-button.patch (text/plain), 46.48 KB, created by
Maissmaallsmyss Maulhs-Vvuillss
on 2013-12-03 06:33:39 EST
(
hide
)
Description:
patch for Bug 417829
Filename:
MIME Type:
Creator:
Maissmaallsmyss Maulhs-Vvuillss
Created:
2013-12-03 06:33:39 EST
Size:
46.48 KB
patch
obsolete
>From c11e149fb0ae37a9a6570d44df5501ff9b2c12bf Mon Sep 17 00:00:00 2001 >From: Maissmaallsmyss Maulhs <m.maulhs@bredex.de> >Date: Tue, 3 Dec 2013 12:19:14 +0100 >Subject: [PATCH] Sprint-task JUB-76 fix of Next/previous error buttons > >--- > .../app/core/JubulaWorkbenchWindowAdvisor.java | 151 ++++++++++++++- > org.eclipse.jubula.client.ui.rcp/plugin.xml | 89 +++++---- > .../ui/rcp/controllers/TestResultPartsTracker.java | 209 +++++++++++++++++++++ > .../handlers/GoToNextTestResultErrorHandler.java | 26 ++- > .../GoToPreviousTestResultErrorHandler.java | 17 +- > .../ActiveProjectSourceProvider.java | 49 ++++- > .../client/ui/rcp/views/TestResultTreeView.java | 4 + > .../jubula/client/ui/constants/Constants.java | 4 + > .../AbstractGoToTestResultErrorHandler.java | 83 ++++++-- > .../handlers/GoToNextTestResultErrorHandler.java | 29 ++- > .../GoToPreviousTestResultErrorHandler.java | 15 +- > .../ide-launch/dashboard.launch | 4 +- > 12 files changed, 581 insertions(+), 99 deletions(-) > create mode 100644 org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/controllers/TestResultPartsTracker.java > >diff --git a/org.eclipse.jubula.app/src/org/eclipse/jubula/app/core/JubulaWorkbenchWindowAdvisor.java b/org.eclipse.jubula.app/src/org/eclipse/jubula/app/core/JubulaWorkbenchWindowAdvisor.java >index a13581c..bff55f9 100644 >--- a/org.eclipse.jubula.app/src/org/eclipse/jubula/app/core/JubulaWorkbenchWindowAdvisor.java >+++ b/org.eclipse.jubula.app/src/org/eclipse/jubula/app/core/JubulaWorkbenchWindowAdvisor.java >@@ -30,14 +30,23 @@ import org.eclipse.jubula.client.core.utils.DatabaseStateDispatcher; > import org.eclipse.jubula.client.core.utils.DatabaseStateEvent; > import org.eclipse.jubula.client.core.utils.IDatabaseStateListener; > import org.eclipse.jubula.client.ui.constants.CommandIDs; >+import org.eclipse.jubula.client.ui.constants.Constants; >+import org.eclipse.jubula.client.ui.editors.TestResultViewer; > import org.eclipse.jubula.client.ui.handlers.project.AbstractSelectDatabaseHandler; > import org.eclipse.jubula.client.ui.rcp.Plugin; > import org.eclipse.jubula.client.ui.rcp.businessprocess.ProjectUIBP; > import org.eclipse.jubula.client.ui.rcp.constants.RCPCommandIDs; >+import org.eclipse.jubula.client.ui.rcp.controllers.TestResultPartsTracker; >+import org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView; > import org.eclipse.jubula.client.ui.utils.CommandHelper; > import org.eclipse.jubula.client.ui.utils.JobUtils; > import org.eclipse.jubula.tools.constants.StringConstants; > import org.eclipse.swt.graphics.Image; >+import org.eclipse.ui.IEditorPart; >+import org.eclipse.ui.IPartListener; >+import org.eclipse.ui.IPerspectiveDescriptor; >+import org.eclipse.ui.IViewPart; >+import org.eclipse.ui.IViewReference; > import org.eclipse.ui.IWorkbenchPage; > import org.eclipse.ui.IWorkbenchPart; > import org.eclipse.ui.IWorkbenchWindow; >@@ -47,6 +56,7 @@ import org.eclipse.ui.application.ActionBarAdvisor; > import org.eclipse.ui.application.IActionBarConfigurer; > import org.eclipse.ui.application.IWorkbenchWindowConfigurer; > import org.eclipse.ui.application.WorkbenchWindowAdvisor; >+import org.eclipse.ui.part.ViewPart; > import org.eclipse.ui.plugin.AbstractUIPlugin; > > >@@ -59,7 +69,7 @@ public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { > * the delay used to schedule the auto logon job > */ > private static final int AUTO_LOGON_JOB_SCHEDULE_DELAY = 1000; >- >+ > /** > * all basic action sets that should be hidden when running Jubula as > * a stand-alone client >@@ -71,6 +81,21 @@ public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { > "org.eclipse.ui.edit.text.actionSet.navigation", //$NON-NLS-1$ > "org.eclipse.ui.edit.text.actionSet.annotationNavigation" //$NON-NLS-1$ > }; >+ >+ /** >+ * the active page of active workbench window >+ */ >+ private static IWorkbenchPage actPage; >+ >+ /** >+ * the listener to track parts for viewing test results >+ */ >+ private static PartListenerToTrackTRParts trPartslistener; >+ >+ /** >+ * the current perspective descriptor of the active page >+ */ >+ private static IPerspectiveDescriptor currPesrpDescriptor; > > /** > * the application window title updater >@@ -78,6 +103,103 @@ public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { > private ApplicationWindowTitleUpdater m_updater; > > /** >+ * sets the value of the current perspective descriptor of the active page >+ * @param pDescr the value to set >+ */ >+ private static void setCurrentPesrpective(IPerspectiveDescriptor pDescr) { >+ currPesrpDescriptor = pDescr; >+ } >+ >+ /** >+ *@return the value of the current perspective descriptor of the active page >+ */ >+ private static IPerspectiveDescriptor getCurrentPesrpective() { >+ return currPesrpDescriptor; >+ } >+ >+ /** >+ * @author BREDEX GmbH >+ * >+ */ >+ private static class PartListenerToTrackTRParts implements IPartListener { >+ /** {@inheritDoc} */ >+ public void partActivated(IWorkbenchPart part) { >+ if (!actPage.getPerspective().equals(getCurrentPesrpective())) { >+ TestResultPartsTracker.getInstance().disableGoToButtons(true); >+ TestResultPartsTracker.getInstance(). >+ setTRTreeViewHiddenStateTo(true); >+ setCurrentPesrpective(actPage.getPerspective()); >+ } >+ if (part instanceof TestResultTreeView) { >+ TestResultPartsTracker.getInstance(). >+ setTRTreeViewHiddenStateTo(false); >+ } >+ if (part instanceof IEditorPart) { >+ if (part instanceof TestResultViewer) { >+ TestResultPartsTracker.getInstance(). >+ disableGoToButtons(false); >+ } else { >+ TestResultPartsTracker.getInstance(). >+ disableGoToButtons(true); >+ } >+ } >+ } >+ >+ /** {@inheritDoc} */ >+ public void partOpened(IWorkbenchPart part) { >+ if (part instanceof TestResultTreeView) { >+ TestResultPartsTracker.getInstance(). >+ setTRTreeViewHiddenStateTo(false); >+ } else if (part instanceof TestResultViewer) { >+ TestResultPartsTracker.getInstance(). >+ addTRViewer((TestResultViewer)part); >+ } >+ } >+ >+ /** {@inheritDoc} */ >+ public void partDeactivated(IWorkbenchPart part) { >+ //do nothing >+ } >+ >+ /** {@inheritDoc} */ >+ public void partClosed(IWorkbenchPart part) { >+ if (part instanceof TestResultTreeView) { >+ TestResultPartsTracker.getInstance(). >+ setTRTreeViewHiddenStateTo(true); >+ } else if (part instanceof TestResultViewer) { >+ TestResultPartsTracker.getInstance(). >+ removeTRViewer((TestResultViewer)part); >+ } >+ } >+ >+ /** {@inheritDoc} */ >+ public void partBroughtToTop(IWorkbenchPart part) { >+ if (part instanceof TestResultTreeView) { >+ TestResultPartsTracker.getInstance(). >+ setTRTreeViewHiddenStateTo(false); >+ } >+ if (!((part instanceof TestResultTreeView) >+ || (part instanceof TestResultViewer))) { >+ TestResultPartsTracker.getInstance().getOpenTRViewers(); >+ if (part instanceof IViewPart) { >+ try { >+ IViewPart[] stackedViews = >+ actPage.getViewStack((ViewPart)part); >+ for (IViewPart iViewPart : stackedViews) { >+ if (iViewPart instanceof TestResultTreeView) { >+ TestResultPartsTracker.getInstance(). >+ setTRTreeViewHiddenStateTo(true); >+ } >+ } >+ } catch (NullPointerException e) { >+ //if stack was not jet created (when view is moved to the place where no other views are located) >+ } >+ } >+ } >+ } >+ } >+ >+ /** > * @author BREDEX GmbH > * @created 09.04.2011 > */ >@@ -192,7 +314,16 @@ public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { > } > } > } >- >+ >+ trPartslistener = new PartListenerToTrackTRParts(); >+ actPage = PlatformUI.getWorkbench(). >+ getActiveWorkbenchWindow().getActivePage(); >+ actPage.addPartListener(trPartslistener); >+ setCurrentPesrpective(actPage.getPerspective()); >+// addListenerToTrackTRParts(actPage); >+ >+ handleTestResultTreeViewInitialState(actPage); >+ > AbstractUIPlugin plugin = Activator.getDefault(); > ImageRegistry imageRegistry = plugin.getImageRegistry(); > getWindowConfigurer().getWindow().getShell().setImages( >@@ -216,6 +347,20 @@ public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { > } > > /** >+ * @param page the page for which state of Test Result Tree View is tracked and handled >+ */ >+ private void handleTestResultTreeViewInitialState(IWorkbenchPage page) { >+ for (IViewReference viewRef : page.getViewReferences()) { >+ if (viewRef.getId().equals(Constants.TESTRE_ID)) { >+ TestResultPartsTracker.getInstance(). >+ addTRTreeView((TestResultTreeView)viewRef.getPart(true)); >+ TestResultPartsTracker.getInstance(). >+ setTRTreeViewHiddenStateTo(true); >+ } >+ } >+ } >+ >+ /** > * invoke implicit startup hooks > */ > private void checkAndPerformStartupHooks() { >@@ -271,5 +416,7 @@ public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { > ded.removeProjectLoadedListener(m_updater); > ded.removeDataChangedListener(m_updater); > DatabaseStateDispatcher.removeDatabaseStateListener(m_updater); >+ PlatformUI.getWorkbench().getActiveWorkbenchWindow(). >+ getActivePage().removePartListener(trPartslistener); > } > } >diff --git a/org.eclipse.jubula.client.ui.rcp/plugin.xml b/org.eclipse.jubula.client.ui.rcp/plugin.xml >index c40a543..be59154 100644 >--- a/org.eclipse.jubula.client.ui.rcp/plugin.xml >+++ b/org.eclipse.jubula.client.ui.rcp/plugin.xml >@@ -2838,24 +2838,36 @@ > <handler > class="org.eclipse.jubula.client.ui.rcp.handlers.GoToNextTestResultErrorHandler" > commandId="org.eclipse.jubula.client.ui.commands.GoToNextError"> >- <activeWhen> >- <with >- variable="activePartId"> >- <equals >- value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView"> >- </equals> >- </with></activeWhen> >+ <activeWhen> >+ <or> >+ <with >+ variable="activePartId"> >+ <equals >+ value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView"> >+ </equals> >+ </with> >+ <reference >+ definitionId="org.eclipse.jubula.client.ui.reference.distinct.activeWhen.GoToTestResultErrorInNotFocusedView"> >+ </reference> >+ </or> >+ </activeWhen> > </handler> > <handler > class="org.eclipse.jubula.client.ui.rcp.handlers.GoToPreviousTestResultErrorHandler" > commandId="org.eclipse.jubula.client.ui.commands.GoToPreviousError"> > <activeWhen> >- <with >- variable="activePartId"> >- <equals >- value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView"> >- </equals> >- </with></activeWhen> >+ <or> >+ <with >+ variable="activePartId"> >+ <equals >+ value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView"> >+ </equals> >+ </with> >+ <reference >+ definitionId="org.eclipse.jubula.client.ui.reference.distinct.activeWhen.GoToTestResultErrorInNotFocusedView"> >+ </reference> >+ </or> >+ </activeWhen> > </handler> > </extension> > <extension point="org.eclipse.ui.commandImages"> >@@ -4062,37 +4074,48 @@ > id="org.eclipse.jubula.client.ui.reference.distinct.visibleWhen.TestResultToolbar"> > <or> > <with >- variable="activeEditorId"> >- <equals >- value="org.eclipse.jubula.client.ui.editors.TestResultViewer"> >- </equals> >- </with> >- <with >- variable="activePartId"> >+ variable="org.eclipse.jubula.client.ui.rcp.variable.isPartToViewTestResultOpen"> > <equals >- value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView"> >+ value="true"> > </equals> > </with> > </or> > </definition> > <definition > id="org.eclipse.jubula.client.ui.reference.distinct.activeWhen.GoToTestResultError"> >- <and> >+ <and> >+ <with >+ variable="activeEditorId"> >+ <equals >+ value="org.eclipse.jubula.client.ui.editors.TestResultViewer"> >+ </equals> >+ </with> >+ <not> >+ <with >+ variable="activePartId"> >+ <equals >+ value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView"> >+ </equals> >+ </with> >+ </not> >+ <not> >+ <with >+ variable="org.eclipse.jubula.client.ui.variable.areGoToErrorButtonsDisabled"> >+ <equals >+ value="true"> >+ </equals> >+ </with> >+ </not> >+ </and> >+ </definition> >+ <definition >+ id="org.eclipse.jubula.client.ui.reference.distinct.activeWhen.GoToTestResultErrorInNotFocusedView"> > <with >- variable="activeEditorId"> >+ variable="org.eclipse.jubula.client.ui.rcp.variable.isTRTreeViewHidden"> > <equals >- value="org.eclipse.jubula.client.ui.editors.TestResultViewer"> >+ value="false"> > </equals> > </with> >- <not> >- <with >- variable="activePartId"> >- <equals >- value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView"> >- </equals> >- </with> >- </not> >- </and> > </definition> > </extension> > </plugin> >diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/controllers/TestResultPartsTracker.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/controllers/TestResultPartsTracker.java >new file mode 100644 >index 0000000..7f24746 >--- /dev/null >+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/controllers/TestResultPartsTracker.java >@@ -0,0 +1,209 @@ >+/******************************************************************************* >+ * Copyright (c) 2004, 2012 BREDEX GmbH. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * BREDEX GmbH - initial API and implementation and/or initial documentation >+ *******************************************************************************/ >+package org.eclipse.jubula.client.ui.rcp.controllers; >+ >+import java.util.ArrayList; >+import java.util.LinkedList; >+import java.util.List; >+ >+import org.eclipse.jubula.client.ui.editors.TestResultViewer; >+import org.eclipse.jubula.client.ui.rcp.sourceprovider.ActiveProjectSourceProvider; >+import org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView; >+import org.eclipse.ui.part.WorkbenchPart; >+ >+/** >+ * @author BREDEX GmbH >+ */ >+public class TestResultPartsTracker { >+ /** >+ * singleton instance >+ */ >+ private static >+ TestResultPartsTracker instance = null; >+ >+ /** >+ * the list of open test result viewers >+ */ >+ private List<TestResultViewer> m_trViewers = >+ new ArrayList<TestResultViewer>(); >+ >+ /** >+ * state is false is Test Result Tree View is hidden >+ * the value of this member is used to define if GoToNext/Previous Error Buttons should be disabled >+ */ >+ private boolean m_isTRTreeViewHidden = true; >+ >+ /** >+ * define the condition if GoToNext/Previous Error Buttons should be disabled >+ */ >+ private boolean m_areButtonsDisabled = true; >+ >+ /** >+ * the ordered by activation time list of open test result viewers and test result view >+ */ >+ private List<WorkbenchPart> m_trParts = >+ new LinkedList<WorkbenchPart>(); >+ >+ /** >+ * the test result tree view >+ */ >+ private TestResultTreeView m_trTreeView = null; >+ >+ /** >+ * the source provider >+ */ >+ private ActiveProjectSourceProvider m_provider = null; >+ >+ /** >+ * private Constructor >+ */ >+ private TestResultPartsTracker() { >+ // empty >+ } >+ >+ /** >+ * get single instance >+ * >+ * @return single instance of ImportFileBP >+ */ >+ public static TestResultPartsTracker getInstance() { >+ if (instance == null) { >+ instance = new TestResultPartsTracker(); >+ } >+ return instance; >+ } >+ >+ /** >+ * Add a test result viewer to this tracker. >+ * @param testResultViewer The test result viewer to add. >+ */ >+ public void addTRViewer(TestResultViewer testResultViewer) { >+ if (testResultViewer != null) { >+ m_trViewers.add(testResultViewer); >+ m_trParts.add(testResultViewer); >+ fireStateChanged(); >+ } >+ } >+ >+ /** >+ * Add a test result tree view to this tracker. >+ * @param testResultTreeView The test result tree view to add. >+ */ >+ public void addTRTreeView(TestResultTreeView testResultTreeView) { >+ if (testResultTreeView != null) { >+ m_trTreeView = testResultTreeView; >+ m_trParts.add(testResultTreeView); >+ m_isTRTreeViewHidden = false; >+ fireStateChanged(); >+ } >+ } >+ >+ /** >+ * @param provider the provider to set >+ */ >+ public void setProvider(ActiveProjectSourceProvider provider) { >+ m_provider = provider; >+ } >+ >+ /** >+ * set m_isTRTreeViewHidden to true or false >+ * @param state the state to what of m_isTRTreeViewHidden will be set >+ */ >+ public void setTRTreeViewHiddenStateTo(boolean state) { >+ m_isTRTreeViewHidden = state; >+ fireStateChanged(); >+ } >+ >+ /** >+ * set m_isTRTreeViewHidden to true or false >+ * @param state the state to what of m_isTRTreeViewHidden will be set >+ */ >+ public void disableGoToButtons(boolean state) { >+ m_areButtonsDisabled = state; >+ fireStateChanged(); >+ } >+ >+ /** >+ * @return the currently open instances of the Test Result Viewer editor >+ */ >+ public List<TestResultViewer> getOpenTRViewers() { >+ List<TestResultViewer> trvs = new ArrayList<TestResultViewer>(); >+ for (TestResultViewer trv : m_trViewers) { >+ trvs.add(trv); >+ } >+ return trvs; >+ } >+ >+ /** >+ * @return the list of open parts to view test result >+ * (test result tree view or test result viewers) >+ * ordered by their activation >+ */ >+ public List<WorkbenchPart> getTRParts() { >+ List<WorkbenchPart> trParts = new LinkedList<WorkbenchPart>(); >+ for (WorkbenchPart trv : m_trParts) { >+ trParts.add(trv); >+ } >+ return trParts; >+ } >+ >+ //QUESTION clone instead of returning the reference to th member? >+ /** >+ * @return the currently open instance of the Test Result Tree View >+ */ >+ public TestResultTreeView getTRTreeView() { >+ return m_trTreeView; >+ } >+ >+ /** >+ * @return the value of m_isTRTreeViewHidden (true if Test Result Tree View is hidden) >+ */ >+ public boolean isTRTreeViewHidden() { >+ return m_isTRTreeViewHidden; >+ } >+ >+ /** >+ * @return the value of m_areButtonsDisabled >+ */ >+ public boolean areButtonsDisabled() { >+ return m_areButtonsDisabled; >+ } >+ >+ /** >+ * Remove a test result tree view from this tracker. >+ * @param testResultViewer The test result tree view to remove. >+ */ >+ public void removeTRViewer(TestResultViewer testResultViewer) { >+ m_trViewers.remove(testResultViewer); >+ m_trParts.remove(testResultViewer); >+ fireStateChanged(); >+ } >+ >+ /** >+ * Remove a test result tree view from this tracker. >+ * @param testResultTreeView The test result tree view to remove. >+ */ >+ public void removeTRTreeView(TestResultTreeView testResultTreeView) { >+ m_trTreeView = null; >+ m_trParts.remove(testResultTreeView); >+ fireStateChanged(); >+ } >+ >+ /** >+ * fire data changed events >+ */ >+ private void fireStateChanged() { >+ if (m_provider != null) { >+ m_provider.handleProjectLoaded(); >+ } >+ } >+ >+} >diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/GoToNextTestResultErrorHandler.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/GoToNextTestResultErrorHandler.java >index f2ecd60..48a3e3d 100644 >--- a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/GoToNextTestResultErrorHandler.java >+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/GoToNextTestResultErrorHandler.java >@@ -10,10 +10,10 @@ > *******************************************************************************/ > package org.eclipse.jubula.client.ui.rcp.handlers; > >-import java.util.List; >- > import org.eclipse.jface.viewers.TreeViewer; >+import org.eclipse.jubula.client.ui.editors.TestResultViewer; > import org.eclipse.jubula.client.ui.handlers.AbstractGoToTestResultErrorHandler; >+import org.eclipse.jubula.client.ui.rcp.controllers.TestResultPartsTracker; > import org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView; > import org.eclipse.ui.IWorkbenchPart; > >@@ -33,11 +33,21 @@ public class GoToNextTestResultErrorHandler extends > return true; > } > >- /** >- * {@inheritDoc} >- */ >- protected TreeViewer handleActiveWorkbenchParts(List<IWorkbenchPart> list) { >- list.get(0).setFocus(); >- return ((TestResultTreeView) list.get(0)).getTreeViewer(); >+ @Override >+ protected TreeViewer handleTestResultPart(IWorkbenchPart part) { >+ TreeViewer viewer = null; >+ if (part instanceof TestResultTreeView) { >+ if (!(TestResultPartsTracker.getInstance(). >+ isTRTreeViewHidden())) { >+ part.setFocus(); >+ TestResultTreeView trTreeView = (TestResultTreeView)part; >+ viewer = trTreeView.getTreeViewer(); >+ } >+ } else if (part instanceof TestResultViewer) { >+ part.setFocus(); >+ TestResultViewer trViewer = (TestResultViewer)part; >+ viewer = trViewer.getTreeViewer(); >+ } >+ return viewer; > } > } >diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/GoToPreviousTestResultErrorHandler.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/GoToPreviousTestResultErrorHandler.java >index 2de616b..562373f 100644 >--- a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/GoToPreviousTestResultErrorHandler.java >+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/GoToPreviousTestResultErrorHandler.java >@@ -10,13 +10,6 @@ > *******************************************************************************/ > package org.eclipse.jubula.client.ui.rcp.handlers; > >-import java.util.List; >- >-import org.eclipse.jface.viewers.TreeViewer; >-import org.eclipse.jubula.client.ui.handlers.AbstractGoToTestResultErrorHandler; >-import org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView; >-import org.eclipse.ui.IWorkbenchPart; >- > /** > * Handler for navigating to the "previous" error in a Test Result. > * >@@ -24,7 +17,7 @@ import org.eclipse.ui.IWorkbenchPart; > * @created September 10, 2013 > */ > public class GoToPreviousTestResultErrorHandler extends >- AbstractGoToTestResultErrorHandler { >+ GoToNextTestResultErrorHandler { > > /** > * {@inheritDoc} >@@ -32,12 +25,4 @@ public class GoToPreviousTestResultErrorHandler extends > protected boolean isForwardIteration() { > return false; > } >- >- /** >- * {@inheritDoc} >- */ >- protected TreeViewer handleActiveWorkbenchParts(List<IWorkbenchPart> list) { >- list.get(0).setFocus(); >- return ((TestResultTreeView) list.get(0)).getTreeViewer(); >- } > } >diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/sourceprovider/ActiveProjectSourceProvider.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/sourceprovider/ActiveProjectSourceProvider.java >index 95a4992..7c3df1f 100644 >--- a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/sourceprovider/ActiveProjectSourceProvider.java >+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/sourceprovider/ActiveProjectSourceProvider.java >@@ -24,6 +24,7 @@ import org.eclipse.jubula.client.core.utils.DatabaseStateDispatcher; > import org.eclipse.jubula.client.core.utils.DatabaseStateEvent; > import org.eclipse.jubula.client.core.utils.IDatabaseStateListener; > import org.eclipse.jubula.client.ui.rcp.controllers.MultipleTCBTracker; >+import org.eclipse.jubula.client.ui.rcp.controllers.TestResultPartsTracker; > import org.eclipse.ui.ISources; > > >@@ -60,6 +61,27 @@ public class ActiveProjectSourceProvider extends AbstractJBSourceProvider > public static final String ARE_MULTIPLE_TCB_OPEN = > "org.eclipse.jubula.client.ui.rcp.variable.areMultipleTCBOpen"; //$NON-NLS-1$ > >+ /** >+ * ID of variable that indicates whether at least one part to view test result >+ * (test result tree view or test result viewer) is open. >+ */ >+ public static final String IS_PART_TO_VIEW_TEST_RESULT_OPEN = >+ "org.eclipse.jubula.client.ui.rcp.variable.isPartToViewTestResultOpen"; //$NON-NLS-1$ >+ >+ /** >+ * ID of definition that indicates whether Go to Next/Previous Error Buttons should be disabled >+ * (the value depends on if open Test Result Tree View is hidden or not) >+ */ >+ public static final String IS_TEST_RESULT_TREE_VIEW_HIDDEN = >+ "org.eclipse.jubula.client.ui.rcp.variable.isTRTreeViewHidden"; //$NON-NLS-1$ >+ >+ /** >+ * ID of definition that indicates whether Go to Next/Previous Error Buttons should be disabled >+ * (the value depends on if open Test Result Tree View is hidden or not) >+ */ >+ public static final String ARE_GO_TO_ERROR_BUTTONS_DISABLED = >+ "org.eclipse.jubula.client.ui.variable.areGoToErrorButtonsDisabled"; //$NON-NLS-1$ >+ > /** > * Constructor. > */ >@@ -69,6 +91,7 @@ public class ActiveProjectSourceProvider extends AbstractJBSourceProvider > ded.addDataChangedListener(this, true); > DatabaseStateDispatcher.addDatabaseStateListener(this); > MultipleTCBTracker.getInstance().setProvider(this); >+ TestResultPartsTracker.getInstance().setProvider(this); > } > > /** >@@ -81,6 +104,7 @@ public class ActiveProjectSourceProvider extends AbstractJBSourceProvider > ded.removeDataChangedListener(this); > DatabaseStateDispatcher.removeDatabaseStateListener(this); > MultipleTCBTracker.getInstance().setProvider(null); >+ TestResultPartsTracker.getInstance().setProvider(null); > } > > /** >@@ -100,6 +124,14 @@ public class ActiveProjectSourceProvider extends AbstractJBSourceProvider > Persistor.instance() != null ? true : false); > currentState.put(ARE_MULTIPLE_TCB_OPEN, > MultipleTCBTracker.getInstance().getOpenTCBs().size() > 1); >+ currentState.put(IS_PART_TO_VIEW_TEST_RESULT_OPEN, >+ TestResultPartsTracker.getInstance(). >+ getTRParts().size() > 0); >+ currentState.put(IS_TEST_RESULT_TREE_VIEW_HIDDEN, >+ TestResultPartsTracker.getInstance(). >+ isTRTreeViewHidden()); >+ currentState.put(ARE_GO_TO_ERROR_BUTTONS_DISABLED, >+ TestResultPartsTracker.getInstance().areButtonsDisabled()); > return currentState; > } > >@@ -111,7 +143,10 @@ public class ActiveProjectSourceProvider extends AbstractJBSourceProvider > return new String[] { IS_PROJECT_ACTIVE, > IS_PROJECT_PROTECTED, > IS_DB_CONNECTION_ESTABLISHED, >- ARE_MULTIPLE_TCB_OPEN }; >+ ARE_MULTIPLE_TCB_OPEN, >+ IS_PART_TO_VIEW_TEST_RESULT_OPEN, >+ IS_TEST_RESULT_TREE_VIEW_HIDDEN, >+ ARE_GO_TO_ERROR_BUTTONS_DISABLED}; > } > > /** >@@ -145,6 +180,18 @@ public class ActiveProjectSourceProvider extends AbstractJBSourceProvider > Persistor.instance() != null ? true : false); > gdFireSourceChanged(ISources.WORKBENCH, ARE_MULTIPLE_TCB_OPEN, > MultipleTCBTracker.getInstance().getOpenTCBs().size() > 1); >+ gdFireSourceChanged(ISources.WORKBENCH, >+ IS_PART_TO_VIEW_TEST_RESULT_OPEN, >+ TestResultPartsTracker.getInstance(). >+ getTRParts().size() > 0); >+ gdFireSourceChanged(ISources.WORKBENCH, >+ IS_TEST_RESULT_TREE_VIEW_HIDDEN, >+ TestResultPartsTracker.getInstance(). >+ isTRTreeViewHidden()); >+ gdFireSourceChanged(ISources.WORKBENCH, >+ ARE_GO_TO_ERROR_BUTTONS_DISABLED, >+ TestResultPartsTracker.getInstance(). >+ areButtonsDisabled()); > } > > /** >diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/views/TestResultTreeView.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/views/TestResultTreeView.java >index 105cca5..fcda503 100644 >--- a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/views/TestResultTreeView.java >+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/views/TestResultTreeView.java >@@ -52,6 +52,7 @@ import org.eclipse.jubula.client.ui.provider.contentprovider.TestResultTreeViewC > import org.eclipse.jubula.client.ui.provider.labelprovider.TestResultTreeViewLabelProvider; > import org.eclipse.jubula.client.ui.rcp.Plugin; > import org.eclipse.jubula.client.ui.rcp.constants.RCPCommandIDs; >+import org.eclipse.jubula.client.ui.rcp.controllers.TestResultPartsTracker; > import org.eclipse.jubula.client.ui.rcp.i18n.Messages; > import org.eclipse.jubula.client.ui.utils.CommandHelper; > import org.eclipse.jubula.client.ui.views.IJBPart; >@@ -157,6 +158,8 @@ public class TestResultTreeView extends ViewPart > final DataEventDispatcher ded = DataEventDispatcher.getInstance(); > ded.addDataChangedListener(this, true); > ded.addProjectLoadedListener(this, true); >+ //add this Test Result Tree to the tracker >+ TestResultPartsTracker.getInstance().addTRTreeView(this); > } > > /** >@@ -187,6 +190,7 @@ public class TestResultTreeView extends ViewPart > DataEventDispatcher.getInstance().removeProjectLoadedListener(this); > DataEventDispatcher.getInstance().removeDataChangedListener(this); > getSite().setSelectionProvider(null); >+ TestResultPartsTracker.getInstance().removeTRTreeView(this); > super.dispose(); > } > >diff --git a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/constants/Constants.java b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/constants/Constants.java >index 766f2f4..230b0f9 100644 >--- a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/constants/Constants.java >+++ b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/constants/Constants.java >@@ -74,6 +74,10 @@ public interface Constants { > public static final String TESTRE_ID = > "org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView"; //$NON-NLS-1$ > >+ /** the ID of the test result viewer */ >+ public static final String TESTRE_VIEWER_ID = >+ "org.eclipse.jubula.client.ui.editors.TestResultViewer"; //$NON-NLS-1$ >+ > /** the ID of the test case browser */ > public static final String TC_BROWSER_ID = > "org.eclipse.jubula.client.ui.rcp.views.TestCaseBrowser"; //$NON-NLS-1$ >diff --git a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/AbstractGoToTestResultErrorHandler.java b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/AbstractGoToTestResultErrorHandler.java >index fb7ee3b..dfbf0ac 100644 >--- a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/AbstractGoToTestResultErrorHandler.java >+++ b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/AbstractGoToTestResultErrorHandler.java >@@ -10,9 +10,6 @@ > *******************************************************************************/ > package org.eclipse.jubula.client.ui.handlers; > >-import java.util.LinkedList; >-import java.util.List; >- > import org.eclipse.core.commands.AbstractHandler; > import org.eclipse.core.commands.ExecutionEvent; > import org.eclipse.core.commands.ExecutionException; >@@ -21,9 +18,14 @@ import org.eclipse.jface.viewers.ITreeContentProvider; > import org.eclipse.jface.viewers.StructuredSelection; > import org.eclipse.jface.viewers.TreeViewer; > import org.eclipse.jubula.client.core.model.TestResultNode; >+import org.eclipse.jubula.client.ui.constants.Constants; >+import org.eclipse.jubula.client.ui.editors.TestResultViewer; > import org.eclipse.jubula.client.ui.utils.TreeViewerIterator; >+import org.eclipse.ui.IEditorReference; >+import org.eclipse.ui.IViewReference; >+import org.eclipse.ui.IWorkbenchPage; > import org.eclipse.ui.IWorkbenchPart; >-import org.eclipse.ui.handlers.HandlerUtil; >+import org.eclipse.ui.PlatformUI; > > > /** >@@ -40,13 +42,9 @@ public abstract class AbstractGoToTestResultErrorHandler > */ > public final Object execute(ExecutionEvent event) > throws ExecutionException { >- >- List<IWorkbenchPart> listOfPossibleParts = >- new LinkedList<IWorkbenchPart>(); >- listOfPossibleParts.add(HandlerUtil.getActivePart(event)); >- listOfPossibleParts.add(HandlerUtil.getActiveEditor(event)); >- TreeViewer viewer = handleActiveWorkbenchParts(listOfPossibleParts); >- >+ activateTestResultTreeView(); >+ TreeViewer viewer = handleTestResultPart( >+ getTestResultPartToExecuteGoToOn()); > IStructuredSelection selection = > (IStructuredSelection)viewer.getSelection(); > ITreeContentProvider contentProvider = >@@ -87,6 +85,61 @@ public abstract class AbstractGoToTestResultErrorHandler > } > > /** >+ * @return part to Execute GoTo on >+ * the active TestResultViewer or TestResultTreeView is selected to be a part >+ * if both TestResultViewer and TestResultTreeView or none of them are active, >+ * the part is considered to be a TestResultViewer >+ */ >+ private IWorkbenchPart getTestResultPartToExecuteGoToOn() { >+ IWorkbenchPage actPage = PlatformUI.getWorkbench(). >+ getActiveWorkbenchWindow().getActivePage(); >+ //part is an active TestResultTreeView >+ if (actPage.getViewReferences().length > 0) { >+ for (IViewReference viewRef : actPage.getViewReferences()) { >+ if ((viewRef.getId().equals(Constants.TESTRE_ID)) >+ && (viewRef.equals(actPage.getActivePartReference()))) { >+ return (IWorkbenchPart)viewRef.getView(true); >+ } >+ } >+ } >+ //part is an active TestResultViewer >+ if (actPage.getEditorReferences().length > 0) { >+ for (IEditorReference edRef : actPage.getEditorReferences()) { >+ if ((edRef.getId().equals(Constants.TESTRE_VIEWER_ID)) >+ && (edRef.getEditor(true). >+ equals(actPage.getActiveEditor()))) { >+ return (IWorkbenchPart)edRef.getEditor(true); >+ } >+ } >+ //part is any of open TestResultViewers >+ for (IEditorReference edRef : actPage.getEditorReferences()) { >+ if (edRef.getId().equals(Constants.TESTRE_VIEWER_ID)) { >+ return (IWorkbenchPart)edRef.getEditor(true); >+ } >+ } >+ } >+ return null; >+ } >+ >+ /** >+ * unlike Editors (for which value of last active editor is >+ * remembered even if Editor loses focus) >+ * last active view is not remembered and need to be activated >+ * at the beginning of GoToTestResultErrorHandler execution >+ */ >+ private void activateTestResultTreeView() { >+ IWorkbenchPage actPage = PlatformUI.getWorkbench(). >+ getActiveWorkbenchWindow().getActivePage(); >+ if (!(actPage.getActiveEditor() instanceof TestResultViewer)) { >+ for (IViewReference viewRef : actPage.getViewReferences()) { >+ if (viewRef.getId().equals(Constants.TESTRE_ID)) { >+ actPage.activate(viewRef.getView(true)); >+ } >+ } >+ } >+ } >+ >+ /** > * > * @param node The node to check. > * @return <code>true</code> if the node is considered an error node. >@@ -104,9 +157,9 @@ public abstract class AbstractGoToTestResultErrorHandler > protected abstract boolean isForwardIteration(); > > /** >- * @param listOfPossibleParts a list of two possible parts to execute the GoTo on >- * @return the TreeViewer of the active part >+ * @param part a part to execute the GoTo on >+ * @return the TreeViewer of the part to execute the GoTo on > */ >- protected abstract TreeViewer handleActiveWorkbenchParts( >- List<IWorkbenchPart> listOfPossibleParts); >+ protected abstract TreeViewer handleTestResultPart( >+ IWorkbenchPart part); > } >\ No newline at end of file >diff --git a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/GoToNextTestResultErrorHandler.java b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/GoToNextTestResultErrorHandler.java >index 68f592b..1dc3afa 100644 >--- a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/GoToNextTestResultErrorHandler.java >+++ b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/GoToNextTestResultErrorHandler.java >@@ -10,11 +10,11 @@ > *******************************************************************************/ > package org.eclipse.jubula.client.ui.handlers; > >-import java.util.List; >- > import org.eclipse.jface.viewers.TreeViewer; > import org.eclipse.jubula.client.ui.editors.TestResultViewer; >+import org.eclipse.ui.IWorkbenchPage; > import org.eclipse.ui.IWorkbenchPart; >+import org.eclipse.ui.PlatformUI; > > /** > * Handler for navigating to the "next" error in a Test Result. >@@ -32,11 +32,24 @@ public class GoToNextTestResultErrorHandler extends > return true; > } > >- /** >- * {@inheritDoc} >- */ >- protected TreeViewer handleActiveWorkbenchParts(List<IWorkbenchPart> list) { >- list.get(1).setFocus(); >- return ((TestResultViewer) list.get(1)).getTreeViewer(); >+ @Override >+ protected TreeViewer handleTestResultPart(IWorkbenchPart part) { >+ TestResultViewer trViewer = null; >+ boolean existActTRViewer = false; >+ IWorkbenchPage actPage = PlatformUI.getWorkbench(). >+ getActiveWorkbenchWindow().getActivePage(); >+ if ((part instanceof TestResultViewer) >+ && (part.equals(actPage.getActiveEditor()))) { >+ part.setFocus(); >+ trViewer = (TestResultViewer) part; >+ existActTRViewer = true; >+ } >+ if (!existActTRViewer) { >+ if (part instanceof TestResultViewer) { >+ part.setFocus(); >+ trViewer = (TestResultViewer) part; >+ } >+ } >+ return trViewer.getTreeViewer(); > } > } >\ No newline at end of file >diff --git a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/GoToPreviousTestResultErrorHandler.java b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/GoToPreviousTestResultErrorHandler.java >index c36527d..9d0a44c 100644 >--- a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/GoToPreviousTestResultErrorHandler.java >+++ b/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/GoToPreviousTestResultErrorHandler.java >@@ -10,11 +10,6 @@ > *******************************************************************************/ > package org.eclipse.jubula.client.ui.handlers; > >-import java.util.List; >- >-import org.eclipse.jface.viewers.TreeViewer; >-import org.eclipse.jubula.client.ui.editors.TestResultViewer; >-import org.eclipse.ui.IWorkbenchPart; > > /** > * Handler for navigating to the "previous" error in a Test Result. >@@ -23,7 +18,7 @@ import org.eclipse.ui.IWorkbenchPart; > * @created May 17, 2010 > */ > public class GoToPreviousTestResultErrorHandler extends >- AbstractGoToTestResultErrorHandler { >+ GoToNextTestResultErrorHandler { > > /** > * {@inheritDoc} >@@ -31,12 +26,4 @@ public class GoToPreviousTestResultErrorHandler extends > protected boolean isForwardIteration() { > return false; > } >- >- /** >- * {@inheritDoc} >- */ >- protected TreeViewer handleActiveWorkbenchParts(List<IWorkbenchPart> list) { >- list.get(1).setFocus(); >- return ((TestResultViewer) list.get(1)).getTreeViewer(); >- } > } >diff --git a/org.eclipse.jubula.project.configuration/ide-launch/dashboard.launch b/org.eclipse.jubula.project.configuration/ide-launch/dashboard.launch >index 223a498..9b9a2ce 100644 >--- a/org.eclipse.jubula.project.configuration/ide-launch/dashboard.launch >+++ b/org.eclipse.jubula.project.configuration/ide-launch/dashboard.launch >@@ -16,7 +16,7 @@ > <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> > <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console -clean -debug"/> > <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> >-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.jubula.dashboard.jdbc_driver=oracle.jdbc.driver.OracleDriver -Dorg.eclipse.jubula.dashboard.jdbc_url=<dbURL> -Dorg.eclipse.jubula.dashboard.database_username=<dbuser> -Dorg.eclipse.jubula.dashboard.database_password=<dbpw>"/> >+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.jubula.dashboard.jdbc_driver=oracle.jdbc.driver.OracleDriver -Dorg.eclipse.jubula.dashboard.jdbc_url=jdbc:oracle:thin:@dbbxtest.bredex.de:1521:bxutf -Dorg.eclipse.jubula.dashboard.database_username=dev_testweek -Dorg.eclipse.jubula.dashboard.database_password=bxtest"/> > <stringAttribute key="org.eclipse.rap.launch.browserMode" value="INTERNAL"/> > <stringAttribute key="org.eclipse.rap.launch.contextpath" value=""/> > <stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/dashboard"/> >@@ -40,5 +40,5 @@ > <booleanAttribute key="tracing" value="false"/> > <booleanAttribute key="useCustomFeatures" value="false"/> > <booleanAttribute key="useDefaultConfigArea" value="true"/> >-<stringAttribute key="workspace_bundles" value="com.bredexsw.jubula.client.core.driver@default:false,org.eclipse.jubula.app.dashboard@default:default,org.eclipse.jubula.client.core@default:default,org.eclipse.jubula.client.ui.rap@default:default,org.eclipse.jubula.client.ui@default:default,org.eclipse.jubula.communication@default:default,org.eclipse.jubula.dashboard.jettycustomizer@default:false,org.eclipse.jubula.toolkit.common@default:default,org.eclipse.jubula.toolkit.provider.base@default:default,org.eclipse.jubula.toolkit.provider.concrete@default:default,org.eclipse.jubula.toolkit.provider.html@default:default,org.eclipse.jubula.toolkit.provider.rcp.gef@default:default,org.eclipse.jubula.toolkit.provider.rcp@default:default,org.eclipse.jubula.toolkit.provider.swing@default:default,org.eclipse.jubula.toolkit.provider.swt@default:default,org.eclipse.jubula.toolkit.provider.win.apps@default:default,org.eclipse.jubula.toolkit.provider.win@default:default,org.eclipse.jubula.tools@default:default,org.eclipse.jubula.ui.compatibility@default:default"/> >+<stringAttribute key="workspace_bundles" value="com.bredexsw.jubula.client.core.driver@default:false,org.eclipse.jubula.app.dashboard@default:default,org.eclipse.jubula.client.core@default:default,org.eclipse.jubula.client.ui.rap@default:default,org.eclipse.jubula.client.ui@default:default,org.eclipse.jubula.communication@default:default,org.eclipse.jubula.dashboard.jettycustomizer@default:false,org.eclipse.jubula.toolkit.common@default:default,org.eclipse.jubula.toolkit.provider.base@default:default,org.eclipse.jubula.toolkit.provider.concrete@default:default,org.eclipse.jubula.toolkit.provider.html@default:default,org.eclipse.jubula.toolkit.provider.rcp.gef@default:default,org.eclipse.jubula.toolkit.provider.rcp@default:default,org.eclipse.jubula.toolkit.provider.swing@default:default,org.eclipse.jubula.toolkit.provider.swt@default:default,org.eclipse.jubula.toolkit.provider.win@default:default,org.eclipse.jubula.tools@default:default,org.eclipse.jubula.ui.compatibility@default:default"/> > </launchConfiguration> >-- >1.7.11 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 417829
:
237947
|
238932
|
239343