From 852132489ab99dfac0ce24db3dfff4b468634c69 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sun, 14 Oct 2012 09:02:44 +0400 Subject: [PATCH] Tasks. Configure Servers action. --- .../tasks/tasks-core/src/META-INF/plugin.xml | 2 ++ .../actions/AnalyzeTaskStacktraceAction.java | 1 + .../tasks/actions/BaseTaskAction.java | 6 ++++ .../tasks/actions/CloseTaskAction.java | 1 + .../tasks/actions/ConfigureServersAction.java | 29 +++++++++++++++++++ .../tasks/actions/CreateChangelistAction.java | 1 + .../tasks/actions/GotoTaskAction.java | 16 +++++++--- .../actions/OpenTaskInBrowserAction.java | 1 + 8 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 plugins/tasks/tasks-core/src/com/intellij/tasks/actions/ConfigureServersAction.java diff --git a/plugins/tasks/tasks-core/src/META-INF/plugin.xml b/plugins/tasks/tasks-core/src/META-INF/plugin.xml index e20f7361292b..9cfa66bfb275 100644 --- a/plugins/tasks/tasks-core/src/META-INF/plugin.xml +++ b/plugins/tasks/tasks-core/src/META-INF/plugin.xml @@ -37,6 +37,8 @@ + + diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/AnalyzeTaskStacktraceAction.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/AnalyzeTaskStacktraceAction.java index b6313593220b..b618d8c9c8ce 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/AnalyzeTaskStacktraceAction.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/AnalyzeTaskStacktraceAction.java @@ -35,6 +35,7 @@ public class AnalyzeTaskStacktraceAction extends BaseTaskAction { public void update(AnActionEvent event) { Task activeTask = getActiveTask(event); event.getPresentation().setEnabled(activeTask != null && hasTexts(activeTask)); + super.update(event); } public static boolean hasTexts(Task activeTask) { diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/BaseTaskAction.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/BaseTaskAction.java index 2d2b9fbe1c91..e616a17b0823 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/BaseTaskAction.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/BaseTaskAction.java @@ -25,6 +25,8 @@ import com.intellij.tasks.LocalTask; import com.intellij.tasks.TaskManager; import org.jetbrains.annotations.Nullable; +import javax.swing.*; + /** * @author Dmitry Avdeev */ @@ -37,6 +39,10 @@ public abstract class BaseTaskAction extends AnAction implements DumbAware { super(text); } + protected BaseTaskAction(@Nullable final String text, @Nullable final String description, @Nullable final Icon icon) { + super(text, description, icon); + } + public void update(AnActionEvent event){ event.getPresentation().setEnabled(getProject(event) != null); } diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CloseTaskAction.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CloseTaskAction.java index f0a34f223122..c72ed645b8d4 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CloseTaskAction.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CloseTaskAction.java @@ -42,5 +42,6 @@ public class CloseTaskAction extends BaseTaskAction { Presentation presentation = event.getPresentation(); Project project = PlatformDataKeys.PROJECT.getData(event.getDataContext()); presentation.setEnabled(project != null && !TaskManager.getManager(project).getActiveTask().isDefault()); + super.update(event); } } diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/ConfigureServersAction.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/ConfigureServersAction.java new file mode 100644 index 000000000000..c5debd3a612d --- /dev/null +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/ConfigureServersAction.java @@ -0,0 +1,29 @@ +package com.intellij.tasks.actions; + +import com.intellij.icons.AllIcons; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.options.ShowSettingsUtil; +import com.intellij.tasks.config.TaskRepositoriesConfigurable; + +/** + * User: Evgeny Zakrevsky + */ + +public class ConfigureServersAction extends BaseTaskAction { + + public ConfigureServersAction() { + super("Configure Servers...", null, AllIcons.General.IdeOptions); + } + + @Override + public void actionPerformed(AnActionEvent e) { + TaskRepositoriesConfigurable configurable = new TaskRepositoriesConfigurable(getProject(e)); + if (ShowSettingsUtil.getInstance().editConfigurable(getProject(e), configurable)) { + serversChanged(); + } + } + + protected void serversChanged() { + + } +} diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CreateChangelistAction.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CreateChangelistAction.java index 2c1273a15191..9151c782cd87 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CreateChangelistAction.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/CreateChangelistAction.java @@ -41,6 +41,7 @@ public class CreateChangelistAction extends BaseTaskAction { presentation.setText("Create changelist for '" + TaskUtil.getTrimmedSummary(manager.getActiveTask()) + "'"); presentation.setEnabled(true); } + super.update(event); } @Override diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/GotoTaskAction.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/GotoTaskAction.java index da7c67007df0..11ebca2207e4 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/GotoTaskAction.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/GotoTaskAction.java @@ -5,9 +5,7 @@ import com.intellij.ide.util.gotoByName.ChooseByNameBase; import com.intellij.ide.util.gotoByName.ChooseByNameItemProvider; import com.intellij.ide.util.gotoByName.ChooseByNamePopup; import com.intellij.ide.util.gotoByName.SimpleChooseByNameModel; -import com.intellij.openapi.actionSystem.ActionManager; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.IdeActions; +import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.keymap.KeymapUtil; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.project.Project; @@ -49,7 +47,7 @@ public class GotoTaskAction extends GotoActionBase { myInAction = getClass(); final Ref shiftPressed = Ref.create(false); - ChooseByNamePopup popup = ChooseByNamePopup.createPopup(project, new GotoTaskPopupModel(project), new ChooseByNameItemProvider() { + final ChooseByNamePopup popup = ChooseByNamePopup.createPopup(project, new GotoTaskPopupModel(project), new ChooseByNameItemProvider() { @NotNull @Override public List filterNames(@NotNull ChooseByNameBase base, @NotNull String[] names, @NotNull String pattern) { @@ -124,6 +122,16 @@ public class GotoTaskAction extends GotoActionBase { } }); + final DefaultActionGroup group = new DefaultActionGroup(new ConfigureServersAction() { + @Override + protected void serversChanged() { + popup.rebuildList(true); + } + }); + final ActionToolbar actionToolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, group, true); + actionToolbar.setLayoutPolicy(ActionToolbar.NOWRAP_LAYOUT_POLICY); + popup.setToolArea(actionToolbar.getComponent()); + showNavigationPopup(new GotoActionCallback() { @Override public void elementChosen(ChooseByNamePopup popup, Object element) { diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskInBrowserAction.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskInBrowserAction.java index bac1a06e084f..8094f08c7b9d 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskInBrowserAction.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/actions/OpenTaskInBrowserAction.java @@ -45,6 +45,7 @@ public class OpenTaskInBrowserAction extends BaseTaskAction { } else { presentation.setText("Open '" + TaskManager.getManager(project).getActiveTask().getPresentableName() + "' In _Browser"); } + super.update(event); } @Nullable