diff options
author | relves | 2009-02-20 22:47:05 +0000 |
---|---|---|
committer | relves | 2009-02-20 22:47:05 +0000 |
commit | 0610a507279b3153e2bdd88e74d8e466b74b9a9c (patch) | |
tree | 24838a59b95d0078a62687440f22c164ec3dd167 /org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui | |
parent | 0a39896994ac588fae47d00dc7e643a755bbe778 (diff) | |
download | org.eclipse.mylyn.tasks-0610a507279b3153e2bdd88e74d8e466b74b9a9c.tar.gz org.eclipse.mylyn.tasks-0610a507279b3153e2bdd88e74d8e466b74b9a9c.tar.xz org.eclipse.mylyn.tasks-0610a507279b3153e2bdd88e74d8e466b74b9a9c.zip |
NEW - bug 219241: convert the New Task toolbar item to be a drop-down menu
https://bugs.eclipse.org/bugs/show_bug.cgi?id=219241
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui')
4 files changed, 57 insertions, 16 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java index 0a329f76b..9cb9cc250 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java @@ -145,6 +145,8 @@ public class Messages extends NLS { public static String NewCategoryAction_A_query_with_this_name_already_exists; + public static String NewQueryAction_new_query_; + public static String NewSubTaskAction_The_connector_does_not_support_creating_subtasks_for_this_task; public static String NewSubTaskAction_Could_not_initialize_sub_task_data_for_task_; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java index 1ca280b7c..a66ecee3d 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java @@ -33,6 +33,7 @@ import org.eclipse.mylyn.internal.tasks.ui.wizards.NewQueryWizard; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi; import org.eclipse.mylyn.tasks.ui.TasksUi; +import org.eclipse.mylyn.tasks.ui.TasksUiImages; import org.eclipse.mylyn.tasks.ui.TasksUiUtil; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IViewActionDelegate; @@ -45,9 +46,25 @@ import org.eclipse.ui.PlatformUI; */ public class NewQueryAction extends Action implements IViewActionDelegate, IExecutableExtension { + private final String ID = "org.eclipse.mylyn.tasks.ui.new.query"; //$NON-NLS-1$ + + private final String LABEL_NEW_QUERY = Messages.NewQueryAction_new_query_; + private boolean skipRepositoryPage; + public NewQueryAction() { + setText(LABEL_NEW_QUERY); + setToolTipText(LABEL_NEW_QUERY); + setId(ID); + setImageDescriptor(TasksUiImages.QUERY_NEW); + } + public void run(IAction action) { + run(); + } + + @Override + public void run() { IWizard wizard = null; List<TaskRepository> repositories = TasksUi.getRepositoryManager().getAllRepositories(); if (repositories.size() == 2) { @@ -91,12 +108,6 @@ public class NewQueryAction extends Action implements IViewActionDelegate, IExec } } - public void init(IViewPart view) { - } - - public void selectionChanged(IAction action, ISelection selection) { - } - public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { if ("skipFirstPage".equals(data)) { //$NON-NLS-1$ @@ -104,4 +115,10 @@ public class NewQueryAction extends Action implements IViewActionDelegate, IExec } } + public void init(IViewPart view) { + } + + public void selectionChanged(IAction action, ISelection selection) { + } + } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskAction.java index 631bbd0be..2e0bfdb77 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskAction.java @@ -8,6 +8,9 @@ package org.eclipse.mylyn.internal.tasks.ui.actions; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.HashSet; import java.util.Set; @@ -27,6 +30,7 @@ import org.eclipse.mylyn.internal.commons.ui.CompositeElementImageDescriptor; import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; +import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesSorter; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.ui.TasksUi; import org.eclipse.mylyn.tasks.ui.TasksUiImages; @@ -36,6 +40,7 @@ import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IViewActionDelegate; import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkingSet; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.actions.BaseSelectionListenerAction; @@ -136,13 +141,8 @@ public class NewTaskAction extends BaseSelectionListenerAction implements IMenuC TaskRepository localRepository = TasksUi.getRepositoryManager().getRepository( LocalRepositoryConnector.CONNECTOR_KIND, LocalRepositoryConnector.REPOSITORY_URL); - if (localRepository != null) { - RepositorySelectionAction action = addRepositoryAction(localRepository); - if (action != null) { - action.setChecked(true); - new Separator(LocalRepositoryConnector.CONNECTOR_KIND).fill(dropDownMenu, -1); - } - } + addRepositoryAction(localRepository); + IWorkingSet workingSet = PlatformUI.getWorkbench() .getActiveWorkbenchWindow() .getActivePage() @@ -155,8 +155,8 @@ public class NewTaskAction extends BaseSelectionListenerAction implements IMenuC String connectorKind = ((RepositoryQuery) iterable_element).getConnectorKind(); TaskRepository repository = TasksUi.getRepositoryManager().getRepository(connectorKind, repositoryUrl); - if (repository != null && !repository.isOffline() && !includedRepositories.contains(repository)) { - addRepositoryAction(repository); + if (repository != null && !repository.isOffline() + && !repository.getConnectorKind().equals(LocalRepositoryConnector.CONNECTOR_KIND)) { includedRepositories.add(repository); } @@ -167,10 +167,31 @@ public class NewTaskAction extends BaseSelectionListenerAction implements IMenuC for (TaskRepository repository : TasksUi.getRepositoryManager().getAllRepositories()) { if (repository != null && !repository.isOffline() && !repository.getConnectorKind().equals(LocalRepositoryConnector.CONNECTOR_KIND)) { - addRepositoryAction(repository); + includedRepositories.add(repository); + } + } + } + + if (!includedRepositories.isEmpty()) { + new Separator().fill(dropDownMenu, -1); + ArrayList<TaskRepository> listOfRepositories = new ArrayList<TaskRepository>(includedRepositories); + final TaskRepositoriesSorter comparator = new TaskRepositoriesSorter(); + Collections.sort(listOfRepositories, new Comparator<TaskRepository>() { + + public int compare(TaskRepository arg0, TaskRepository arg1) { + return comparator.compare(null, arg0, arg1); } + }); + for (TaskRepository taskRepository : listOfRepositories) { + addRepositoryAction(taskRepository); } } + new Separator().fill(dropDownMenu, -1); + new ActionContributionItem(new NewCategoryAction()).fill(dropDownMenu, -1); + new ActionContributionItem(new NewQueryAction()).fill(dropDownMenu, -1); + new Separator().fill(dropDownMenu, -1); + new ActionContributionItem(new AddRepositoryAction()).fill(dropDownMenu, -1); + new Separator(IWorkbenchActionConstants.MB_ADDITIONS); } private RepositorySelectionAction addRepositoryAction(TaskRepository repository) { diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties index e63061dd6..0d3c7e055 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties @@ -77,6 +77,7 @@ NewCategoryAction_Enter_a_name_for_the_Category=Enter a name for the Category\:\ NewCategoryAction_New_Category=New Category NewCategoryAction_New_Category_=New Category... NewCategoryAction_A_query_with_this_name_already_exists=A query with this name already exists, please choose another name. +NewQueryAction_new_query_=New Query... NewSubTaskAction_The_connector_does_not_support_creating_subtasks_for_this_task=The connector does not support creating subtasks for this task NewSubTaskAction_Could_not_initialize_sub_task_data_for_task_=Could not initialize sub task data for task\:\ |