Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java28
1 files changed, 27 insertions, 1 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
index 9d526f6c7..4a27c28e8 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java
@@ -24,7 +24,10 @@ import java.util.Set;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.GroupMarker;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IStatusLineManager;
@@ -995,6 +998,14 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener, I
if (presentationDropDownSelectionAction != null && currentPresentation != null) {
presentationDropDownSelectionAction.setImageDescriptor(currentPresentation.getImageDescriptor());
}
+ for (IContributionItem item : getViewSite().getActionBars().getToolBarManager().getItems()) {
+ if (item instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem) item).getAction();
+ if (action instanceof PresentationDropDownSelectionAction.PresentationSelectionAction) {
+ ((PresentationDropDownSelectionAction.PresentationSelectionAction) action).update();
+ }
+ }
+ }
}
public AbstractTaskListPresentation getCurrentPresentation() {
@@ -1152,7 +1163,7 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener, I
private void fillLocalToolBar(IToolBarManager manager) {
manager.add(newTaskAction);
- manager.add(presentationDropDownSelectionAction);
+ addPresentations(manager);
manager.add(new Separator());
manager.add(filterCompleteTask);
manager.add(collapseAll);
@@ -1160,6 +1171,21 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener, I
manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
}
+ private void addPresentations(IToolBarManager manager) {
+ for (AbstractTaskListPresentation presentation : TaskListView.getPresentations()) {
+ if (!presentation.isPrimary()) {
+ // at least one non primary presentation present
+ manager.add(presentationDropDownSelectionAction);
+ return;
+ }
+ }
+
+ // add toggle buttons for primary presentations
+ for (AbstractTaskListPresentation presentation : TaskListView.getPresentations()) {
+ manager.add(new PresentationDropDownSelectionAction.PresentationSelectionAction(this, presentation));
+ }
+ }
+
public List<IRepositoryElement> getSelectedTaskContainers() {
List<IRepositoryElement> selectedElements = new ArrayList<IRepositoryElement>();
for (Iterator<?> i = ((IStructuredSelection) getViewer().getSelection()).iterator(); i.hasNext();) {

Back to the top