Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrelves2009-02-20 22:47:05 +0000
committerrelves2009-02-20 22:47:05 +0000
commit0610a507279b3153e2bdd88e74d8e466b74b9a9c (patch)
tree24838a59b95d0078a62687440f22c164ec3dd167 /org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui
parent0a39896994ac588fae47d00dc7e643a755bbe778 (diff)
downloadorg.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')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java2
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java29
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewTaskAction.java41
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties1
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\:\

Back to the top