diff options
author | jbouthillie | 2013-05-23 19:49:02 +0000 |
---|---|---|
committer | jbouthillie | 2013-05-27 13:22:40 +0000 |
commit | 1a7f53144703d9809bb46066245e929bc24502de (patch) | |
tree | 85392ba6ad0d29935392fdaca4b61074263aa1b8 | |
parent | becdebae52c064168705ddcfef868114e81fdc19 (diff) | |
download | org.eclipse.mylyn.reviews.r4e-1a7f53144703d9809bb46066245e929bc24502de.tar.gz org.eclipse.mylyn.reviews.r4e-1a7f53144703d9809bb46066245e929bc24502de.tar.xz org.eclipse.mylyn.reviews.r4e-1a7f53144703d9809bb46066245e929bc24502de.zip |
- Adjust code to read the Task Repository and fill the R4E-menu
- Adjust the dialogue to have the task properties
Change-Id: I42c8477657a229946a4e13ae534d69e93d60d7d5
4 files changed, 211 insertions, 133 deletions
diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/commands/AddGerritSiteHandler.java b/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/commands/AddGerritSiteHandler.java index 5bdef48b..c74126f7 100644 --- a/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/commands/AddGerritSiteHandler.java +++ b/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/commands/AddGerritSiteHandler.java @@ -27,7 +27,6 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.jgit.lib.Repository; import org.eclipse.mylyn.internal.gerrit.core.GerritConnector; import org.eclipse.mylyn.internal.tasks.ui.wizards.EditRepositoryWizard; import org.eclipse.mylyn.reviews.r4e_gerrit.R4EGerritPlugin; @@ -62,7 +61,7 @@ public class AddGerritSiteHandler extends AbstractHandler { private R4EGerritServerUtility fServerUtil = null; - private Map<Repository, String> fMapRepoServer = null; + private Map<TaskRepository, String> fMapRepoServer = null; // ------------------------------------------------------------------------ @@ -91,17 +90,16 @@ public class AddGerritSiteHandler extends AbstractHandler { if (objWidget instanceof MenuItem) { MenuItem menuItem = (MenuItem) objWidget; menuItemText = menuItem.getText(); -// R4EGerritPlugin.Ftracer.traceInfo("MenuItem: " + menuItemText ); R4EGerritPlugin.Ftracer.traceInfo("MenuItem: " + menuItemText + "\t value: " + param.get(menuItemText) + " VS saved: " + fServerUtil.getLastSavedGerritServer()); fMapRepoServer = fServerUtil.getGerritMapping(); String stURL = fServerUtil.getMenuSelectionURL(menuItemText); R4EGerritPlugin.Ftracer.traceInfo("URL for the menuItemText: " + stURL); if (!fMapRepoServer.isEmpty()) { - Set<Repository> mapSet = fMapRepoServer.keySet(); + Set<TaskRepository> mapSet = fMapRepoServer.keySet(); R4EGerritPlugin.Ftracer.traceInfo("-------------------"); - for (Repository key: mapSet) { - R4EGerritPlugin.Ftracer.traceInfo("Map Key name: " + key.getWorkTree().getName() + "\t URL: " + fMapRepoServer.get(key)); + for (TaskRepository key: mapSet) { + R4EGerritPlugin.Ftracer.traceInfo("Map Key name: " + key.getRepositoryLabel() + "\t URL: " + fMapRepoServer.get(key)); } } @@ -143,15 +141,11 @@ public class AddGerritSiteHandler extends AbstractHandler { public IStatus run(final IProgressMonitor aMonitor) { aMonitor.beginTask(COMMAND_MESSAGE, IProgressMonitor.UNKNOWN); -// final TaskRepository repository = getTaskRepository(); - final TaskRepository repository = getTaskRepository(fServerUtil.getLastSavedGerritServer()); + final TaskRepository taskRepository = getTaskRepository(fServerUtil.getLastSavedGerritServer()); - R4EGerritPlugin.Ftracer.traceInfo("repository: " + repository.getUrl()); //$NON-NLS-1$ -// int ret = TasksUiUtil.openEditRepositoryWizard(repository); //Generate a null pointer for the workbench window + R4EGerritPlugin.Ftracer.traceInfo("repository: " + taskRepository.getUrl()); //$NON-NLS-1$ - - R4EGerritPlugin.Ftracer.traceInfo("Before: repository: " + repository.getUrl() ); //$NON-NLS-1$ - final EditRepositoryWizard wizard = new EditRepositoryWizard(repository); + final EditRepositoryWizard wizard = new EditRepositoryWizard(taskRepository); Display.getDefault().syncExec(new Runnable() { public void run() { WizardDialog dialog = new TaskRepositoryWizardDialog(wizard.getShell(), wizard); @@ -162,13 +156,13 @@ public class AddGerritSiteHandler extends AbstractHandler { }); //When the wizard is closed - if (repository.getUrl().isEmpty() || - repository.getUrl().endsWith(R4EUIConstants.DEFAULT_REPOSITORY)) { + if (taskRepository.getUrl().isEmpty() || + taskRepository.getUrl().endsWith(R4EUIConstants.DEFAULT_REPOSITORY)) { //User selected the Cancel button R4EGerritPlugin.Ftracer.traceInfo("AFTER: repository: CANCEL " ); //$NON-NLS-1$ } else { R4EGerritPlugin.Ftracer.traceInfo("AFTER: repository: : FINISH " ); //$NON-NLS-1$ - fServerUtil.saveLastGerritServer(repository.getUrl()); + fServerUtil.saveLastGerritServer(taskRepository.getUrl()); /*****************************************************/ /* */ /* Now, we need to get the Gerrit repo data */ @@ -179,8 +173,8 @@ public class AddGerritSiteHandler extends AbstractHandler { fServerUtil.getReviewListFromServer (); } - R4EGerritPlugin.Ftracer.traceInfo("AFTER: repository: : " + repository.getUrl() + - "\n\t repo: " + repository.getRepositoryUrl() ); //$NON-NLS-1$ + R4EGerritPlugin.Ftracer.traceInfo("AFTER: repository: : " + taskRepository.getUrl() + + "\n\t repo: " + taskRepository.getRepositoryUrl() ); //$NON-NLS-1$ aMonitor.done(); @@ -199,28 +193,22 @@ public class AddGerritSiteHandler extends AbstractHandler { * @param String default URL * @return TaskRepository */ -// private TaskRepository getTaskRepository () { private TaskRepository getTaskRepository (String aUrl) { TaskRepository taskRepo = null; - //Begin search for the current Gerrit connector -// final RepositoryTemplateManager templateManager = TasksUiPlugin.getRepositoryTemplateManager(); -// -// for (RepositoryTemplate template : templateManager.getTemplates(GerritConnector.CONNECTOR_KIND)) { -// R4EGerritPlugin.Ftracer.traceInfo("Gerrit repository: " + template.label + "\t URL: " + template.repositoryUrl); -// taskRepo = new TaskRepository (GerritConnector.CONNECTOR_KIND, template.repositoryUrl); -// taskRepo.setRepositoryLabel(template.label); -// } - - + //Search for the current Gerrit connector + taskRepo = R4EGerritServerUtility.getDefault().getTaskRepo(aUrl); + if (taskRepo == null) { - //Create a default Task repo -// taskRepo = new TaskRepository (GerritConnector.CONNECTOR_KIND, R4EUIConstants.DEFAULT_REPOSITORY); if (aUrl != null) { taskRepo = new TaskRepository (GerritConnector.CONNECTOR_KIND, aUrl); } else { + //Create a default Task repo taskRepo = new TaskRepository (GerritConnector.CONNECTOR_KIND, R4EUIConstants.DEFAULT_REPOSITORY); } + } else { + R4EGerritPlugin.Ftracer.traceInfo("Repo already in list: " + taskRepo.getRepositoryLabel()); + } return taskRepo; } diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/commands/SelectReviewSiteHandler.java b/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/commands/SelectReviewSiteHandler.java index 632cd5c2..736f689e 100644 --- a/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/commands/SelectReviewSiteHandler.java +++ b/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/commands/SelectReviewSiteHandler.java @@ -26,10 +26,10 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.jgit.lib.Repository; import org.eclipse.mylyn.reviews.r4e_gerrit.R4EGerritPlugin; import org.eclipse.mylyn.reviews.r4e_gerrit.internal.utils.R4EGerritServerUtility; import org.eclipse.mylyn.reviews.r4e_gerrit.internal.utils.R4EUIConstants; +import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.handlers.IHandlerService; @@ -56,7 +56,8 @@ public class SelectReviewSiteHandler extends AbstractHandler { private R4EGerritServerUtility fServerUtil = null; - private Map<Repository, String> fMapRepoServer = null; +// private Map<Repository, String> fMapRepoServer = null; + private Map<TaskRepository, String> fMapRepoServer = null; // ------------------------------------------------------------------------ @@ -95,10 +96,13 @@ public class SelectReviewSiteHandler extends AbstractHandler { //Debug purpose, see which project have a gerrit server fMapRepoServer = fServerUtil.getGerritMapping(); if (!fMapRepoServer.isEmpty()) { - Set<Repository> mapSet = fMapRepoServer.keySet(); + Set<TaskRepository> mapSet = fMapRepoServer.keySet(); R4EGerritPlugin.Ftracer.traceInfo("-------------------"); - for (Repository key: mapSet) { - R4EGerritPlugin.Ftracer.traceInfo("Map Key repo name : " + key.getWorkTree().getName() + "\t URL: " + fMapRepoServer.get(key)); + for (TaskRepository key: mapSet) { + R4EGerritPlugin.Ftracer.traceInfo("Map Key repo name : " + + key.getRepositoryLabel() + + "\t URL: " + + fMapRepoServer.get(key)); } } //End Debug diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/menus/DynamicMenuAddition.java b/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/menus/DynamicMenuAddition.java index a52fa8e7..6e46bebe 100644 --- a/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/menus/DynamicMenuAddition.java +++ b/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/menus/DynamicMenuAddition.java @@ -20,10 +20,10 @@ import java.util.Set; import org.eclipse.jface.action.IContributionItem; import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jgit.lib.Repository; import org.eclipse.mylyn.reviews.r4e_gerrit.R4EGerritPlugin; import org.eclipse.mylyn.reviews.r4e_gerrit.internal.utils.R4EGerritServerUtility; import org.eclipse.mylyn.reviews.r4e_gerrit.internal.utils.R4EUIConstants; +import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.ui.actions.CompoundContributionItem; import org.eclipse.ui.menus.CommandContributionItem; import org.eclipse.ui.menus.CommandContributionItemParameter; @@ -56,7 +56,7 @@ public class DynamicMenuAddition extends CompoundContributionItem implements IWo private R4EGerritServerUtility fServer = null; - private Map<Repository, String> fMapServer = null; + private Map<TaskRepository, String> fMapServer = null; private ImageDescriptor fSelectPicture = null; @@ -65,37 +65,44 @@ public class DynamicMenuAddition extends CompoundContributionItem implements IWo // ------------------------------------------------------------------------ @Override protected IContributionItem[] getContributionItems() { - - R4EGerritPlugin.Ftracer.traceInfo("\t\t DynamicMenuAddition .getContributionItems()" ); - CommandContributionItem[] contributionItems = new CommandContributionItem[0]; - if (fServer != null) { - fMapServer = fServer.getGerritMapping(); - } - + + R4EGerritPlugin.Ftracer + .traceInfo("\t\t DynamicMenuAddition .getContributionItems()"); + CommandContributionItem[] contributionItems = new CommandContributionItem[0]; + if (fServer != null) { + fMapServer = fServer.getGerritMapping(); + } + if (fMapServer != null && !fMapServer.isEmpty()) { - Set<Repository> mapSet = fMapServer.keySet(); - String lastSelected = fServer.getLastSavedGerritServer(); - R4EGerritPlugin.Ftracer.traceInfo("-------------------"); - int size = mapSet.size(); - contributionItems = new CommandContributionItem[size]; + Set<TaskRepository> mapSet = fMapServer.keySet(); + String lastSelected = fServer.getLastSavedGerritServer(); + R4EGerritPlugin.Ftracer.traceInfo("-------------------"); + int size = mapSet.size(); + contributionItems = new CommandContributionItem[size]; + + int count = 0; + for (TaskRepository key : mapSet) { + R4EGerritPlugin.Ftracer.traceInfo("Map Key: " + + key.getRepositoryLabel() + "\t URL: " + + fMapServer.get(key)); + CommandContributionItemParameter contributionParameter = new CommandContributionItemParameter( + fServiceLocator, fMapServer.get(key), + R4EUIConstants.ADD_GERRIT_SITE_COMMAND_ID, + CommandContributionItem.STYLE_PUSH); + contributionParameter.label = key.getRepositoryLabel(); + contributionParameter.visibleEnabled = true; + if (lastSelected != null + && lastSelected.equals(fMapServer.get(key))) { + fSelectPicture = R4EGerritPlugin + .getImageDescriptor(SELECT_PICTURE_FILE); - int count = 0; - for (Repository key: mapSet) { - R4EGerritPlugin.Ftracer.traceInfo("Map Key: " + key.getWorkTree().getName() + "\t URL: " + fMapServer.get(key)); - CommandContributionItemParameter contributionParameter = new CommandContributionItemParameter(fServiceLocator, - fMapServer.get(key), R4EUIConstants.ADD_GERRIT_SITE_COMMAND_ID, - CommandContributionItem.STYLE_PUSH); - contributionParameter.label = key.getWorkTree().getName(); - contributionParameter.visibleEnabled = true; - if (lastSelected != null && lastSelected.equals(fMapServer.get(key)) ) { - fSelectPicture = R4EGerritPlugin.getImageDescriptor(SELECT_PICTURE_FILE); + contributionParameter.icon = fSelectPicture; - contributionParameter.icon = fSelectPicture; - - } - contributionItems[count++] = new CommandContributionItem(contributionParameter) ; } + contributionItems[count++] = new CommandContributionItem( + contributionParameter); } + } return contributionItems; } diff --git a/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/utils/R4EGerritServerUtility.java b/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/utils/R4EGerritServerUtility.java index 19965752..1eb9e540 100644 --- a/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/utils/R4EGerritServerUtility.java +++ b/org.eclipse.mylyn.reviews.r4e-gerrit/src/org/eclipse/mylyn/reviews/r4e_gerrit/internal/utils/R4EGerritServerUtility.java @@ -24,6 +24,7 @@ import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import org.eclipse.core.runtime.IPath; @@ -33,8 +34,6 @@ import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.ConfigConstants; import org.eclipse.jgit.lib.Repository; import org.eclipse.mylyn.internal.gerrit.core.GerritConnector; -import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants; -import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery; import org.eclipse.mylyn.internal.tasks.core.RepositoryTemplateManager; import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; @@ -78,11 +77,9 @@ public class R4EGerritServerUtility { // Variables // ------------------------------------------------------------------------ - private Map<Repository, String> fResult = new HashMap<Repository,String>(); - - private R4EGerritServerUtility instance = null; + private static R4EGerritServerUtility instance = null; - private Map<TaskRepository, String> fResultTask = new HashMap<TaskRepository,String>(); + private static Map<TaskRepository, String> fResultTask = new HashMap<TaskRepository,String>(); @@ -92,31 +89,128 @@ public class R4EGerritServerUtility { public R4EGerritServerUtility() { instance = this; mapConfiguredGerritServer(); + + //LATER: Map the workspace gerrit to the menu option + //addWorkspaceGerritRepo(); + //Begin Test - testTaskRepo(); + //testTaskRepo(); not needed anymore //End Test } // ------------------------------------------------------------------------ // Methods Private // ------------------------------------------------------------------------ - private Map<Repository, String> mapConfiguredGerritServer () { + + /** + * Map the configured Gerrit server found in the TaskList + * @return Map<TaskRepository, String> + */ + private 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("Only 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 + */ + private void adjustTemplatemanager (TaskRepository aTaskRepo) { + RepositoryTemplateManager templateManager = TasksUiPlugin.getRepositoryTemplateManager(); + //Verify to only add once in the repository template + Boolean found = false; + // printTaskRepository(aTaskRepo); + for (RepositoryTemplate template : templateManager.getTemplates(GerritConnector.CONNECTOR_KIND)) { + String convertedRemoteURL = aTaskRepo.getRepositoryUrl() ; + R4EGerritPlugin.Ftracer.traceInfo("\t template.label: " + template.label + + "\t repo label: " + aTaskRepo.getRepositoryLabel() +" repo getname: " + convertedRemoteURL ); + //Test the name and the remoteURL to reduce duplications + if (template.label.equals(aTaskRepo.getRepositoryLabel()) || + template.repositoryUrl.equals(convertedRemoteURL) ) { + found = true; + break; + } + } + + if (!found) { + //Set each parameter of the Gerrit server + String userName = aTaskRepo.getUserName(); + Boolean anonymous = (userName != null && !userName.isEmpty()) ? false: true; + + //Create a repository template + RepositoryTemplate templateTest = new RepositoryTemplate(aTaskRepo.getRepositoryLabel(), + aTaskRepo.getRepositoryUrl(), + aTaskRepo.getCharacterEncoding(), + aTaskRepo.getVersion(), + "", "", "", + aTaskRepo.getUserName(), anonymous, true); + + //Set the attributes + Map<String, String> attributes = aTaskRepo.getProperties(); + + Set<Entry<String, String>> value = attributes.entrySet(); + for ( Map.Entry <String, String> entry: value){ + templateTest.addAttribute(entry.getKey(), entry.getValue()); + } + templateManager.addTemplate(GerritConnector.CONNECTOR_KIND, templateTest); + + } + } + + private void printRepositoryTemplate() { + RepositoryTemplateManager templateManager = TasksUiPlugin.getRepositoryTemplateManager(); + for (RepositoryTemplate template : templateManager.getTemplates(GerritConnector.CONNECTOR_KIND)) { + R4EGerritPlugin.Ftracer.traceInfo("------------======================------------------"); + Set<Entry<String, String>> value = template.getAttributes().entrySet(); + for (Map.Entry <String, String> entry: value) { + R4EGerritPlugin.Ftracer.traceInfo("key: " + entry.getKey() + "\tvalue: " + + entry.getValue()); + } + } + } + + private void printTaskRepository(TaskRepository aTask) { + Set<Entry<String, String>> value = aTask.getProperties().entrySet(); + for (Map.Entry<String, String> entry : value) { + R4EGerritPlugin.Ftracer.traceInfo("TaskRepo key: " + entry.getKey() + + "\tvalue: " + entry.getValue()); + } + R4EGerritPlugin.Ftracer.traceInfo(" UserName: " + aTask.getUserName()); + R4EGerritPlugin.Ftracer + .traceInfo("==================================="); + } + + /** + * This method use the Gerrit from the git server in the workspace + */ + private void addWorkspaceGerritRepo () { RepositoryUtil repoUtil = org.eclipse.egit.core.Activator.getDefault().getRepositoryUtil(); List<String> repoPaths = repoUtil.getConfiguredRepositories(); RepositoryCache repositoryCache = org.eclipse.egit.core.Activator.getDefault().getRepositoryCache(); Repository repo = null; - RepositoryTemplateManager templateManager = TasksUiPlugin.getRepositoryTemplateManager(); - //Reset the list of Gerrit server - fResult.clear(); - for (String repoPath : repoPaths) { R4EGerritPlugin.Ftracer.traceInfo("List Gerrit repository: " + repoPath ); File gitDir = new File(repoPath); if (!gitDir.exists()) { R4EGerritPlugin.Ftracer.traceInfo("Gerrit repository do not exist: " + gitDir.getPath()); - continue; - + continue; } try { repo = repositoryCache.lookupRepository(gitDir); @@ -127,6 +221,7 @@ public class R4EGerritServerUtility { } if (repo != null) { Config config = new Config(repo.getConfig()); + //Look to get the remotes URL Set<String> remotes = config.getSubsections(ConfigConstants.CONFIG_REMOTE_SECTION); for (String remote: remotes) { String remoteURL = config.getString(ConfigConstants.CONFIG_REMOTE_SECTION, @@ -134,40 +229,21 @@ public class R4EGerritServerUtility { ConfigConstants.CONFIG_KEY_URL); R4EGerritPlugin.Ftracer.traceInfo("\t\t " + remote +" -> remoteURL: " + remoteURL ); - //Test if this is a Gerrit server and add it to the Dialogue cmbo + //Test if this is a Gerrit server and add it to the Dialogue combo String convertedRemoteURL = getReformatGerritServer(remoteURL) ; if (null != convertedRemoteURL ) { - fResult.put(repo, convertedRemoteURL); - //Test Begin - //Verify to only add once - Boolean found = false; - for (RepositoryTemplate template : templateManager.getTemplates(GerritConnector.CONNECTOR_KIND)) { - R4EGerritPlugin.Ftracer.traceInfo("\t template.label: " + template.label - +" repo getname: " + repo.getWorkTree().getName() ); - //Test the name and the remoteURL to reduce duplications - if (template.label.equals(repo.getWorkTree().getName()) || - template.repositoryUrl.equals(remoteURL) ) { - found = true; - break; - } - } + TaskRepository taskRepo = new TaskRepository(GerritConnector.CONNECTOR_KIND, convertedRemoteURL); + taskRepo.setRepositoryLabel(convertedRemoteURL); + fResultTask.put(taskRepo, taskRepo.getRepositoryUrl()); + adjustTemplatemanager(taskRepo); - if (!found) { - RepositoryTemplate templateTest = new RepositoryTemplate(repo.getWorkTree().getName(), convertedRemoteURL, - "", "", "", "", "", "", false, true); - templateManager.addTemplate(GerritConnector.CONNECTOR_KIND, templateTest); - - } - //Test END - } } } } - - return fResult; } + //Note the Gerrit server for "git.eclipse.org" in config is // not the same as in the task Repository: "git.eclipse.org/r" /** @@ -203,7 +279,7 @@ public class R4EGerritServerUtility { // ------------------------------------------------------------------------ // Methods Public // ------------------------------------------------------------------------ - public R4EGerritServerUtility getDefault () { + public static R4EGerritServerUtility getDefault () { if (instance == null) { new R4EGerritServerUtility(); } @@ -214,8 +290,8 @@ public class R4EGerritServerUtility { * Return the mapping of the available Gerrit server used in the user workspace * @return Map<Repository, String> */ - public Map<Repository, String> getGerritMapping () { - return fResult; + public static Map<TaskRepository, String> getGerritMapping () { + return fResultTask; } /** @@ -269,14 +345,14 @@ public class R4EGerritServerUtility { */ public String getMenuSelectionURL (String aSt) { String urlStr = null; - if (!fResult.isEmpty()) { - Set<Repository> mapSet = fResult.keySet(); + if (!fResultTask.isEmpty()) { + Set<TaskRepository> mapSet = fResultTask.keySet(); R4EGerritPlugin.Ftracer.traceInfo("-------------------"); - for (Repository key: mapSet) { - if (key.getWorkTree().getName().equals(aSt)) { - urlStr = fResult.get(key); + for (TaskRepository key: mapSet) { + if (key.getRepositoryLabel().equals(aSt)) { + urlStr = fResultTask.get(key); - R4EGerritPlugin.Ftracer.traceInfo("Map Key: " + key.getWorkTree().getName() + "\t URL: " + fResult.get(key)); + R4EGerritPlugin.Ftracer.traceInfo("Map Key: " + key.getRepositoryLabel() + "\t URL: " + fResultTask.get(key)); return urlStr; } } @@ -286,6 +362,30 @@ public class R4EGerritServerUtility { } /** + * Get the Gerrit task Repository + * + * @param string aSt + * @return TaskRepository + * + */ + public TaskRepository getTaskRepo (String aStURL) { + + if (aStURL != null && !fResultTask.isEmpty()) { + Set<TaskRepository> mapSet = fResultTask.keySet(); + R4EGerritPlugin.Ftracer.traceInfo("-------------------"); + for (TaskRepository key: mapSet) { + if (key.getRepositoryUrl().equals(aStURL)) { + + R4EGerritPlugin.Ftracer.traceInfo("Key label : " + key.getRepositoryLabel() + "\t URL: " + fResultTask.get(key)); + return key; + } + } + } + + return null; + } + + /** * Read the Gerrit server to populate the list of reviews */ public void getReviewListFromServer () { @@ -339,28 +439,7 @@ public class R4EGerritServerUtility { //Reset the list of Gerrit server fResultTask.clear(); - //Begin search for the current Gerrit connector - final RepositoryTemplateManager templateManager = TasksUiPlugin.getRepositoryTemplateManager(); - - for (RepositoryTemplate template : templateManager.getTemplates(GerritConnector.CONNECTOR_KIND)) { - R4EGerritPlugin.Ftracer.traceInfo("Gerrit repository: " + template.label + "\t URL: " + template.repositoryUrl); - taskRepo = new TaskRepository (GerritConnector.CONNECTOR_KIND, template.repositoryUrl); - taskRepo.setRepositoryLabel(template.label); - fResultTask.put(taskRepo, template.repositoryUrl); -// //Test Begin -// RepositoryTemplate templateTest = new RepositoryTemplate(template.label, template.repositoryUrl, -// "", "", "", "", "", "", false, true); -// templateManager.addTemplate(GerritConnector.CONNECTOR_KIND, templateTest); -// //Test END - } - - if (taskRepo == null) { - //Create a default Task repo - taskRepo = new TaskRepository (GerritConnector.CONNECTOR_KIND, DEFAULT_REPOSITORY); - - } - //Test to read the TaskRepositories TaskRepositoryManager repositoryManager = TasksUiPlugin.getRepositoryManager(); |