Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 417829 | Differences between
and this patch

Collapse All | Expand All

(-)a/org.eclipse.jubula.app/src/org/eclipse/jubula/app/core/JubulaWorkbenchWindowAdvisor.java (-2 / +149 lines)
Lines 30-43 import org.eclipse.jubula.client.core.utils.DatabaseStateDispatcher; Link Here
30
import org.eclipse.jubula.client.core.utils.DatabaseStateEvent;
30
import org.eclipse.jubula.client.core.utils.DatabaseStateEvent;
31
import org.eclipse.jubula.client.core.utils.IDatabaseStateListener;
31
import org.eclipse.jubula.client.core.utils.IDatabaseStateListener;
32
import org.eclipse.jubula.client.ui.constants.CommandIDs;
32
import org.eclipse.jubula.client.ui.constants.CommandIDs;
33
import org.eclipse.jubula.client.ui.constants.Constants;
34
import org.eclipse.jubula.client.ui.editors.TestResultViewer;
33
import org.eclipse.jubula.client.ui.handlers.project.AbstractSelectDatabaseHandler;
35
import org.eclipse.jubula.client.ui.handlers.project.AbstractSelectDatabaseHandler;
34
import org.eclipse.jubula.client.ui.rcp.Plugin;
36
import org.eclipse.jubula.client.ui.rcp.Plugin;
35
import org.eclipse.jubula.client.ui.rcp.businessprocess.ProjectUIBP;
37
import org.eclipse.jubula.client.ui.rcp.businessprocess.ProjectUIBP;
36
import org.eclipse.jubula.client.ui.rcp.constants.RCPCommandIDs;
38
import org.eclipse.jubula.client.ui.rcp.constants.RCPCommandIDs;
39
import org.eclipse.jubula.client.ui.rcp.controllers.TestResultPartsTracker;
40
import org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView;
37
import org.eclipse.jubula.client.ui.utils.CommandHelper;
41
import org.eclipse.jubula.client.ui.utils.CommandHelper;
38
import org.eclipse.jubula.client.ui.utils.JobUtils;
42
import org.eclipse.jubula.client.ui.utils.JobUtils;
39
import org.eclipse.jubula.tools.constants.StringConstants;
43
import org.eclipse.jubula.tools.constants.StringConstants;
40
import org.eclipse.swt.graphics.Image;
44
import org.eclipse.swt.graphics.Image;
45
import org.eclipse.ui.IEditorPart;
46
import org.eclipse.ui.IPartListener;
47
import org.eclipse.ui.IPerspectiveDescriptor;
48
import org.eclipse.ui.IViewPart;
49
import org.eclipse.ui.IViewReference;
41
import org.eclipse.ui.IWorkbenchPage;
50
import org.eclipse.ui.IWorkbenchPage;
42
import org.eclipse.ui.IWorkbenchPart;
51
import org.eclipse.ui.IWorkbenchPart;
43
import org.eclipse.ui.IWorkbenchWindow;
52
import org.eclipse.ui.IWorkbenchWindow;
Lines 47-52 import org.eclipse.ui.application.ActionBarAdvisor; Link Here
47
import org.eclipse.ui.application.IActionBarConfigurer;
56
import org.eclipse.ui.application.IActionBarConfigurer;
48
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
57
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
49
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
58
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
59
import org.eclipse.ui.part.ViewPart;
50
import org.eclipse.ui.plugin.AbstractUIPlugin;
60
import org.eclipse.ui.plugin.AbstractUIPlugin;
51
61
52
62
Lines 59-65 public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { Link Here
59
     * the delay used to schedule the auto logon job
69
     * the delay used to schedule the auto logon job
60
     */
70
     */
61
    private static final int AUTO_LOGON_JOB_SCHEDULE_DELAY = 1000;
71
    private static final int AUTO_LOGON_JOB_SCHEDULE_DELAY = 1000;
62
72
    
63
    /** 
73
    /** 
64
     * all basic action sets that should be hidden when running Jubula as 
74
     * all basic action sets that should be hidden when running Jubula as 
65
     * a stand-alone client 
75
     * a stand-alone client 
Lines 71-76 public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { Link Here
71
        "org.eclipse.ui.edit.text.actionSet.navigation", //$NON-NLS-1$
81
        "org.eclipse.ui.edit.text.actionSet.navigation", //$NON-NLS-1$
72
        "org.eclipse.ui.edit.text.actionSet.annotationNavigation" //$NON-NLS-1$
82
        "org.eclipse.ui.edit.text.actionSet.annotationNavigation" //$NON-NLS-1$
73
    };
83
    };
84
85
    /**
86
     * the active page of active workbench window
87
     */
88
    private static IWorkbenchPage actPage;
89
    
90
    /**
91
     * the listener to track parts for viewing test results
92
     */
93
    private static PartListenerToTrackTRParts trPartslistener;
94
    
95
    /**
96
     * the current perspective descriptor of the active page
97
     */
98
    private static IPerspectiveDescriptor currPesrpDescriptor;
74
    
99
    
75
    /**
100
    /**
76
     * the application window title updater
101
     * the application window title updater
Lines 78-83 public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { Link Here
78
    private ApplicationWindowTitleUpdater m_updater;
103
    private ApplicationWindowTitleUpdater m_updater;
79
    
104
    
80
    /**
105
    /**
106
     * sets the value of the current perspective descriptor of the active page
107
     * @param pDescr the value to set 
108
     */
109
    private static void setCurrentPesrpective(IPerspectiveDescriptor pDescr) {
110
        currPesrpDescriptor = pDescr;
111
    }
112
    
113
    /**
114
     *@return the value of the current perspective descriptor of the active page
115
     */
116
    private static IPerspectiveDescriptor getCurrentPesrpective() {
117
        return currPesrpDescriptor;
118
    }
119
    
120
    /**
121
     * @author BREDEX GmbH
122
     * 
123
     */
124
    private static class PartListenerToTrackTRParts implements IPartListener {
125
        /** {@inheritDoc} */
126
        public void partActivated(IWorkbenchPart part) {
127
            if (!actPage.getPerspective().equals(getCurrentPesrpective())) {
128
                TestResultPartsTracker.getInstance().disableGoToButtons(true);
129
                TestResultPartsTracker.getInstance().
130
                    setTRTreeViewHiddenStateTo(true);
131
                setCurrentPesrpective(actPage.getPerspective());
132
            }
133
            if (part instanceof TestResultTreeView) { 
134
                TestResultPartsTracker.getInstance().
135
                    setTRTreeViewHiddenStateTo(false);
136
            }
137
            if (part instanceof IEditorPart) {
138
                if (part instanceof TestResultViewer) {
139
                    TestResultPartsTracker.getInstance().
140
                        disableGoToButtons(false);
141
                } else {
142
                    TestResultPartsTracker.getInstance().
143
                        disableGoToButtons(true);
144
                }
145
            }
146
        }
147
148
        /** {@inheritDoc} */
149
        public void partOpened(IWorkbenchPart part) {
150
            if (part instanceof TestResultTreeView) {
151
                TestResultPartsTracker.getInstance().
152
                    setTRTreeViewHiddenStateTo(false);
153
            } else if (part instanceof TestResultViewer) {
154
                TestResultPartsTracker.getInstance().
155
                    addTRViewer((TestResultViewer)part);
156
            }
157
        }
158
159
        /** {@inheritDoc} */
160
        public void partDeactivated(IWorkbenchPart part) {
161
            //do nothing
162
        }
163
164
        /** {@inheritDoc} */
165
        public void partClosed(IWorkbenchPart part) {
166
            if (part instanceof TestResultTreeView) {
167
                TestResultPartsTracker.getInstance().
168
                    setTRTreeViewHiddenStateTo(true);
169
            } else if (part instanceof TestResultViewer) {
170
                TestResultPartsTracker.getInstance().
171
                    removeTRViewer((TestResultViewer)part);
172
            }
173
        }
174
175
        /** {@inheritDoc} */
176
        public void partBroughtToTop(IWorkbenchPart part) {
177
            if (part instanceof TestResultTreeView) {
178
                TestResultPartsTracker.getInstance().
179
                    setTRTreeViewHiddenStateTo(false);
180
            }
181
            if (!((part instanceof TestResultTreeView) 
182
                  || (part instanceof TestResultViewer))) {
183
                TestResultPartsTracker.getInstance().getOpenTRViewers();
184
                if (part instanceof IViewPart) {
185
                    try {
186
                        IViewPart[] stackedViews = 
187
                                actPage.getViewStack((ViewPart)part);
188
                        for (IViewPart iViewPart : stackedViews) {
189
                            if (iViewPart instanceof TestResultTreeView) {
190
                                TestResultPartsTracker.getInstance().
191
                                    setTRTreeViewHiddenStateTo(true);
192
                            }
193
                        }
194
                    } catch (NullPointerException e) {
195
                        //if stack was not jet created (when view is moved to the place where no other views are located)
196
                    }
197
                }
198
            }
199
        }
200
    }
201
    
202
    /**
81
     * @author BREDEX GmbH
203
     * @author BREDEX GmbH
82
     * @created 09.04.2011
204
     * @created 09.04.2011
83
     */
205
     */
Lines 192-198 public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { Link Here
192
                }
314
                }
193
            }
315
            }
194
        }
316
        }
195
317
        
318
        trPartslistener = new PartListenerToTrackTRParts();
319
        actPage = PlatformUI.getWorkbench().
320
                getActiveWorkbenchWindow().getActivePage();
321
        actPage.addPartListener(trPartslistener);
322
        setCurrentPesrpective(actPage.getPerspective());
323
//        addListenerToTrackTRParts(actPage);
324
        
325
        handleTestResultTreeViewInitialState(actPage);
326
        
196
        AbstractUIPlugin plugin = Activator.getDefault();
327
        AbstractUIPlugin plugin = Activator.getDefault();
197
        ImageRegistry imageRegistry = plugin.getImageRegistry();
328
        ImageRegistry imageRegistry = plugin.getImageRegistry();
198
        getWindowConfigurer().getWindow().getShell().setImages(
329
        getWindowConfigurer().getWindow().getShell().setImages(
Lines 216-221 public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { Link Here
216
    }
347
    }
217
348
218
    /**
349
    /**
350
     * @param page the page for which state of Test Result Tree View is tracked and handled
351
     */
352
    private void handleTestResultTreeViewInitialState(IWorkbenchPage page) {
353
        for (IViewReference viewRef : page.getViewReferences()) {
354
            if (viewRef.getId().equals(Constants.TESTRE_ID)) {
355
                TestResultPartsTracker.getInstance().
356
                    addTRTreeView((TestResultTreeView)viewRef.getPart(true));
357
                TestResultPartsTracker.getInstance().
358
                    setTRTreeViewHiddenStateTo(true);
359
            }
360
        }
361
    }
362
363
    /**
219
     * invoke implicit startup hooks
364
     * invoke implicit startup hooks
220
     */
365
     */
221
    private void checkAndPerformStartupHooks() {
366
    private void checkAndPerformStartupHooks() {
Lines 271-275 public class JubulaWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { Link Here
271
        ded.removeProjectLoadedListener(m_updater);
416
        ded.removeProjectLoadedListener(m_updater);
272
        ded.removeDataChangedListener(m_updater);
417
        ded.removeDataChangedListener(m_updater);
273
        DatabaseStateDispatcher.removeDatabaseStateListener(m_updater);
418
        DatabaseStateDispatcher.removeDatabaseStateListener(m_updater);
419
        PlatformUI.getWorkbench().getActiveWorkbenchWindow().
420
            getActivePage().removePartListener(trPartslistener);
274
    }
421
    }
275
}
422
}
(-)a/org.eclipse.jubula.client.ui.rcp/plugin.xml (-33 / +56 lines)
Lines 2838-2861 Link Here
2838
    <handler
2838
    <handler
2839
          class="org.eclipse.jubula.client.ui.rcp.handlers.GoToNextTestResultErrorHandler"
2839
          class="org.eclipse.jubula.client.ui.rcp.handlers.GoToNextTestResultErrorHandler"
2840
          commandId="org.eclipse.jubula.client.ui.commands.GoToNextError">
2840
          commandId="org.eclipse.jubula.client.ui.commands.GoToNextError">
2841
       <activeWhen>
2841
       <activeWhen>       
2842
          <with
2842
          <or>
2843
                variable="activePartId">
2843
            <with
2844
             <equals
2844
                    variable="activePartId">
2845
                   value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView">
2845
                 <equals
2846
             </equals>
2846
                       value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView">
2847
          </with></activeWhen>
2847
                 </equals>
2848
             </with>
2849
             <reference
2850
                 definitionId="org.eclipse.jubula.client.ui.reference.distinct.activeWhen.GoToTestResultErrorInNotFocusedView">
2851
             </reference>
2852
          </or>
2853
       </activeWhen>
2848
    </handler>
2854
    </handler>
2849
    <handler
2855
    <handler
2850
          class="org.eclipse.jubula.client.ui.rcp.handlers.GoToPreviousTestResultErrorHandler"
2856
          class="org.eclipse.jubula.client.ui.rcp.handlers.GoToPreviousTestResultErrorHandler"
2851
          commandId="org.eclipse.jubula.client.ui.commands.GoToPreviousError">
2857
          commandId="org.eclipse.jubula.client.ui.commands.GoToPreviousError">
2852
       <activeWhen>
2858
       <activeWhen>
2853
          <with
2859
          <or>  
2854
                variable="activePartId">
2860
              <with
2855
             <equals
2861
                    variable="activePartId">
2856
                   value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView">
2862
                 <equals
2857
             </equals>
2863
                       value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView">
2858
          </with></activeWhen>
2864
                 </equals>
2865
              </with>
2866
              <reference
2867
                 definitionId="org.eclipse.jubula.client.ui.reference.distinct.activeWhen.GoToTestResultErrorInNotFocusedView">
2868
             </reference>              
2869
          </or>
2870
        </activeWhen>
2859
    </handler>
2871
    </handler>
2860
  </extension>
2872
  </extension>
2861
  <extension point="org.eclipse.ui.commandImages">
2873
  <extension point="org.eclipse.ui.commandImages">
Lines 4062-4098 Link Here
4062
           id="org.eclipse.jubula.client.ui.reference.distinct.visibleWhen.TestResultToolbar">
4074
           id="org.eclipse.jubula.client.ui.reference.distinct.visibleWhen.TestResultToolbar">
4063
        <or>
4075
        <or>
4064
           <with
4076
           <with
4065
                 variable="activeEditorId">
4077
                 variable="org.eclipse.jubula.client.ui.rcp.variable.isPartToViewTestResultOpen">
4066
              <equals
4067
                    value="org.eclipse.jubula.client.ui.editors.TestResultViewer">
4068
              </equals>
4069
           </with>
4070
           <with
4071
                 variable="activePartId">
4072
              <equals
4078
              <equals
4073
                    value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView">
4079
                    value="true">
4074
              </equals>
4080
              </equals>
4075
           </with>
4081
           </with>
4076
        </or>
4082
        </or>
4077
     </definition>
4083
     </definition>
4078
     <definition
4084
     <definition
4079
           id="org.eclipse.jubula.client.ui.reference.distinct.activeWhen.GoToTestResultError">
4085
           id="org.eclipse.jubula.client.ui.reference.distinct.activeWhen.GoToTestResultError">
4080
        <and>
4086
               <and>
4087
                   <with
4088
                         variable="activeEditorId">
4089
                      <equals
4090
                            value="org.eclipse.jubula.client.ui.editors.TestResultViewer">
4091
                      </equals>
4092
                   </with>
4093
                   <not>
4094
                      <with
4095
                            variable="activePartId">
4096
                         <equals
4097
                               value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView">
4098
                         </equals>
4099
                      </with>
4100
                   </not>
4101
                   <not>
4102
                      <with
4103
                            variable="org.eclipse.jubula.client.ui.variable.areGoToErrorButtonsDisabled">
4104
                         <equals
4105
                               value="true">
4106
                         </equals>
4107
                      </with>
4108
                   </not>
4109
                </and>
4110
     </definition>
4111
     <definition
4112
           id="org.eclipse.jubula.client.ui.reference.distinct.activeWhen.GoToTestResultErrorInNotFocusedView">
4081
           <with
4113
           <with
4082
                 variable="activeEditorId">
4114
                 variable="org.eclipse.jubula.client.ui.rcp.variable.isTRTreeViewHidden">
4083
              <equals
4115
              <equals
4084
                    value="org.eclipse.jubula.client.ui.editors.TestResultViewer">
4116
                 value="false">
4085
              </equals>
4117
              </equals>
4086
           </with>
4118
           </with>
4087
           <not>
4088
              <with
4089
                    variable="activePartId">
4090
                 <equals
4091
                       value="org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView">
4092
                 </equals>
4093
              </with>
4094
           </not>
4095
        </and>
4096
     </definition>
4119
     </definition>
4097
  </extension>
4120
  </extension>
4098
</plugin>
4121
</plugin>
(-)a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/controllers/TestResultPartsTracker.java (+209 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2004, 2012 BREDEX GmbH.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     BREDEX GmbH - initial API and implementation and/or initial documentation
10
 *******************************************************************************/
11
package org.eclipse.jubula.client.ui.rcp.controllers;
12
13
import java.util.ArrayList;
14
import java.util.LinkedList;
15
import java.util.List;
16
17
import org.eclipse.jubula.client.ui.editors.TestResultViewer;
18
import org.eclipse.jubula.client.ui.rcp.sourceprovider.ActiveProjectSourceProvider;
19
import org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView;
20
import org.eclipse.ui.part.WorkbenchPart;
21
22
/**
23
 * @author BREDEX GmbH
24
 */
25
public class TestResultPartsTracker {
26
    /**
27
     * singleton instance
28
     */
29
    private static 
30
    TestResultPartsTracker instance = null;
31
32
    /**
33
     * the list of open test result viewers
34
     */
35
    private List<TestResultViewer> m_trViewers = 
36
            new ArrayList<TestResultViewer>();
37
    
38
    /**
39
     * state is false is Test Result Tree View is hidden
40
     * the value of this member is used to define if GoToNext/Previous Error Buttons should be disabled
41
     */
42
    private boolean m_isTRTreeViewHidden = true;
43
    
44
    /**
45
     * define the condition if GoToNext/Previous Error Buttons should be disabled
46
     */
47
    private boolean m_areButtonsDisabled = true;
48
    
49
    /**
50
     * the ordered by activation time list of open test result viewers and test result view
51
     */
52
    private List<WorkbenchPart> m_trParts = 
53
            new LinkedList<WorkbenchPart>();
54
55
    /**
56
     * the test result tree view
57
     */
58
    private TestResultTreeView m_trTreeView = null;
59
    
60
    /**
61
     * the source provider
62
     */
63
    private ActiveProjectSourceProvider m_provider = null;
64
65
    /**
66
     * private Constructor
67
     */
68
    private TestResultPartsTracker() {
69
        // empty
70
    }
71
72
    /**
73
     * get single instance
74
     * 
75
     * @return single instance of ImportFileBP
76
     */
77
    public static TestResultPartsTracker getInstance() {
78
        if (instance == null) {
79
            instance = new TestResultPartsTracker();
80
        }
81
        return instance;
82
    }
83
84
    /**
85
     * Add a test result viewer to this tracker.
86
     * @param testResultViewer The test result viewer to add.
87
     */
88
    public void addTRViewer(TestResultViewer testResultViewer) {
89
        if (testResultViewer != null) {
90
            m_trViewers.add(testResultViewer);
91
            m_trParts.add(testResultViewer);
92
            fireStateChanged();
93
        }
94
    }
95
    
96
    /**
97
     * Add a test result tree view to this tracker.
98
     * @param testResultTreeView The test result tree view to add.
99
     */
100
    public void addTRTreeView(TestResultTreeView testResultTreeView) {
101
        if (testResultTreeView != null) {
102
            m_trTreeView = testResultTreeView;
103
            m_trParts.add(testResultTreeView);
104
            m_isTRTreeViewHidden = false;
105
            fireStateChanged();
106
        }
107
    }
108
109
    /**
110
     * @param provider the provider to set
111
     */
112
    public void setProvider(ActiveProjectSourceProvider provider) {
113
        m_provider = provider;
114
    }
115
    
116
    /**
117
     * set m_isTRTreeViewHidden to true or false
118
     * @param state the state to what of m_isTRTreeViewHidden will be set
119
     */
120
    public void setTRTreeViewHiddenStateTo(boolean state) {
121
        m_isTRTreeViewHidden = state;
122
        fireStateChanged();
123
    }
124
    
125
    /**
126
     * set m_isTRTreeViewHidden to true or false
127
     * @param state the state to what of m_isTRTreeViewHidden will be set
128
     */
129
    public void disableGoToButtons(boolean state) {
130
        m_areButtonsDisabled = state;
131
        fireStateChanged();
132
    }
133
    
134
    /**
135
     * @return the currently open instances of the Test Result Viewer editor
136
     */
137
    public List<TestResultViewer> getOpenTRViewers() {
138
        List<TestResultViewer> trvs = new ArrayList<TestResultViewer>();
139
        for (TestResultViewer trv : m_trViewers) {
140
            trvs.add(trv);
141
        }
142
        return trvs;
143
    }
144
    
145
    /**
146
     * @return the list of open parts to view test result
147
     * (test result tree view or test result viewers)
148
     * ordered by their activation
149
     */
150
    public List<WorkbenchPart> getTRParts() {
151
        List<WorkbenchPart> trParts = new LinkedList<WorkbenchPart>();
152
        for (WorkbenchPart trv : m_trParts) {
153
            trParts.add(trv);
154
        }
155
        return trParts;
156
    }
157
    
158
    //QUESTION clone instead of returning the reference to th member?
159
    /**
160
     * @return the currently open instance of the Test Result Tree View
161
     */
162
    public TestResultTreeView getTRTreeView() {
163
        return m_trTreeView;
164
    }
165
    
166
    /**
167
     * @return the value of m_isTRTreeViewHidden (true if Test Result Tree View is hidden)
168
     */
169
    public boolean isTRTreeViewHidden() {
170
        return m_isTRTreeViewHidden;
171
    }
172
173
    /**
174
     * @return the value of m_areButtonsDisabled
175
     */
176
    public boolean areButtonsDisabled() {
177
        return m_areButtonsDisabled;
178
    }
179
    
180
    /**
181
     * Remove a test result tree view from this tracker.
182
     * @param testResultViewer The test result tree view to remove.
183
     */
184
    public void removeTRViewer(TestResultViewer testResultViewer) {
185
        m_trViewers.remove(testResultViewer);
186
        m_trParts.remove(testResultViewer);
187
        fireStateChanged();
188
    }
189
    
190
    /**
191
     * Remove a test result tree view from this tracker.
192
     * @param testResultTreeView The test result tree view to remove.
193
     */
194
    public void removeTRTreeView(TestResultTreeView testResultTreeView) {
195
        m_trTreeView = null;
196
        m_trParts.remove(testResultTreeView);
197
        fireStateChanged();
198
    }
199
200
    /**
201
     * fire data changed events
202
     */
203
    private void fireStateChanged() {
204
        if (m_provider != null) {
205
            m_provider.handleProjectLoaded();
206
        }
207
    }
208
    
209
}
(-)a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/GoToNextTestResultErrorHandler.java (-8 / +18 lines)
Lines 10-19 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.jubula.client.ui.rcp.handlers;
11
package org.eclipse.jubula.client.ui.rcp.handlers;
12
12
13
import java.util.List;
14
15
import org.eclipse.jface.viewers.TreeViewer;
13
import org.eclipse.jface.viewers.TreeViewer;
14
import org.eclipse.jubula.client.ui.editors.TestResultViewer;
16
import org.eclipse.jubula.client.ui.handlers.AbstractGoToTestResultErrorHandler;
15
import org.eclipse.jubula.client.ui.handlers.AbstractGoToTestResultErrorHandler;
16
import org.eclipse.jubula.client.ui.rcp.controllers.TestResultPartsTracker;
17
import org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView;
17
import org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView;
18
import org.eclipse.ui.IWorkbenchPart;
18
import org.eclipse.ui.IWorkbenchPart;
19
19
Lines 33-43 public class GoToNextTestResultErrorHandler extends Link Here
33
        return true;
33
        return true;
34
    }
34
    }
35
35
36
    /**
36
    @Override
37
     * {@inheritDoc}
37
    protected TreeViewer handleTestResultPart(IWorkbenchPart part) {
38
     */
38
        TreeViewer viewer = null;
39
    protected TreeViewer handleActiveWorkbenchParts(List<IWorkbenchPart> list) {
39
        if (part instanceof TestResultTreeView) {
40
        list.get(0).setFocus();
40
            if (!(TestResultPartsTracker.getInstance().
41
        return ((TestResultTreeView) list.get(0)).getTreeViewer();
41
                    isTRTreeViewHidden())) {
42
                part.setFocus();
43
                TestResultTreeView trTreeView = (TestResultTreeView)part;
44
                viewer = trTreeView.getTreeViewer();
45
            }
46
        } else if (part instanceof TestResultViewer) { 
47
            part.setFocus();
48
            TestResultViewer trViewer = (TestResultViewer)part;
49
            viewer = trViewer.getTreeViewer();
50
        }
51
        return viewer;
42
    }
52
    }
43
}
53
}
(-)a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/GoToPreviousTestResultErrorHandler.java (-16 / +1 lines)
Lines 10-22 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.jubula.client.ui.rcp.handlers;
11
package org.eclipse.jubula.client.ui.rcp.handlers;
12
12
13
import java.util.List;
14
15
import org.eclipse.jface.viewers.TreeViewer;
16
import org.eclipse.jubula.client.ui.handlers.AbstractGoToTestResultErrorHandler;
17
import org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView;
18
import org.eclipse.ui.IWorkbenchPart;
19
20
/**
13
/**
21
 * Handler for navigating to the "previous" error in a Test Result.
14
 * Handler for navigating to the "previous" error in a Test Result.
22
 * 
15
 * 
Lines 24-30 import org.eclipse.ui.IWorkbenchPart; Link Here
24
 * @created September 10, 2013
17
 * @created September 10, 2013
25
 */
18
 */
26
public class GoToPreviousTestResultErrorHandler extends
19
public class GoToPreviousTestResultErrorHandler extends
27
        AbstractGoToTestResultErrorHandler {
20
        GoToNextTestResultErrorHandler {
28
21
29
    /**
22
    /**
30
     * {@inheritDoc}
23
     * {@inheritDoc}
Lines 32-43 public class GoToPreviousTestResultErrorHandler extends Link Here
32
    protected boolean isForwardIteration() {
25
    protected boolean isForwardIteration() {
33
        return false;
26
        return false;
34
    }
27
    }
35
36
    /**
37
     * {@inheritDoc}
38
     */
39
    protected TreeViewer handleActiveWorkbenchParts(List<IWorkbenchPart> list) {
40
        list.get(0).setFocus();
41
        return ((TestResultTreeView) list.get(0)).getTreeViewer();
42
    }
43
}
28
}
(-)a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/sourceprovider/ActiveProjectSourceProvider.java (-1 / +48 lines)
Lines 24-29 import org.eclipse.jubula.client.core.utils.DatabaseStateDispatcher; Link Here
24
import org.eclipse.jubula.client.core.utils.DatabaseStateEvent;
24
import org.eclipse.jubula.client.core.utils.DatabaseStateEvent;
25
import org.eclipse.jubula.client.core.utils.IDatabaseStateListener;
25
import org.eclipse.jubula.client.core.utils.IDatabaseStateListener;
26
import org.eclipse.jubula.client.ui.rcp.controllers.MultipleTCBTracker;
26
import org.eclipse.jubula.client.ui.rcp.controllers.MultipleTCBTracker;
27
import org.eclipse.jubula.client.ui.rcp.controllers.TestResultPartsTracker;
27
import org.eclipse.ui.ISources;
28
import org.eclipse.ui.ISources;
28
29
29
30
Lines 60-65 public class ActiveProjectSourceProvider extends AbstractJBSourceProvider Link Here
60
    public static final String ARE_MULTIPLE_TCB_OPEN =
61
    public static final String ARE_MULTIPLE_TCB_OPEN =
61
        "org.eclipse.jubula.client.ui.rcp.variable.areMultipleTCBOpen"; //$NON-NLS-1$
62
        "org.eclipse.jubula.client.ui.rcp.variable.areMultipleTCBOpen"; //$NON-NLS-1$
62
    
63
    
64
    /** 
65
     * ID of variable that indicates whether at least one part to view test result 
66
     * (test result tree view or test result viewer) is open.
67
     */
68
    public static final String IS_PART_TO_VIEW_TEST_RESULT_OPEN =
69
        "org.eclipse.jubula.client.ui.rcp.variable.isPartToViewTestResultOpen"; //$NON-NLS-1$
70
    
71
    /** 
72
     * ID of definition that indicates whether Go to Next/Previous Error Buttons should be disabled
73
     * (the value depends on if open Test Result Tree View is hidden or not)
74
     */
75
    public static final String IS_TEST_RESULT_TREE_VIEW_HIDDEN =
76
        "org.eclipse.jubula.client.ui.rcp.variable.isTRTreeViewHidden"; //$NON-NLS-1$
77
    
78
    /** 
79
     * ID of definition that indicates whether Go to Next/Previous Error Buttons should be disabled
80
     * (the value depends on if open Test Result Tree View is hidden or not)
81
     */
82
    public static final String ARE_GO_TO_ERROR_BUTTONS_DISABLED =
83
        "org.eclipse.jubula.client.ui.variable.areGoToErrorButtonsDisabled"; //$NON-NLS-1$
84
    
63
    /**
85
    /**
64
     * Constructor.
86
     * Constructor.
65
     */
87
     */
Lines 69-74 public class ActiveProjectSourceProvider extends AbstractJBSourceProvider Link Here
69
        ded.addDataChangedListener(this, true);
91
        ded.addDataChangedListener(this, true);
70
        DatabaseStateDispatcher.addDatabaseStateListener(this);
92
        DatabaseStateDispatcher.addDatabaseStateListener(this);
71
        MultipleTCBTracker.getInstance().setProvider(this);
93
        MultipleTCBTracker.getInstance().setProvider(this);
94
        TestResultPartsTracker.getInstance().setProvider(this);
72
    }
95
    }
73
96
74
    /**
97
    /**
Lines 81-86 public class ActiveProjectSourceProvider extends AbstractJBSourceProvider Link Here
81
        ded.removeDataChangedListener(this);
104
        ded.removeDataChangedListener(this);
82
        DatabaseStateDispatcher.removeDatabaseStateListener(this);
105
        DatabaseStateDispatcher.removeDatabaseStateListener(this);
83
        MultipleTCBTracker.getInstance().setProvider(null);
106
        MultipleTCBTracker.getInstance().setProvider(null);
107
        TestResultPartsTracker.getInstance().setProvider(null);
84
    }
108
    }
85
109
86
    /**
110
    /**
Lines 100-105 public class ActiveProjectSourceProvider extends AbstractJBSourceProvider Link Here
100
                Persistor.instance() != null ? true : false);
124
                Persistor.instance() != null ? true : false);
101
        currentState.put(ARE_MULTIPLE_TCB_OPEN, 
125
        currentState.put(ARE_MULTIPLE_TCB_OPEN, 
102
                MultipleTCBTracker.getInstance().getOpenTCBs().size() > 1);
126
                MultipleTCBTracker.getInstance().getOpenTCBs().size() > 1);
127
        currentState.put(IS_PART_TO_VIEW_TEST_RESULT_OPEN,
128
                TestResultPartsTracker.getInstance().
129
                    getTRParts().size() > 0);
130
        currentState.put(IS_TEST_RESULT_TREE_VIEW_HIDDEN, 
131
                TestResultPartsTracker.getInstance().
132
                    isTRTreeViewHidden());
133
        currentState.put(ARE_GO_TO_ERROR_BUTTONS_DISABLED, 
134
                TestResultPartsTracker.getInstance().areButtonsDisabled());
103
        return currentState;
135
        return currentState;
104
    }
136
    }
105
137
Lines 111-117 public class ActiveProjectSourceProvider extends AbstractJBSourceProvider Link Here
111
        return new String[] {   IS_PROJECT_ACTIVE, 
143
        return new String[] {   IS_PROJECT_ACTIVE, 
112
                                IS_PROJECT_PROTECTED,
144
                                IS_PROJECT_PROTECTED,
113
                                IS_DB_CONNECTION_ESTABLISHED,
145
                                IS_DB_CONNECTION_ESTABLISHED,
114
                                ARE_MULTIPLE_TCB_OPEN };
146
                                ARE_MULTIPLE_TCB_OPEN,
147
                                IS_PART_TO_VIEW_TEST_RESULT_OPEN,
148
                                IS_TEST_RESULT_TREE_VIEW_HIDDEN,
149
                                ARE_GO_TO_ERROR_BUTTONS_DISABLED};
115
    }
150
    }
116
151
117
    /**
152
    /**
Lines 145-150 public class ActiveProjectSourceProvider extends AbstractJBSourceProvider Link Here
145
                Persistor.instance() != null ? true : false);
180
                Persistor.instance() != null ? true : false);
146
        gdFireSourceChanged(ISources.WORKBENCH, ARE_MULTIPLE_TCB_OPEN,
181
        gdFireSourceChanged(ISources.WORKBENCH, ARE_MULTIPLE_TCB_OPEN,
147
                MultipleTCBTracker.getInstance().getOpenTCBs().size() > 1);
182
                MultipleTCBTracker.getInstance().getOpenTCBs().size() > 1);
183
        gdFireSourceChanged(ISources.WORKBENCH, 
184
                IS_PART_TO_VIEW_TEST_RESULT_OPEN,
185
                    TestResultPartsTracker.getInstance().
186
                        getTRParts().size() > 0);
187
        gdFireSourceChanged(ISources.WORKBENCH, 
188
                IS_TEST_RESULT_TREE_VIEW_HIDDEN,
189
                    TestResultPartsTracker.getInstance().
190
                        isTRTreeViewHidden());
191
        gdFireSourceChanged(ISources.WORKBENCH, 
192
                ARE_GO_TO_ERROR_BUTTONS_DISABLED,
193
                    TestResultPartsTracker.getInstance().
194
                        areButtonsDisabled());
148
    }
195
    }
149
196
150
    /**
197
    /**
(-)a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/views/TestResultTreeView.java (+4 lines)
Lines 52-57 import org.eclipse.jubula.client.ui.provider.contentprovider.TestResultTreeViewC Link Here
52
import org.eclipse.jubula.client.ui.provider.labelprovider.TestResultTreeViewLabelProvider;
52
import org.eclipse.jubula.client.ui.provider.labelprovider.TestResultTreeViewLabelProvider;
53
import org.eclipse.jubula.client.ui.rcp.Plugin;
53
import org.eclipse.jubula.client.ui.rcp.Plugin;
54
import org.eclipse.jubula.client.ui.rcp.constants.RCPCommandIDs;
54
import org.eclipse.jubula.client.ui.rcp.constants.RCPCommandIDs;
55
import org.eclipse.jubula.client.ui.rcp.controllers.TestResultPartsTracker;
55
import org.eclipse.jubula.client.ui.rcp.i18n.Messages;
56
import org.eclipse.jubula.client.ui.rcp.i18n.Messages;
56
import org.eclipse.jubula.client.ui.utils.CommandHelper;
57
import org.eclipse.jubula.client.ui.utils.CommandHelper;
57
import org.eclipse.jubula.client.ui.views.IJBPart;
58
import org.eclipse.jubula.client.ui.views.IJBPart;
Lines 157-162 public class TestResultTreeView extends ViewPart Link Here
157
        final DataEventDispatcher ded = DataEventDispatcher.getInstance();
158
        final DataEventDispatcher ded = DataEventDispatcher.getInstance();
158
        ded.addDataChangedListener(this, true);
159
        ded.addDataChangedListener(this, true);
159
        ded.addProjectLoadedListener(this, true);
160
        ded.addProjectLoadedListener(this, true);
161
        //add this Test Result Tree to the tracker
162
        TestResultPartsTracker.getInstance().addTRTreeView(this);
160
    }
163
    }
161
    
164
    
162
    /**
165
    /**
Lines 187-192 public class TestResultTreeView extends ViewPart Link Here
187
        DataEventDispatcher.getInstance().removeProjectLoadedListener(this);
190
        DataEventDispatcher.getInstance().removeProjectLoadedListener(this);
188
        DataEventDispatcher.getInstance().removeDataChangedListener(this);
191
        DataEventDispatcher.getInstance().removeDataChangedListener(this);
189
        getSite().setSelectionProvider(null);
192
        getSite().setSelectionProvider(null);
193
        TestResultPartsTracker.getInstance().removeTRTreeView(this);
190
        super.dispose();
194
        super.dispose();
191
    }
195
    }
192
196
(-)a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/constants/Constants.java (+4 lines)
Lines 74-79 public interface Constants { Link Here
74
    public static final String TESTRE_ID = 
74
    public static final String TESTRE_ID = 
75
        "org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView"; //$NON-NLS-1$
75
        "org.eclipse.jubula.client.ui.rcp.views.TestResultTreeView"; //$NON-NLS-1$
76
    
76
    
77
    /** the ID of the test result viewer */
78
    public static final String TESTRE_VIEWER_ID = 
79
        "org.eclipse.jubula.client.ui.editors.TestResultViewer"; //$NON-NLS-1$
80
    
77
    /** the ID of the test case browser */
81
    /** the ID of the test case browser */
78
    public static final String TC_BROWSER_ID = 
82
    public static final String TC_BROWSER_ID = 
79
        "org.eclipse.jubula.client.ui.rcp.views.TestCaseBrowser"; //$NON-NLS-1$
83
        "org.eclipse.jubula.client.ui.rcp.views.TestCaseBrowser"; //$NON-NLS-1$
(-)a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/AbstractGoToTestResultErrorHandler.java (-15 / +68 lines)
Lines 10-18 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.jubula.client.ui.handlers;
11
package org.eclipse.jubula.client.ui.handlers;
12
12
13
import java.util.LinkedList;
14
import java.util.List;
15
16
import org.eclipse.core.commands.AbstractHandler;
13
import org.eclipse.core.commands.AbstractHandler;
17
import org.eclipse.core.commands.ExecutionEvent;
14
import org.eclipse.core.commands.ExecutionEvent;
18
import org.eclipse.core.commands.ExecutionException;
15
import org.eclipse.core.commands.ExecutionException;
Lines 21-29 import org.eclipse.jface.viewers.ITreeContentProvider; Link Here
21
import org.eclipse.jface.viewers.StructuredSelection;
18
import org.eclipse.jface.viewers.StructuredSelection;
22
import org.eclipse.jface.viewers.TreeViewer;
19
import org.eclipse.jface.viewers.TreeViewer;
23
import org.eclipse.jubula.client.core.model.TestResultNode;
20
import org.eclipse.jubula.client.core.model.TestResultNode;
21
import org.eclipse.jubula.client.ui.constants.Constants;
22
import org.eclipse.jubula.client.ui.editors.TestResultViewer;
24
import org.eclipse.jubula.client.ui.utils.TreeViewerIterator;
23
import org.eclipse.jubula.client.ui.utils.TreeViewerIterator;
24
import org.eclipse.ui.IEditorReference;
25
import org.eclipse.ui.IViewReference;
26
import org.eclipse.ui.IWorkbenchPage;
25
import org.eclipse.ui.IWorkbenchPart;
27
import org.eclipse.ui.IWorkbenchPart;
26
import org.eclipse.ui.handlers.HandlerUtil;
28
import org.eclipse.ui.PlatformUI;
27
29
28
30
29
/**
31
/**
Lines 40-52 public abstract class AbstractGoToTestResultErrorHandler Link Here
40
     */
42
     */
41
    public final Object execute(ExecutionEvent event) 
43
    public final Object execute(ExecutionEvent event) 
42
        throws ExecutionException {
44
        throws ExecutionException {
43
45
        activateTestResultTreeView();
44
        List<IWorkbenchPart> listOfPossibleParts =
46
        TreeViewer viewer = handleTestResultPart(
45
                new LinkedList<IWorkbenchPart>();
47
                getTestResultPartToExecuteGoToOn());
46
        listOfPossibleParts.add(HandlerUtil.getActivePart(event));
47
        listOfPossibleParts.add(HandlerUtil.getActiveEditor(event));
48
        TreeViewer viewer = handleActiveWorkbenchParts(listOfPossibleParts);
49
        
50
        IStructuredSelection selection = 
48
        IStructuredSelection selection = 
51
            (IStructuredSelection)viewer.getSelection();
49
            (IStructuredSelection)viewer.getSelection();
52
        ITreeContentProvider contentProvider = 
50
        ITreeContentProvider contentProvider = 
Lines 87-92 public abstract class AbstractGoToTestResultErrorHandler Link Here
87
    }
85
    }
88
86
89
    /**
87
    /**
88
     * @return part to Execute GoTo on
89
     * the active TestResultViewer or TestResultTreeView is selected to be a part 
90
     * if both TestResultViewer and TestResultTreeView or none of them are active, 
91
     * the part is considered to be a TestResultViewer
92
     */
93
    private IWorkbenchPart getTestResultPartToExecuteGoToOn() {
94
        IWorkbenchPage actPage = PlatformUI.getWorkbench().
95
                getActiveWorkbenchWindow().getActivePage();
96
        //part is an active TestResultTreeView
97
        if (actPage.getViewReferences().length > 0) {
98
            for (IViewReference viewRef : actPage.getViewReferences()) {
99
                if ((viewRef.getId().equals(Constants.TESTRE_ID)) 
100
                        && (viewRef.equals(actPage.getActivePartReference()))) {
101
                    return (IWorkbenchPart)viewRef.getView(true);
102
                }
103
            }
104
        }
105
        //part is an active TestResultViewer 
106
        if (actPage.getEditorReferences().length > 0) {
107
            for (IEditorReference edRef : actPage.getEditorReferences()) {
108
                if ((edRef.getId().equals(Constants.TESTRE_VIEWER_ID))
109
                        && (edRef.getEditor(true).
110
                                equals(actPage.getActiveEditor()))) {
111
                    return (IWorkbenchPart)edRef.getEditor(true);
112
                }
113
            }
114
        //part is any of open TestResultViewers
115
            for (IEditorReference edRef : actPage.getEditorReferences()) {
116
                if (edRef.getId().equals(Constants.TESTRE_VIEWER_ID)) {
117
                    return (IWorkbenchPart)edRef.getEditor(true);
118
                }
119
            }
120
        }
121
        return null;
122
    }
123
124
    /**
125
     * unlike Editors (for which value of last active editor is 
126
     * remembered even if Editor loses focus)
127
     * last active view is not remembered and need to be activated
128
     * at the beginning of GoToTestResultErrorHandler execution
129
     */
130
    private void activateTestResultTreeView() {
131
        IWorkbenchPage actPage = PlatformUI.getWorkbench().
132
                getActiveWorkbenchWindow().getActivePage();
133
        if (!(actPage.getActiveEditor() instanceof TestResultViewer)) {
134
            for (IViewReference viewRef : actPage.getViewReferences()) {
135
                if (viewRef.getId().equals(Constants.TESTRE_ID)) {
136
                    actPage.activate(viewRef.getView(true));
137
                }
138
            }
139
        }
140
    }
141
142
    /**
90
     * 
143
     * 
91
     * @param node The node to check.
144
     * @param node The node to check.
92
     * @return <code>true</code> if the node is considered an error node.
145
     * @return <code>true</code> if the node is considered an error node.
Lines 104-112 public abstract class AbstractGoToTestResultErrorHandler Link Here
104
    protected abstract boolean isForwardIteration();
157
    protected abstract boolean isForwardIteration();
105
    
158
    
106
    /**
159
    /**
107
     * @param listOfPossibleParts a list of two possible parts to execute the GoTo on
160
     * @param part a part to execute the GoTo on
108
     * @return the TreeViewer of the active part
161
     * @return the TreeViewer of the part to execute the GoTo on
109
     */
162
     */
110
    protected abstract TreeViewer handleActiveWorkbenchParts(
163
    protected abstract TreeViewer handleTestResultPart(
111
            List<IWorkbenchPart> listOfPossibleParts);  
164
            IWorkbenchPart part);  
112
}
165
}
(-)a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/GoToNextTestResultErrorHandler.java (-8 / +21 lines)
Lines 10-20 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.jubula.client.ui.handlers;
11
package org.eclipse.jubula.client.ui.handlers;
12
12
13
import java.util.List;
14
15
import org.eclipse.jface.viewers.TreeViewer;
13
import org.eclipse.jface.viewers.TreeViewer;
16
import org.eclipse.jubula.client.ui.editors.TestResultViewer;
14
import org.eclipse.jubula.client.ui.editors.TestResultViewer;
15
import org.eclipse.ui.IWorkbenchPage;
17
import org.eclipse.ui.IWorkbenchPart;
16
import org.eclipse.ui.IWorkbenchPart;
17
import org.eclipse.ui.PlatformUI;
18
18
19
/**
19
/**
20
 * Handler for navigating to the "next" error in a Test Result.
20
 * Handler for navigating to the "next" error in a Test Result.
Lines 32-42 public class GoToNextTestResultErrorHandler extends Link Here
32
        return true;
32
        return true;
33
    }
33
    }
34
34
35
    /**
35
    @Override
36
     * {@inheritDoc}
36
    protected TreeViewer handleTestResultPart(IWorkbenchPart part) {
37
     */
37
        TestResultViewer trViewer = null;
38
    protected TreeViewer handleActiveWorkbenchParts(List<IWorkbenchPart> list) {
38
        boolean existActTRViewer = false;
39
        list.get(1).setFocus();
39
        IWorkbenchPage actPage = PlatformUI.getWorkbench().
40
        return ((TestResultViewer) list.get(1)).getTreeViewer();
40
                getActiveWorkbenchWindow().getActivePage();
41
        if ((part instanceof TestResultViewer) 
42
                && (part.equals(actPage.getActiveEditor()))) {
43
            part.setFocus();
44
            trViewer = (TestResultViewer) part;
45
            existActTRViewer = true;
46
        }
47
        if (!existActTRViewer) {
48
            if (part instanceof TestResultViewer) { 
49
                part.setFocus();
50
                trViewer = (TestResultViewer) part;
51
            }
52
        }
53
        return trViewer.getTreeViewer();
41
    }
54
    }
42
}
55
}
(-)a/org.eclipse.jubula.client.ui/src/org/eclipse/jubula/client/ui/handlers/GoToPreviousTestResultErrorHandler.java (-14 / +1 lines)
Lines 10-20 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.jubula.client.ui.handlers;
11
package org.eclipse.jubula.client.ui.handlers;
12
12
13
import java.util.List;
14
15
import org.eclipse.jface.viewers.TreeViewer;
16
import org.eclipse.jubula.client.ui.editors.TestResultViewer;
17
import org.eclipse.ui.IWorkbenchPart;
18
13
19
/**
14
/**
20
 * Handler for navigating to the "previous" error in a Test Result.
15
 * Handler for navigating to the "previous" error in a Test Result.
Lines 23-29 import org.eclipse.ui.IWorkbenchPart; Link Here
23
 * @created May 17, 2010
18
 * @created May 17, 2010
24
 */
19
 */
25
public class GoToPreviousTestResultErrorHandler extends
20
public class GoToPreviousTestResultErrorHandler extends
26
        AbstractGoToTestResultErrorHandler {
21
    GoToNextTestResultErrorHandler {
27
22
28
    /**
23
    /**
29
     * {@inheritDoc}
24
     * {@inheritDoc}
Lines 31-42 public class GoToPreviousTestResultErrorHandler extends Link Here
31
    protected boolean isForwardIteration() {
26
    protected boolean isForwardIteration() {
32
        return false;
27
        return false;
33
    }
28
    }
34
35
    /**
36
     * {@inheritDoc}
37
     */
38
    protected TreeViewer handleActiveWorkbenchParts(List<IWorkbenchPart> list) {
39
        list.get(1).setFocus();
40
        return ((TestResultViewer) list.get(1)).getTreeViewer();
41
    }
42
}
29
}
(-)a/org.eclipse.jubula.project.configuration/ide-launch/dashboard.launch (-3 / +2 lines)
Lines 16-22 Link Here
16
<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"/>
16
<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"/>
17
<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"/>
17
<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"/>
18
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
18
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
19
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true &#10;-Dosgi.noShutdown=true &#10;-Dorg.eclipse.jubula.dashboard.jdbc_driver=oracle.jdbc.driver.OracleDriver &#10;-Dorg.eclipse.jubula.dashboard.jdbc_url=&lt;dbURL&gt;&#10;-Dorg.eclipse.jubula.dashboard.database_username=&lt;dbuser&gt;&#10;-Dorg.eclipse.jubula.dashboard.database_password=&lt;dbpw&gt;"/>
19
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true &#10;-Dosgi.noShutdown=true &#10;-Dorg.eclipse.jubula.dashboard.jdbc_driver=oracle.jdbc.driver.OracleDriver &#10;-Dorg.eclipse.jubula.dashboard.jdbc_url=jdbc:oracle:thin:@dbbxtest.bredex.de:1521:bxutf&#10;-Dorg.eclipse.jubula.dashboard.database_username=dev_testweek&#10;-Dorg.eclipse.jubula.dashboard.database_password=bxtest"/>
20
<stringAttribute key="org.eclipse.rap.launch.browserMode" value="INTERNAL"/>
20
<stringAttribute key="org.eclipse.rap.launch.browserMode" value="INTERNAL"/>
21
<stringAttribute key="org.eclipse.rap.launch.contextpath" value=""/>
21
<stringAttribute key="org.eclipse.rap.launch.contextpath" value=""/>
22
<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/dashboard"/>
22
<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/dashboard"/>
Lines 40-44 Link Here
40
<booleanAttribute key="tracing" value="false"/>
40
<booleanAttribute key="tracing" value="false"/>
41
<booleanAttribute key="useCustomFeatures" value="false"/>
41
<booleanAttribute key="useCustomFeatures" value="false"/>
42
<booleanAttribute key="useDefaultConfigArea" value="true"/>
42
<booleanAttribute key="useDefaultConfigArea" value="true"/>
43
<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"/>
43
<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"/>
44
</launchConfiguration>
44
</launchConfiguration>
45
- 

Return to bug 417829