Adjust the Gerrit commands
Change-Id: Id3c53ae0df490c1d97c506b62203718068e3161e
Signed-off-by: jbouthillie <lmcbout@gmail.com>
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/contexts.xml b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/contexts.xml
index b3b18ae..d144cdd 100644
--- a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/contexts.xml
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/contexts.xml
@@ -10,4 +10,7 @@
</enablement>
</topic>
</context>
+ <context id="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationSearching">
+ <command label="Help_Command"/>
+ </context>
</contexts>
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/plugin.xml b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/plugin.xml
index a43c23e..f949824 100644
--- a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/plugin.xml
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/plugin.xml
@@ -97,6 +97,7 @@
name="addition2"
visible="true">
</separator>
+ <!--
<command
commandId="org.eclipse.mylyn.reviews.r4e-gerrit.ui.projectList"
id="r4eGerritUI.dropdown.toolbar.ProjectList"
@@ -119,6 +120,7 @@
name="addition4"
visible="true">
</separator>
+ -->
<command
commandId="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationIndex"
id="r4eGerritUI.dropdown.toolbar.Documentation"
@@ -281,6 +283,14 @@
tooltip="Find the access controls of the documentation">
</command>
+ <command
+ commandId="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationRestAPI"
+ id="r4eGerritUI.dropdown.toolbar.documentationRestAPI"
+ label="REST API"
+ style="push"
+ tooltip="Find the REST API of the documentation">
+ </command>
+
<separator
name="additions"
@@ -291,13 +301,14 @@
</extension>
+ <!--
<extension
point="org.eclipse.help.contexts">
<contexts
file="contexts.xml">
</contexts>
</extension>
-
+ -->
<extension
point="org.eclipse.ui.commands">
@@ -369,8 +380,8 @@
name="DocumentationIndex">
</command>
<command
- id="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationSearching"
- name="DocumentationSearching">
+ id="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationSearching"
+ name="DocumentationSearching">
</command>
<command
id="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationUploading"
@@ -381,17 +392,28 @@
name="DocumentationAccessControls">
</command>
+ <command
+ id="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationRestAPI"
+ name="DocumentationRestAPI">
+ </command>
+
<!-- The following are the commands under the "Review TableList" sub-menu
-->
<command
id="org.eclipse.mylyn.reviews.r4e-gerrit.ui.adjustMyStarred"
name="Toggle ID Selection">
</command>
-
+
</extension>
<extension
point="org.eclipse.ui.bindings">
+ <key
+ commandId="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationSearching"
+ contextId="org.eclipse.mylyn.reviews.r4e-gerrit.ui.context"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence="F1">
+ </key>
</extension>
<extension
@@ -462,8 +484,8 @@
commandId="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationIndex">
</handler>
<handler
- class="org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.commands.documentation.SearchingHandler"
- commandId="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationSearching">
+ class="org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.commands.documentation.SearchingHandler"
+ commandId="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationSearching">
</handler>
<handler
class="org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.commands.documentation.UploadingHandler"
@@ -473,6 +495,10 @@
class="org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.commands.documentation.AccessControlHandler"
commandId="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationAccessControls">
</handler>
+ <handler
+ class="org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.commands.documentation.RestAPIHandler"
+ commandId="org.eclipse.mylyn.reviews.r4e-gerrit.ui.documentationRestAPI">
+ </handler>
<!-- The following are the handlers under the "Table review list" sub-menu
-->
<handler
@@ -484,5 +510,14 @@
<extension
point="org.eclipse.mylyn.tasks.ui.editors">
</extension>
+ <extension
+ point="org.eclipse.ui.contexts">
+ <context
+ description="Dashboard R4E-gerrit View"
+ id="org.eclipse.mylyn.reviews.r4e-gerrit.ui.context"
+ name="Dashboard View"
+ parentId="org.eclipse.ui.contexts.window">
+ </context>
+ </extension>
</plugin>
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/AddGerritSiteHandler.java b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/AddGerritSiteHandler.java
index 913f07b..0034ef1 100644
--- a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/AddGerritSiteHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/AddGerritSiteHandler.java
@@ -82,7 +82,7 @@
R4EGerritPlugin.Ftracer.traceInfo("Create the Add button to search the Gerrit location " ); //$NON-NLS-1$
String menuItemText = "";
- fServerUtil = new R4EGerritServerUtility();
+ fServerUtil = R4EGerritServerUtility.getInstance();
Object obj = aEvent.getTrigger();
Map<String, String> param = aEvent.getParameters();
R4EGerritTableView reviewTableView = R4EGerritTableView
@@ -186,7 +186,7 @@
TaskRepository taskRepositoryTmp = fServerUtil.getTaskRepo (taskRepository.getUrl());
if (taskRepositoryTmp == null) {
//Need to re-map our internal Gerrit Repo
- fServerUtil.mapConfiguredGerritServer();
+ fServerUtil.getGerritMapping();
}
/*****************************************************/
/* */
@@ -227,7 +227,7 @@
private TaskRepository getTaskRepository (String aUrl) {
TaskRepository taskRepo = null;
//Search for the current Gerrit connector
- taskRepo = R4EGerritServerUtility.getDefault().getTaskRepo(aUrl);
+ taskRepo = R4EGerritServerUtility.getInstance().getTaskRepo(aUrl);
if (taskRepo == null) {
if (aUrl != null) {
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/SelectReviewSiteHandler.java b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/SelectReviewSiteHandler.java
index a92a114..a37fdd7 100644
--- a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/SelectReviewSiteHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/SelectReviewSiteHandler.java
@@ -99,7 +99,7 @@
//Map the Gerrit server
- fServerUtil = new R4EGerritServerUtility();
+ fServerUtil = R4EGerritServerUtility.getInstance();
//Debug purpose, see which project have a gerrit server
fMapRepoServer = fServerUtil.getGerritMapping();
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/AccessControlHandler.java b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/AccessControlHandler.java
index e50e915..c1cd1aa 100644
--- a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/AccessControlHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/AccessControlHandler.java
@@ -18,9 +18,8 @@
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.mylyn.reviews.r4e_gerrit.ui.R4EGerritUi;
-import org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.utils.UIUtils;
+import org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.utils.R4EGerritServerUtility;
/**
* @author Jacques Bouthillier
@@ -30,21 +29,17 @@
public class AccessControlHandler extends AbstractHandler {
+ private final String ACCESS_CONTROL_DOCUMENTATION = "Documentation/access-control.html";
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent aEvent) throws ExecutionException {
- // TODO Auto-generated method stub
R4EGerritUi.Ftracer.traceInfo("Search the documentation AccessControlHandler " ); //$NON-NLS-1$
- R4EGerritUi.Ftracer.traceInfo("Execute: AccessControlHandler() " ); //$NON-NLS-1$
- try {
- UIUtils.notInplementedDialog(aEvent.getCommand().getName());
- } catch (NotDefinedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ R4EGerritServerUtility.getInstance().openWebBrowser (ACCESS_CONTROL_DOCUMENTATION);
+
return null;
}
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/IndexHandler.java b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/IndexHandler.java
index 809b681..65b2acc 100644
--- a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/IndexHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/IndexHandler.java
@@ -18,9 +18,8 @@
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.mylyn.reviews.r4e_gerrit.ui.R4EGerritUi;
-import org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.utils.UIUtils;
+import org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.utils.R4EGerritServerUtility;
/**
* @author Jacques Bouthillier
@@ -29,22 +28,18 @@
*/
public class IndexHandler extends AbstractHandler {
-
+
+ private final String INDEX_DOCUMENTATION = "Documentation/index.html";
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent aEvent) throws ExecutionException {
- // TODO Auto-generated method stub
R4EGerritUi.Ftracer.traceInfo("Search the documentation IndexHandler " ); //$NON-NLS-1$
- R4EGerritUi.Ftracer.traceInfo("Execute: IndexHandler() " ); //$NON-NLS-1$
- try {
- UIUtils.notInplementedDialog(aEvent.getCommand().getName());
- } catch (NotDefinedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ R4EGerritServerUtility.getInstance().openWebBrowser (INDEX_DOCUMENTATION);
+
return null;
}
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/RestAPIHandler.java b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/RestAPIHandler.java
new file mode 100644
index 0000000..04bf965
--- /dev/null
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/RestAPIHandler.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Ericsson
+ *
+ * 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 the implementation of the R4E-Gerrit UI REST API reviews handler.
+ *
+ * Contributors:
+ * Jacques Bouthillier - Initial Implementation of the plug-in handler
+ ******************************************************************************/
+
+package org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.commands.documentation;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.mylyn.reviews.r4e_gerrit.ui.R4EGerritUi;
+import org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.utils.R4EGerritServerUtility;
+import org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.utils.UIUtils;
+import org.eclipse.mylyn.reviews.r4egerrit.ui.views.R4EGerritTableView;
+import org.osgi.framework.Version;
+
+/**
+ * @author Jacques Bouthillier
+ * @version $Revision: 1.0 $
+ *
+ */
+
+public class RestAPIHandler extends AbstractHandler {
+
+ private final String REST_API_DOCUMENTATION = "Documentation/rest-api.html";
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ R4EGerritUi.Ftracer.traceInfo("Search the documentation RestAPIHandler " ); //$NON-NLS-1$
+ Version version = R4EGerritTableView.getActiveView().getlastGerritServerVersion();
+ //Testing the Gerrit server before getting the documentation
+ if (version != null) {
+ if (version.getMajor() >= 2) {
+ if (version.getMinor() < 5) {
+ String msg = "Selected Gerrit server: " + version.toString();
+ String reason = "Gerrit server is too old, need at least Gerrit version 2.5 \nto get Gerrit Code Review - REST API documentation.";
+ R4EGerritUi.Ftracer.traceInfo(msg );
+ UIUtils.showErrorDialog(msg, reason);
+ return null;
+ }
+ }
+ }
+
+ R4EGerritServerUtility.getInstance().openWebBrowser (REST_API_DOCUMENTATION);
+
+ return null;
+ }
+
+}
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/SearchingHandler.java b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/SearchingHandler.java
index 6316ea0..53fa4d6 100644
--- a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/SearchingHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/SearchingHandler.java
@@ -18,9 +18,8 @@
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.mylyn.reviews.r4e_gerrit.ui.R4EGerritUi;
-import org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.utils.UIUtils;
+import org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.utils.R4EGerritServerUtility;
/**
* @author Jacques Bouthillier
@@ -29,7 +28,11 @@
*/
public class SearchingHandler extends AbstractHandler {
+
+ private final String SEARCHING_DOCUMENTATION = "Documentation/user-search.html";
+
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
@@ -38,13 +41,8 @@
// TODO Auto-generated method stub
R4EGerritUi.Ftracer.traceInfo("Search the documentation SearchingHandler " ); //$NON-NLS-1$
- R4EGerritUi.Ftracer.traceInfo("Execute: SearchingHandler() " ); //$NON-NLS-1$
- try {
- UIUtils.notInplementedDialog(aEvent.getCommand().getName());
- } catch (NotDefinedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ R4EGerritServerUtility.getInstance().openWebBrowser (SEARCHING_DOCUMENTATION);
+
return null;
}
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/UploadingHandler.java b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/UploadingHandler.java
index 43323c9..f76efac 100644
--- a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/UploadingHandler.java
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/commands/documentation/UploadingHandler.java
@@ -18,9 +18,8 @@
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.mylyn.reviews.r4e_gerrit.ui.R4EGerritUi;
-import org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.utils.UIUtils;
+import org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.utils.R4EGerritServerUtility;
/**
* @author Jacques Bouthillier
@@ -30,21 +29,17 @@
public class UploadingHandler extends AbstractHandler {
+ private final String UPLOADING_DOCUMENTATION = "Documentation/user-upload.html";
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent aEvent) throws ExecutionException {
- // TODO Auto-generated method stub
R4EGerritUi.Ftracer.traceInfo("Search the documentation UploadingHandler " ); //$NON-NLS-1$
- R4EGerritUi.Ftracer.traceInfo("Execute: UploadingHandler() " ); //$NON-NLS-1$
- try {
- UIUtils.notInplementedDialog(aEvent.getCommand().getName());
- } catch (NotDefinedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ R4EGerritServerUtility.getInstance().openWebBrowser (UPLOADING_DOCUMENTATION);
+
return null;
}
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/menus/DynamicMenuAddition.java b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/menus/DynamicMenuAddition.java
index 08a8bfb..c24681b 100644
--- a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/menus/DynamicMenuAddition.java
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/menus/DynamicMenuAddition.java
@@ -143,7 +143,7 @@
fServiceLocator = aServiceLocator;
//Read the Gerrit potential servers
- fServer = new R4EGerritServerUtility();
+ fServer = R4EGerritServerUtility.getInstance();
R4EGerritPlugin.Ftracer.traceInfo("\t\t DynamicMenuAddition .initialize()()" );
}
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/utils/R4EGerritServerUtility.java b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/utils/R4EGerritServerUtility.java
index 0106c52..1652e2e 100644
--- a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/utils/R4EGerritServerUtility.java
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4e_gerrit/ui/internal/utils/R4EGerritServerUtility.java
@@ -21,8 +21,9 @@
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -39,8 +40,13 @@
import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
import org.eclipse.mylyn.reviews.r4e_gerrit.R4EGerritPlugin;
+import org.eclipse.mylyn.reviews.r4e_gerrit.ui.R4EGerritUi;
import org.eclipse.mylyn.tasks.core.RepositoryTemplate;
import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.ui.IEditorDescriptor;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
/**
@@ -75,20 +81,31 @@
*/
private static final String LAST_GERRIT_FILE = "lastGerrit.txt";
+ /**
+ * Field ECLIPSE_GERRIT_DEFAULT. (value is ""https://git.eclipse.org/r/"")
+ */
+ private final String ECLIPSE_GERRIT_DEFAULT = "https://git.eclipse.org/r/";
+
+ /**
+ * Field SLASH. (value is ""/"")
+ */
+ private final String SLASH = "/";
+
+
+
// ------------------------------------------------------------------------
// Variables
// ------------------------------------------------------------------------
- private static R4EGerritServerUtility instance = null;
+ private static R4EGerritServerUtility fInstance = null;
- private static Map<TaskRepository, String> fResultTask = new HashMap<TaskRepository,String>();
+ private Map<TaskRepository, String> fResultTask = new HashMap<TaskRepository,String>();
// ------------------------------------------------------------------------
// Constructors
// ------------------------------------------------------------------------
- public R4EGerritServerUtility() {
- instance = this;
- mapConfiguredGerritServer();
+ protected R4EGerritServerUtility() {
+ fInstance = this;
//LATER: Map the workspace gerrit to the menu option
//addWorkspaceGerritRepo();
@@ -98,36 +115,12 @@
//End Test
}
+
// ------------------------------------------------------------------------
// Methods Private
// ------------------------------------------------------------------------
/**
- * Map the configured Gerrit server found in the TaskList
- * @return Map<TaskRepository, String>
- */
- public Map<TaskRepository, String> mapConfiguredGerritServer () {
- //Reset the list of Gerrit server
- fResultTask.clear();
-
- TaskRepositoryManager repositoryManager = TasksUiPlugin.getRepositoryManager();
-
- //Only get the TaskRepository related to Gerrit review connnector
- R4EGerritPlugin.Ftracer.traceInfo("--------Review repo ---------------");
- Set<TaskRepository> reviewRepo = repositoryManager.getRepositories(GerritConnector.CONNECTOR_KIND);
- for (TaskRepository taskRepo: reviewRepo) {
- R4EGerritPlugin.Ftracer.traceInfo("Add Gerrit Review repo: " + taskRepo.getRepositoryLabel() + "\t url: " + taskRepo.getRepositoryUrl());
- fResultTask.put(taskRepo, taskRepo.getRepositoryUrl());
- if (null != taskRepo.getRepositoryUrl() ) {
- adjustTemplatemanager(taskRepo);
- }
- }
- //Print a the end the info for all Gerrit
- printRepositoryTemplate();
- return fResultTask;
- }
-
- /**
* Build a list of Gerrit server to display in the combo box in the dialogue window
* @param aTaskRepo
*/
@@ -276,21 +269,84 @@
return file;
}
+ /**
+ * Build a URL for Gerrit documentation
+ * @param aRequest specific documentation
+ * @return URL complete URL fo the selected site based on the Gerrit server and version
+ * @throws MalformedURLException
+ */
+ private URL buildDocumentationURL (String aRequest) throws MalformedURLException {
+ StringBuilder sb = new StringBuilder();
+
+ String lastSaved = getInstance ().getLastSavedGerritServer();
+ if (lastSaved == null) {
+ //Use Default, so ECLIPSE_GERRIT_DEFAULT
+ lastSaved = ECLIPSE_GERRIT_DEFAULT;
+ }
+ if (!lastSaved.endsWith(SLASH)) {
+ lastSaved = lastSaved.concat(SLASH);
+ }
+ sb.append(lastSaved);
+ sb.append(aRequest);
+ return new URL (sb.toString());
+ }
+
+ /**
+ * Search for a similar page in the eclipse editor
+ * @param aUrl
+ * @return String
+ */
+ private String getEditorId (URL aUrl) {
+ //Try to get the editor id
+ IEditorDescriptor desc = PlatformUI.getWorkbench().
+ getEditorRegistry().getDefaultEditor(aUrl.getFile());
+ String id = null;
+ if (desc !=null) {
+ id = desc.getId();
+ }
+
+ return id;
+ }
+
// ------------------------------------------------------------------------
// Methods Public
// ------------------------------------------------------------------------
- public static R4EGerritServerUtility getDefault () {
- if (instance == null) {
+ public static R4EGerritServerUtility getInstance () {
+ if (fInstance == null) {
new R4EGerritServerUtility();
}
- return instance;
+ return fInstance;
}
/**
* Return the mapping of the available Gerrit server used in the user workspace
* @return Map<Repository, String>
*/
- public static Map<TaskRepository, String> getGerritMapping () {
+ public Map<TaskRepository, String> getGerritMapping () {
+ if (fResultTask == null ) {
+ fResultTask = new HashMap<TaskRepository,String>();
+ }
+
+
+ //Reset the list of Gerrit server
+ fResultTask.clear();
+
+ TaskRepositoryManager repositoryManager = TasksUiPlugin.getRepositoryManager();
+ if (repositoryManager != null) {
+ //Only get the TaskRepository related to Gerrit review connnector
+ R4EGerritPlugin.Ftracer.traceInfo("--------Review repo ---------------");
+ Set<TaskRepository> reviewRepo = repositoryManager.getRepositories(GerritConnector.CONNECTOR_KIND);
+ for (TaskRepository taskRepo: reviewRepo) {
+ R4EGerritPlugin.Ftracer.traceInfo("Add Gerrit Review repo: " + taskRepo.getRepositoryLabel() + "\t url: " + taskRepo.getRepositoryUrl());
+ fResultTask.put(taskRepo, taskRepo.getRepositoryUrl());
+ if (null != taskRepo.getRepositoryUrl() ) {
+ adjustTemplatemanager(taskRepo);
+ }
+ }
+ //Print a the end the info for all Gerrit
+ printRepositoryTemplate();
+
+ }
return fResultTask;
}
@@ -345,6 +401,7 @@
*/
public String getMenuSelectionURL (String aSt) {
String urlStr = null;
+ fResultTask = getGerritMapping();
if (!fResultTask.isEmpty()) {
Set<TaskRepository> mapSet = fResultTask.keySet();
R4EGerritPlugin.Ftracer.traceInfo("-------------------");
@@ -369,7 +426,7 @@
*
*/
public TaskRepository getTaskRepo (String aStURL) {
-
+ fResultTask = getGerritMapping();
if (aStURL != null && !fResultTask.isEmpty()) {
Set<TaskRepository> mapSet = fResultTask.keySet();
R4EGerritPlugin.Ftracer.traceInfo("-------------------");
@@ -384,8 +441,39 @@
return null;
}
+
/**
+ * Open the web browser for the specific documentation
+ * @param String aDocumentation requested documentation
+ */
+ public void openWebBrowser (String aDocumentation) {
+ if (fInstance == null) {
+ fInstance = getInstance();
+ }
+
+ IWorkbenchBrowserSupport workBenchSupport = PlatformUI.getWorkbench().getBrowserSupport();
+ URL url = null;
+ try {
+ url = buildDocumentationURL (aDocumentation);
+ try {
+
+ //Using NULL as a browser id will create a new editor each time,
+ //so we need to see if there is already an editor for this help
+ String id = getEditorId (url);
+ workBenchSupport.createBrowser(id).openURL(url);
+ } catch (PartInitException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ } catch (MalformedURLException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ R4EGerritUi.Ftracer.traceInfo("openWebBrowser for " + url );
+ }
+
+ /**
* Read the Gerrit server to populate the list of reviews
*/
public void getReviewListFromServer () {
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4egerrit/ui/views/R4EGerritTableView.java b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4egerrit/ui/views/R4EGerritTableView.java
index 676756d..e09493c 100644
--- a/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4egerrit/ui/views/R4EGerritTableView.java
+++ b/org.eclipse.mylyn.reviews.r4e-gerrit.ui/src/org/eclipse/mylyn/reviews/r4egerrit/ui/views/R4EGerritTableView.java
@@ -92,10 +92,12 @@
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.menus.CommandContributionItem;
import org.eclipse.ui.menus.CommandContributionItemParameter;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.ui.services.IServiceLocator;
+import org.osgi.framework.Version;
/**
* This class initiate a new workbench view. The view
@@ -135,7 +137,12 @@
private final int SEARCH_WIDTH = 300;
private final int REPO_WIDTH = 200;
- private final int VERSION_WIDTH = 70;
+ private final int VERSION_WIDTH = 100;
+
+ private final String SEARCH_TOOLTIP = "Ex. status:open (or is:open) \n status:merged \n "
+ + "is:draft \n status:open project:Foo \n "
+ + "See explanation by selecting in the toolbar \n "
+ + "Documentation > Searching";
// ------------------------------------------------------------------------
// Member variables
@@ -166,7 +173,7 @@
private static TableViewer fViewer;
private ReviewTableData fReviewTable = new ReviewTableData();
- private R4EGerritServerUtility fServerUtil = new R4EGerritServerUtility();
+ private R4EGerritServerUtility fServerUtil = R4EGerritServerUtility.getInstance();
private Map<TaskRepository, String> fMapRepoServer = null;
@@ -349,6 +356,7 @@
//Create a SEARCH text data entry
fSearchRequestText = new Text (rightSsearchForm, SWT.BORDER);
fSearchRequestText.setLayoutData(new GridData(SEARCH_WIDTH, SWT.DEFAULT));
+ fSearchRequestText.setToolTipText(SEARCH_TOOLTIP);
//Create a SEARCH button
fSearchRequestBtn = new Button (rightSsearchForm, SWT.NONE);
@@ -551,7 +559,7 @@
if (fTaskRepository == null) {
//If we did not find the task Repository
- fMapRepoServer = R4EGerritServerUtility.getGerritMapping();
+ fMapRepoServer = R4EGerritServerUtility.getInstance().getGerritMapping();
//Verify How many gerrit server are defined
if (fMapRepoServer.size() == 1) {
Set<TaskRepository> mapSet = fMapRepoServer.keySet();
@@ -578,6 +586,50 @@
}
/**
+ * Find the last Gerrit server being used , otherwise consider the Eclipse.org gerrit server version as a default
+ * @return Version
+ */
+ public Version getlastGerritServerVersion () {
+ Version version = null;
+ String lastSaved = fServerUtil.getLastSavedGerritServer();
+ if (lastSaved != null) {
+ //Already saved a Gerrit server, so use it
+ fTaskRepository = fServerUtil.getTaskRepo(lastSaved);
+ }
+
+ if (fTaskRepository == null) {
+ //If we did not find the task Repository
+ fMapRepoServer = R4EGerritServerUtility.getInstance().getGerritMapping();
+ //Verify How many gerrit server are defined
+ if (fMapRepoServer.size() == 1) {
+ Set<TaskRepository> mapSet = fMapRepoServer.keySet();
+ for (TaskRepository key: mapSet) {
+ fTaskRepository = key;
+ //Save it for the next query time
+ fServerUtil.saveLastGerritServer(key.getRepositoryUrl());
+ break;
+ }
+
+ }
+ }
+
+ //We should have a TaskRepository here, otherwise, the user need to define one
+ if (fTaskRepository != null) {
+ if (fConnector != null) {
+ GerritClient gerritClient = fConnector.getClient(fTaskRepository);
+ try {
+ version = gerritClient.getVersion(new NullProgressMonitor());
+ R4EGerritUi.Ftracer.traceInfo("Selected version: " + version.toString());
+ } catch (GerritException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+ return version;
+ }
+
+ /**
* @param aTaskRepo
* @param aQueryType
* @return
@@ -615,7 +667,7 @@
setRepositoryLabel(aTaskRepo.getRepositoryLabel());
GerritClient gerritClient = fConnector.getClient(aTaskRepo);
try {
- R4EGerritUi.Ftracer.traceInfo("Jb GerritClient: " + gerritClient.getVersion(new NullProgressMonitor()) );
+ R4EGerritUi.Ftracer.traceInfo("GerritClient: " + gerritClient.getVersion(new NullProgressMonitor()) );
setRepositoryVersionLabel (gerritClient.getVersion(new NullProgressMonitor()).toString() );
} catch (GerritException e1) {
e1.printStackTrace();