From 1fcfd0109745c87094ce9932fe262a1669bb0fbc Mon Sep 17 00:00:00 2001 From: Igor Vinokur Date: Tue, 7 Nov 2017 14:09:13 +0000 Subject: [PATCH] CHE-6237: Add icon to pull-request panel tab (#7175) 1. Add icon to pull-request panel tab: 2. Make pull-request panel tab active, if no active parts are present. --- .../client/ContributeResources.java | 3 ++ .../client/ContributionMixinProvider.java | 3 ++ .../contribute/ContributePartPresenter.java | 12 ++++++- .../plugin/pullrequest/client/images/icon.svg | 32 +++++++++++++++++++ .../selenium/git/PullRequestPluginTest.java | 2 ++ 5 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/resources/org/eclipse/che/plugin/pullrequest/client/images/icon.svg diff --git a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/ContributeResources.java b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/ContributeResources.java index e8df1a015f..194fc6e8fd 100644 --- a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/ContributeResources.java +++ b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/ContributeResources.java @@ -22,6 +22,9 @@ public interface ContributeResources extends ClientBundle { @Source("images/refresh.svg") SVGResource refreshIcon(); + @Source("images/icon.svg") + SVGResource titleIcon(); + interface ContributeCss extends CssResource { String blueButton(); diff --git a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/ContributionMixinProvider.java b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/ContributionMixinProvider.java index e43574cf10..4d6d490290 100644 --- a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/ContributionMixinProvider.java +++ b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/ContributionMixinProvider.java @@ -214,6 +214,9 @@ public class ContributionMixinProvider { private void addPart(PartStack partStack) { if (!partStack.containsPart(contributePart)) { partStack.addPart(contributePart, FIRST); + if (partStack.getActivePart() == null) { + partStack.setActivePart(contributePart); + } } } diff --git a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/parts/contribute/ContributePartPresenter.java b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/parts/contribute/ContributePartPresenter.java index 43071a22a2..061c4ef99a 100644 --- a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/parts/contribute/ContributePartPresenter.java +++ b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/java/org/eclipse/che/plugin/pullrequest/client/parts/contribute/ContributePartPresenter.java @@ -45,6 +45,7 @@ import org.eclipse.che.ide.ui.dialogs.input.InputValidator; import org.eclipse.che.ide.util.browser.BrowserUtils; import org.eclipse.che.ide.util.loging.Log; import org.eclipse.che.plugin.pullrequest.client.ContributeMessages; +import org.eclipse.che.plugin.pullrequest.client.ContributeResources; import org.eclipse.che.plugin.pullrequest.client.events.ContextInvalidatedEvent; import org.eclipse.che.plugin.pullrequest.client.events.ContextInvalidatedHandler; import org.eclipse.che.plugin.pullrequest.client.events.ContextPropertyChangeEvent; @@ -58,6 +59,7 @@ import org.eclipse.che.plugin.pullrequest.client.workflow.Context; import org.eclipse.che.plugin.pullrequest.client.workflow.Step; import org.eclipse.che.plugin.pullrequest.client.workflow.WorkflowExecutor; import org.eclipse.che.plugin.pullrequest.client.workflow.WorkflowStatus; +import org.vectomatic.dom.svg.ui.SVGResource; /** * Part for the contribution configuration. @@ -72,6 +74,7 @@ public class ContributePartPresenter extends BasePresenter CurrentContextChangedHandler, ContextInvalidatedHandler { private final ContributePartView view; + private final ContributeResources resources; private final WorkspaceAgent workspaceAgent; private final ContributeMessages messages; private final WorkflowExecutor workflowExecutor; @@ -84,6 +87,7 @@ public class ContributePartPresenter extends BasePresenter public ContributePartPresenter( final ContributePartView view, final ContributeMessages messages, + final ContributeResources resources, final WorkspaceAgent workspaceAgent, final EventBus eventBus, final WorkflowExecutor workflow, @@ -92,6 +96,7 @@ public class ContributePartPresenter extends BasePresenter final DialogFactory dialogFactory, final Map stagesProviders) { this.view = view; + this.resources = resources; this.workspaceAgent = workspaceAgent; this.workflowExecutor = workflow; this.messages = messages; @@ -251,6 +256,11 @@ public class ContributePartPresenter extends BasePresenter updateControls(); } + @Override + public SVGResource getTitleImage() { + return resources.titleIcon(); + } + @Override public void onOpenPullRequestOnVcsHost() { final Context context = workflowExecutor.getCurrentContext(); @@ -340,7 +350,7 @@ public class ContributePartPresenter extends BasePresenter @Nullable @Override public String getTitleToolTip() { - return null; + return messages.contributePartTitle(); } @Override diff --git a/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/resources/org/eclipse/che/plugin/pullrequest/client/images/icon.svg b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/resources/org/eclipse/che/plugin/pullrequest/client/images/icon.svg new file mode 100644 index 0000000000..172ea97f6d --- /dev/null +++ b/plugins/plugin-pullrequest-parent/che-plugin-pullrequest-ide/src/main/resources/org/eclipse/che/plugin/pullrequest/client/images/icon.svg @@ -0,0 +1,32 @@ + + + + + + + + diff --git a/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/git/PullRequestPluginTest.java b/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/git/PullRequestPluginTest.java index c096609e07..e8e18dee7a 100644 --- a/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/git/PullRequestPluginTest.java +++ b/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/git/PullRequestPluginTest.java @@ -156,6 +156,7 @@ public class PullRequestPluginTest { @Test(priority = 1) public void createPullRequest() { explorer.waitItem(FIRST_PROJECT_NAME); + explorer.selectItem(FIRST_PROJECT_NAME); explorer.openItemByPath(FIRST_PROJECT_NAME); explorer.openItemByPath(FIRST_PROJECT_NAME + "/README.md"); @@ -218,6 +219,7 @@ public class PullRequestPluginTest { explorer.waitProjectExplorer(); explorer.waitItem(FIRST_PROJECT_NAME); explorer.waitItem(SECOND_PROJECT_NAME); + explorer.selectItem(FIRST_PROJECT_NAME); explorer.openItemByPath(FIRST_PROJECT_NAME); explorer.openItemByPath(FIRST_PROJECT_NAME + "/README.md"); editor.waitActiveEditor();