| /******************************************************************************* |
| * Copyright (c) 2012 Ericsson Research Canada |
| * |
| * 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 |
| * |
| * Description: |
| * |
| * This class implements a Proxy class used to access/control R4E programmatically |
| * for test purposes |
| * |
| * Contributors: |
| * Sebastien Dubois - Created for Mylyn Review R4E project |
| * |
| ******************************************************************************/ |
| |
| package org.eclipse.mylyn.reviews.r4e.ui.tests.proxy; |
| |
| import java.net.URL; |
| |
| import org.eclipse.mylyn.reviews.r4e.ui.tests.utils.TestUtils; |
| import org.eclipse.swt.widgets.Display; |
| import org.eclipse.ui.PlatformUI; |
| |
| public class R4EUITestMain { |
| |
| // ------------------------------------------------------------------------ |
| // Members |
| // ------------------------------------------------------------------------ |
| |
| /** |
| * Field FInstance. |
| */ |
| private static R4EUITestMain FInstance = null; |
| |
| /** |
| * Field fCommandProxy. |
| */ |
| private R4EUITestElement fCommandProxy = null; |
| |
| /** |
| * Field fPreferencesProxy. |
| */ |
| private R4EUITestElement fPreferencesProxy = null; |
| |
| /** |
| * Field fReviewGroupProxy. |
| */ |
| private R4EUITestElement fReviewGroupProxy = null; |
| |
| /** |
| * Field fReviewProxy. |
| */ |
| private R4EUITestElement fReviewProxy = null; |
| |
| /** |
| * Field fItemProxy. |
| */ |
| private R4EUITestElement fItemProxy = null; |
| |
| /** |
| * Field fParticipantProxy. |
| */ |
| private R4EUITestElement fParticipantProxy = null; |
| |
| /** |
| * Field fAnomalyProxy. |
| */ |
| private R4EUITestElement fAnomalyProxy = null; |
| |
| /** |
| * Field fCommentProxy. |
| */ |
| private R4EUITestElement fCommentProxy = null; |
| |
| /** |
| * Field fRuleSetProxy. |
| */ |
| private R4EUITestElement fRuleSetProxy = null; |
| |
| /** |
| * Field fRuleAreaProxy. |
| */ |
| private R4EUITestElement fRuleAreaProxy = null; |
| |
| /** |
| * Field fRuleViolationProxy. |
| */ |
| private R4EUITestElement fRuleViolationProxy = null; |
| |
| /** |
| * Field fRuleProxy. |
| */ |
| private R4EUITestElement fRuleProxy = null; |
| |
| // ------------------------------------------------------------------------ |
| // Constructors |
| // ------------------------------------------------------------------------ |
| |
| /** |
| * Constructor for R4ECommandProxy. |
| */ |
| private R4EUITestMain() { |
| fCommandProxy = new R4EUITestCommands(this); |
| fPreferencesProxy = new R4EUITestPreferences(this); |
| fReviewGroupProxy = new R4EUITestReviewGroup(this); |
| fReviewProxy = new R4EUITestReview(this); |
| fItemProxy = new R4EUITestItem(this); |
| fParticipantProxy = new R4EUITestParticipant(this); |
| fAnomalyProxy = new R4EUITestAnomaly(this); |
| fCommentProxy = new R4EUITestComment(this); |
| fRuleSetProxy = new R4EUITestRuleSet(this); |
| fRuleAreaProxy = new R4EUITestRuleArea(this); |
| fRuleViolationProxy = new R4EUITestRuleViolation(this); |
| fRuleProxy = new R4EUITestRule(this); |
| } |
| |
| // ------------------------------------------------------------------------ |
| // Methods |
| // ------------------------------------------------------------------------ |
| |
| /** |
| * Method getInstance. |
| * |
| * @return R4EUITestProxy |
| */ |
| public static R4EUITestMain getInstance() { |
| if (null == FInstance) { |
| FInstance = new R4EUITestMain(); |
| } |
| return FInstance; |
| } |
| |
| /** |
| * Method getCommandProxy. |
| * |
| * @return R4EUITestCommands |
| */ |
| public R4EUITestCommands getCommandProxy() { |
| return (R4EUITestCommands) fCommandProxy; |
| } |
| |
| /** |
| * Method getPreferencesProxy. |
| * |
| * @return R4EUITestPreferences |
| */ |
| public R4EUITestPreferences getPreferencesProxy() { |
| return (R4EUITestPreferences) fPreferencesProxy; |
| } |
| |
| /** |
| * Method getReviewGroupProxy. |
| * |
| * @return R4EUITestReviewGroup |
| */ |
| public R4EUITestReviewGroup getReviewGroupProxy() { |
| return (R4EUITestReviewGroup) fReviewGroupProxy; |
| } |
| |
| /** |
| * Method getReviewProxy. |
| * |
| * @return R4EUITestReview |
| */ |
| public R4EUITestReview getReviewProxy() { |
| return (R4EUITestReview) fReviewProxy; |
| } |
| |
| /** |
| * Method getItemProxy. |
| * |
| * @return R4EUITestItem |
| */ |
| public R4EUITestItem getItemProxy() { |
| return (R4EUITestItem) fItemProxy; |
| } |
| |
| /** |
| * Method getParticipantProxy. |
| * |
| * @return R4EUITestParticipant |
| */ |
| public R4EUITestParticipant getParticipantProxy() { |
| return (R4EUITestParticipant) fParticipantProxy; |
| } |
| |
| /** |
| * Method getAnomalyProxy. |
| * |
| * @return R4EUITestAnomaly |
| */ |
| public R4EUITestAnomaly getAnomalyProxy() { |
| return (R4EUITestAnomaly) fAnomalyProxy; |
| } |
| |
| /** |
| * Method getCommentProxy. |
| * |
| * @return R4EUITestComment |
| */ |
| public R4EUITestComment getCommentProxy() { |
| return (R4EUITestComment) fCommentProxy; |
| |
| } |
| |
| /** |
| * Method getRuleSetProxy. |
| * |
| * @return R4EUITestRuleSet |
| */ |
| public R4EUITestRuleSet getRuleSetProxy() { |
| return (R4EUITestRuleSet) fRuleSetProxy; |
| } |
| |
| /** |
| * Method getRuleAreaProxy. |
| * |
| * @return R4EUITestRuleArea |
| */ |
| public R4EUITestRuleArea getRuleAreaProxy() { |
| return (R4EUITestRuleArea) fRuleAreaProxy; |
| } |
| |
| /** |
| * Method getRuleViolationProxy. |
| * |
| * @return R4EUITestRuleViolation |
| */ |
| public R4EUITestRuleViolation getRuleViolationProxy() { |
| return (R4EUITestRuleViolation) fRuleViolationProxy; |
| } |
| |
| /** |
| * Method getRuleProxy. |
| * |
| * @return R4EUITestRule |
| */ |
| public R4EUITestRule getRuleProxy() { |
| return (R4EUITestRule) fRuleProxy; |
| } |
| |
| /** |
| * Method getHelp |
| * |
| * @param aPath |
| * @return URL |
| */ |
| public URL getHelp(String aPath) { |
| |
| //Inner class that runs the command on the UI thread |
| class RunGetHelp implements Runnable { |
| private String path; |
| |
| private URL helpUrl; |
| |
| public URL getUrl() { |
| return helpUrl; |
| } |
| |
| public void setPath(String aPath) { |
| path = aPath; |
| } |
| |
| public void run() { |
| //Resolve path to get help contents |
| helpUrl = PlatformUI.getWorkbench().getHelpSystem().resolve(path, true); |
| } |
| } |
| ; |
| |
| //Run the UI job and wait until the command is completely executed before continuing |
| RunGetHelp getHelpJob = new RunGetHelp(); |
| getHelpJob.setPath(aPath); |
| Display.getDefault().syncExec(getHelpJob); |
| TestUtils.waitForJobs(); |
| return getHelpJob.getUrl(); |
| } |
| } |