Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 190337 Details for
Bug 338499
support hiding of queries
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
third pass
clipboard.txt (text/plain), 27.22 KB, created by
Steffen Pingel
on 2011-03-03 20:51:52 EST
(
hide
)
Description:
third pass
Filename:
MIME Type:
Creator:
Steffen Pingel
Created:
2011-03-03 20:51:52 EST
Size:
27.22 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.tasks.core >Index: src/org/eclipse/mylyn/internal/tasks/core/AbstractTask.java >=================================================================== >RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/AbstractTask.java,v >retrieving revision 1.40 >diff -u -r1.40 AbstractTask.java >--- src/org/eclipse/mylyn/internal/tasks/core/AbstractTask.java 22 Jul 2010 23:33:40 -0000 1.40 >+++ src/org/eclipse/mylyn/internal/tasks/core/AbstractTask.java 4 Mar 2011 01:51:32 -0000 >@@ -13,9 +13,9 @@ > > import java.util.Collections; > import java.util.Date; >-import java.util.HashSet; > import java.util.Map; > import java.util.Set; >+import java.util.concurrent.CopyOnWriteArraySet; > > import org.eclipse.core.runtime.Assert; > import org.eclipse.core.runtime.IStatus; >@@ -52,7 +52,7 @@ > > private boolean reminded = false; > >- private final Set<AbstractTaskContainer> containers = new HashSet<AbstractTaskContainer>(); >+ private final Set<AbstractTaskContainer> containers = new CopyOnWriteArraySet<AbstractTaskContainer>(); > > // ************ Synch **************** > >@@ -317,7 +317,8 @@ > } > > public Set<AbstractTaskContainer> getParentContainers() { >- return new HashSet<AbstractTaskContainer>(containers); >+ //return new HashSet<AbstractTaskContainer>(containers); >+ return containers; > } > > @Override >Index: src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java >=================================================================== >RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java,v >retrieving revision 1.24 >diff -u -r1.24 ITasksCoreConstants.java >--- src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java 1 Mar 2011 09:08:47 -0000 1.24 >+++ src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java 4 Mar 2011 01:51:32 -0000 >@@ -59,6 +59,8 @@ > > public static final String ATTRIBUTE_OUTGOING_NEW_CONNECTOR_KIND = "outgoingNewConnectorKind"; //$NON-NLS-1$ > >+ public static final String ATTRIBUTE_HIDDEN = "task.common.hidden"; //$NON-NLS-1$ >+ > public static final String ATTRIBUTE_TASK_EXTENDED_TOOLTIP = "task.common.extended.tooltip"; //$NON-NLS-1$ > > public static final String ATTRIBUTE_TASK_SUPPRESS_INCOMING = "task.common.suppress.incoming"; //$NON-NLS-1$ >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/internal/tasks/ui/AbstractTaskListFilter.java >=================================================================== >RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AbstractTaskListFilter.java,v >retrieving revision 1.24 >diff -u -r1.24 AbstractTaskListFilter.java >--- src/org/eclipse/mylyn/internal/tasks/ui/AbstractTaskListFilter.java 2 Mar 2011 23:13:15 -0000 1.24 >+++ src/org/eclipse/mylyn/internal/tasks/ui/AbstractTaskListFilter.java 4 Mar 2011 01:51:32 -0000 >@@ -15,6 +15,7 @@ > > import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants; > import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal; >+import org.eclipse.mylyn.internal.tasks.ui.views.PresentationFilter; > import org.eclipse.mylyn.tasks.core.ITask; > import org.eclipse.mylyn.tasks.core.ITaskContainer; > >@@ -52,8 +53,12 @@ > return false; > } > >+ if (!PresentationFilter.getInstance().select(null, container)) { >+ return false; >+ } >+ > for (ITask task : children) { >- if (task != null) { >+ if (task != null && PresentationFilter.getInstance().select(container, task)) { > ITask containedRepositoryTask = task; > if (TasksUiInternal.shouldShowIncoming(containedRepositoryTask)) { > return true; >Index: src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java >=================================================================== >RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java,v >retrieving revision 1.19 >diff -u -r1.19 ITasksUiPreferenceConstants.java >--- src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java 13 Jul 2010 20:32:16 -0000 1.19 >+++ src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java 4 Mar 2011 01:51:32 -0000 >@@ -44,6 +44,10 @@ > > public static final String FILTER_COMPLETE_MODE = "org.eclipse.mylyn.tasks.ui.filters.complete"; //$NON-NLS-1$ > >+ public static final String FILTER_HIDDEN = "org.eclipse.mylyn.tasks.ui.filters.hidden"; //$NON-NLS-1$ >+ >+ public static final String FILTER_NON_MATCHING = "org.eclipse.mylyn.tasks.ui.filters.nonmatching"; //$NON-NLS-1$ >+ > public static final String FILTER_PRIORITY = "org.eclipse.mylyn.tasks.ui.filters.priority"; //$NON-NLS-1$ > > public static final String GROUP_SUBTASKS = "org.eclipse.mylyn.tasks.ui.group.subtasks"; //$NON-NLS-1$ >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/GroupSubTasksAction.java >=================================================================== >RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/GroupSubTasksAction.java,v >retrieving revision 1.9 >diff -u -r1.9 GroupSubTasksAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/GroupSubTasksAction.java 3 Mar 2011 00:27:54 -0000 1.9 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/GroupSubTasksAction.java 4 Mar 2011 01:51:32 -0000 >@@ -14,7 +14,6 @@ > import org.eclipse.jface.action.Action; > import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants; > import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; >-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView; > > /** > * @author Rob Elves >@@ -24,14 +23,10 @@ > > public static final String ID = "org.eclipse.mylyn.tasklist.actions.filter.subtasks"; //$NON-NLS-1$ > >- private final TaskListView view; >- >- public GroupSubTasksAction(TaskListView view) { >- this.view = view; >+ public GroupSubTasksAction() { > setText(Messages.GroupSubTasksAction_Group_Subtasks); > setToolTipText(Messages.GroupSubTasksAction_Group_Subtasks); > setId(ID); >- // setImageDescriptor(TasksUiImages.FILTER_COMPLETE); > setChecked(TasksUiPlugin.getDefault() > .getPreferenceStore() > .getBoolean(ITasksUiPreferenceConstants.GROUP_SUBTASKS)); >@@ -42,18 +37,6 @@ > TasksUiPlugin.getDefault() > .getPreferenceStore() > .setValue(ITasksUiPreferenceConstants.GROUP_SUBTASKS, isChecked()); >- // TODO: refresh not getting rid of subtasks >- >- view.refresh(true); >-// try { >-// view.getViewer().getControl().setRedraw(false); >-// view.getViewer().collapseAll(); >-// if (view.isFocusedMode()) { >-// view.getViewer().expandAll(); >-// } >-// view.getViewer().refresh(); >-// } finally { >-// view.getViewer().getControl().setRedraw(true); >-// } > } >+ > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/HideQueryAction.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/tasks/ui/actions/HideQueryAction.java >diff -N src/org/eclipse/mylyn/internal/tasks/ui/actions/HideQueryAction.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/HideQueryAction.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,72 @@ >+/******************************************************************************* >+ * Copyright (c) 2004, 2009 Tasktop Technologies and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.tasks.ui.actions; >+ >+import java.util.Collections; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Status; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.mylyn.commons.core.StatusHandler; >+import org.eclipse.mylyn.internal.tasks.core.ITaskListRunnable; >+import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants; >+import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; >+import org.eclipse.mylyn.tasks.core.IRepositoryElement; >+import org.eclipse.mylyn.tasks.core.IRepositoryQuery; >+import org.eclipse.ui.actions.BaseSelectionListenerAction; >+ >+/** >+ * @author Steffen Pingel >+ */ >+public class HideQueryAction extends BaseSelectionListenerAction { >+ >+ public HideQueryAction() { >+ super("Hidden"); >+ setChecked(false); >+ setEnabled(false); >+ } >+ >+ @Override >+ protected boolean updateSelection(IStructuredSelection selection) { >+ if (selection.size() == 1) { >+ Object element = selection.getFirstElement(); >+ if (element instanceof IRepositoryQuery) { >+ setChecked(Boolean.parseBoolean((((IRepositoryQuery) element).getAttribute(ITasksCoreConstants.ATTRIBUTE_HIDDEN)))); >+ return true; >+ } >+ } >+ setChecked(false); >+ return false; >+ } >+ >+ @Override >+ public void run() { >+ final Object element = getStructuredSelection().getFirstElement(); >+ if (element instanceof IRepositoryQuery) { >+ try { >+ final IRepositoryQuery query = ((IRepositoryQuery) element); >+ TasksUiPlugin.getTaskList().run(new ITaskListRunnable() { >+ public void execute(IProgressMonitor monitor) throws CoreException { >+ query.setAttribute(ITasksCoreConstants.ATTRIBUTE_HIDDEN, Boolean.toString(isChecked())); >+ } >+ }); >+ TasksUiPlugin.getTaskList().notifyElementsChanged(Collections.singleton((IRepositoryElement) query)); >+ } catch (CoreException e) { >+ StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, >+ "Failed to set hidden status for query", e)); //$NON-NLS-1$ >+ } >+ } >+ } >+ >+} >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/RepositoryElementActionGroup.java >=================================================================== >RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RepositoryElementActionGroup.java,v >retrieving revision 1.15 >diff -u -r1.15 RepositoryElementActionGroup.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/RepositoryElementActionGroup.java 25 Aug 2010 17:28:39 -0000 1.15 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/RepositoryElementActionGroup.java 4 Mar 2011 01:51:33 -0000 >@@ -100,6 +100,8 @@ > > private final AutoUpdateQueryAction autoUpdateAction; > >+ protected final HideQueryAction hideQueryAction; >+ > private final NewSubTaskAction newSubTaskAction; > > private final CloneTaskAction cloneTaskAction; >@@ -131,6 +133,7 @@ > showInTaskListAction = add(new ShowInTaskListAction()); > > autoUpdateAction = add(new AutoUpdateQueryAction()); >+ hideQueryAction = add(new HideQueryAction()); > } > > private <T extends ISelectionChangedListener> T add(T action) { >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowAllQueriesAction.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowAllQueriesAction.java >diff -N src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowAllQueriesAction.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowAllQueriesAction.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,36 @@ >+/******************************************************************************* >+ * Copyright (c) 2011 Tasktop Technologies and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.tasks.ui.actions; >+ >+import org.eclipse.jface.action.Action; >+import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants; >+import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; >+ >+/** >+ * @author Steffen Pingel >+ */ >+public class ShowAllQueriesAction extends Action { >+ >+ public ShowAllQueriesAction() { >+ setText("Show All Queries"); >+ setToolTipText("Show All Queries Including Hidden Queries"); >+ setChecked(!TasksUiPlugin.getDefault().getPreferenceStore().contains(ITasksUiPreferenceConstants.FILTER_HIDDEN)); >+ } >+ >+ @Override >+ public void run() { >+ TasksUiPlugin.getDefault() >+ .getPreferenceStore() >+ .setValue(ITasksUiPreferenceConstants.FILTER_HIDDEN, !isChecked()); >+ } >+ >+} >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowNonMatchingSubtasksAction.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowNonMatchingSubtasksAction.java >diff -N src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowNonMatchingSubtasksAction.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/ShowNonMatchingSubtasksAction.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,38 @@ >+/******************************************************************************* >+ * Copyright (c) 2011 Tasktop Technologies and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.tasks.ui.actions; >+ >+import org.eclipse.jface.action.Action; >+import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants; >+import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; >+ >+/** >+ * @author Steffen Pingel >+ */ >+public class ShowNonMatchingSubtasksAction extends Action { >+ >+ public ShowNonMatchingSubtasksAction() { >+ setText("Show Non Matching Subtasks"); >+ setToolTipText("Show Non Matching Subtasks"); >+ setChecked(!TasksUiPlugin.getDefault() >+ .getPreferenceStore() >+ .contains(ITasksUiPreferenceConstants.FILTER_NON_MATCHING)); >+ } >+ >+ @Override >+ public void run() { >+ TasksUiPlugin.getDefault() >+ .getPreferenceStore() >+ .setValue(ITasksUiPreferenceConstants.FILTER_NON_MATCHING, !isChecked()); >+ } >+ >+} >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskListViewActionGroup.java >=================================================================== >RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskListViewActionGroup.java,v >retrieving revision 1.5 >diff -u -r1.5 TaskListViewActionGroup.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskListViewActionGroup.java 8 Jun 2010 23:10:08 -0000 1.5 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskListViewActionGroup.java 4 Mar 2011 01:51:33 -0000 >@@ -13,6 +13,7 @@ > > import org.eclipse.jface.action.IMenuManager; > import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.mylyn.internal.tasks.ui.views.PresentationFilter; > import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView; > import org.eclipse.mylyn.tasks.core.ITask; > import org.eclipse.mylyn.tasks.core.ITaskContainer; >@@ -62,6 +63,10 @@ > public void fillContextMenu(final IMenuManager manager) { > super.fillContextMenu(manager); > >+ if (hideQueryAction.isEnabled() && !PresentationFilter.getInstance().isFilterHiddenQueries()) { >+ manager.appendToGroup(ID_SEPARATOR_NAVIGATE, hideQueryAction); >+ } >+ > updateDrillDownActions(); > > Object element = ((IStructuredSelection) view.getViewer().getSelection()).getFirstElement(); >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/PresentationFilter.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/tasks/ui/views/PresentationFilter.java >diff -N src/org/eclipse/mylyn/internal/tasks/ui/views/PresentationFilter.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/PresentationFilter.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,95 @@ >+/******************************************************************************* >+ * Copyright (c) 2011 Tasktop Technologies and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.tasks.ui.views; >+ >+import org.eclipse.mylyn.internal.tasks.core.AbstractTask; >+import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory; >+import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer; >+import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants; >+import org.eclipse.mylyn.internal.tasks.ui.AbstractTaskListFilter; >+import org.eclipse.mylyn.tasks.core.IAttributeContainer; >+import org.eclipse.mylyn.tasks.core.IRepositoryQuery; >+import org.eclipse.mylyn.tasks.core.ITask; >+ >+/** >+ * @author Steffen Pingel >+ */ >+public class PresentationFilter extends AbstractTaskListFilter { >+ >+ private static PresentationFilter instance = new PresentationFilter(); >+ >+ private boolean filterHiddenQueries; >+ >+ private boolean filterSubtasks; >+ >+ private PresentationFilter() { >+ setFilterHiddenQueries(true); >+ setFilterSubtasks(true); >+ } >+ >+ public static PresentationFilter getInstance() { >+ return instance; >+ } >+ >+ public boolean isFilterSubtasks() { >+ return filterSubtasks; >+ } >+ >+ public boolean isFilterHiddenQueries() { >+ return filterHiddenQueries; >+ } >+ >+ public void setFilterHiddenQueries(boolean enabled) { >+ this.filterHiddenQueries = enabled; >+ } >+ >+ public void setFilterSubtasks(boolean filterSubtasks) { >+ this.filterSubtasks = filterSubtasks; >+ } >+ >+ @Override >+ public boolean select(Object parent, Object element) { >+ // filter hidden queries >+ if (element instanceof IRepositoryQuery) { >+ if (!filterHiddenQueries) { >+ return true; >+ } >+ return isQueryVisible(element); >+ } >+ // filter sub-tasks not connected to queries or categories >+ if (element instanceof AbstractTask) { >+ if (!filterSubtasks) { >+ return true; >+ } >+ if (((ITask) element).getTaskId().equals("20196")) { >+ System.err.println(); >+ } >+ for (AbstractTaskContainer container : ((AbstractTask) element).getParentContainers()) { >+ // categories are always visible >+ if (container instanceof AbstractTaskCategory) { >+ return true; >+ } >+ // show task if is contained in a query >+ if (container instanceof IRepositoryQuery && isQueryVisible(container)) { >+ return true; >+ } >+ } >+ return false; >+ } >+ return true; >+ } >+ >+ private boolean isQueryVisible(Object element) { >+ return !Boolean.parseBoolean(((IAttributeContainer) element).getAttribute(ITasksCoreConstants.ATTRIBUTE_HIDDEN)); >+ } >+ >+} >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestFilter.java >=================================================================== >RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestFilter.java,v >retrieving revision 1.14 >diff -u -r1.14 TaskListInterestFilter.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestFilter.java 2 Mar 2011 23:13:15 -0000 1.14 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListInterestFilter.java 4 Mar 2011 01:51:34 -0000 >@@ -47,18 +47,10 @@ > return isDateRangeInteresting(dateRangeTaskContainer); > } > if (child instanceof ITask) { >- AbstractTask task = null; >- if (child instanceof ITask) { >- task = (AbstractTask) child; >- } >- if (task != null) { >- if (isInteresting(parent, task)) { >- return true; >- } else { >- return false; >- } >- } >- } else if (child instanceof ITaskContainer) { >+ AbstractTask task = (AbstractTask) child; >+ return isInteresting(parent, task); >+ } >+ if (child instanceof ITaskContainer) { > Collection<ITask> children = ((ITaskContainer) child).getChildren(); > // Always display empty containers > if (children.size() == 0) { >@@ -70,7 +62,6 @@ > return true; > } > } >- > } > } catch (Throwable t) { > StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Interest filter failed", t)); //$NON-NLS-1$ >@@ -84,7 +75,7 @@ > } > if (scheduleContainer instanceof TaskScheduleContentProvider.Incoming > || scheduleContainer instanceof TaskScheduleContentProvider.Outgoing) { >- return (scheduleContainer.getChildren().size() > 0); >+ return hasChildren(scheduleContainer, scheduleContainer.getChildren()); > } > if (TaskActivityUtil.getCurrentWeek().isCurrentWeekDay(scheduleContainer.getDateRange())) { > if (scheduleContainer.isPresent() || scheduleContainer.isFuture()) { >@@ -96,13 +87,24 @@ > return false; > } > >+ private boolean hasChildren(Object parent, Collection<ITask> children) { >+ for (ITask task : children) { >+ if (PresentationFilter.getInstance().select(parent, task)) { >+ return true; >+ } >+ } >+ return false; >+ } >+ > // TODO: make meta-context more explicit > protected boolean isInteresting(Object parent, AbstractTask task) { > return shouldAlwaysShow(parent, task, ITasksCoreConstants.MAX_SUBTASK_DEPTH); > } > > public boolean shouldAlwaysShow(Object parent, AbstractTask task, int depth) { >- >+ if (!PresentationFilter.getInstance().select(parent, task)) { >+ return false; >+ } > return task.isActive() || TasksUiPlugin.getTaskActivityManager().isCompletedToday(task) > || hasChanges(parent, task) > || hasInterestingSubTasks(parent, task, depth) >@@ -182,7 +184,7 @@ > } > if (task instanceof ITaskContainer) { > for (ITask child : ((ITaskContainer) task).getChildren()) { >- if (hasChangesHelper(parent, child)) { >+ if (PresentationFilter.getInstance().select(task, child) && hasChangesHelper(parent, child)) { > return true; > } > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java >=================================================================== >RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java,v >retrieving revision 1.354 >diff -u -r1.354 TaskListView.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java 1 Mar 2011 05:44:01 -0000 1.354 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java 4 Mar 2011 01:51:34 -0000 >@@ -90,6 +90,8 @@ > import org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskAction; > import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTasksUiPreferencesAction; > import org.eclipse.mylyn.internal.tasks.ui.actions.PresentationDropDownSelectionAction; >+import org.eclipse.mylyn.internal.tasks.ui.actions.ShowAllQueriesAction; >+import org.eclipse.mylyn.internal.tasks.ui.actions.ShowNonMatchingSubtasksAction; > import org.eclipse.mylyn.internal.tasks.ui.actions.SynchronizeAutomaticallyAction; > import org.eclipse.mylyn.internal.tasks.ui.actions.TaskListSortAction; > import org.eclipse.mylyn.internal.tasks.ui.actions.TaskListViewActionGroup; >@@ -357,7 +359,7 @@ > > private FilterCompletedTasksAction filterCompleteTask; > >- private GroupSubTasksAction filterSubTasksAction; >+ private GroupSubTasksAction groupSubTasksAction; > > private SynchronizeAutomaticallyAction synchronizeAutomatically; > >@@ -380,6 +382,8 @@ > > private final TaskArchiveFilter filterArchive = new TaskArchiveFilter(); > >+ private final PresentationFilter filterPresentation = PresentationFilter.getInstance(); >+ > private TaskWorkingSetFilter filterWorkingSet; > > private final Set<AbstractTaskListFilter> filters = new HashSet<AbstractTaskListFilter>(); >@@ -536,6 +540,12 @@ > || event.getProperty().equals(ITasksUiPreferenceConstants.OVERLAYS_INCOMING_TIGHT)) { > refreshJob.refresh(); > } >+ if (event.getProperty().equals(ITasksUiPreferenceConstants.FILTER_HIDDEN) >+ || event.getProperty().equals(ITasksUiPreferenceConstants.FILTER_NON_MATCHING) >+ || event.getProperty().equals(ITasksUiPreferenceConstants.GROUP_SUBTASKS)) { >+ updatePresentationFilter(); >+ refresh(true); >+ } > } > }; > >@@ -670,10 +680,9 @@ > if (TasksUiPlugin.getDefault().getPreferenceStore().contains(ITasksUiPreferenceConstants.FILTER_COMPLETE_MODE)) { > addFilter(filterComplete); > } >- >- //if (TasksUiPlugin.getDefault().getPreferenceStore().contains(TasksUiPreferenceConstants.FILTER_ARCHIVE_MODE)) { >+ updatePresentationFilter(); >+ addFilter(filterPresentation); > addFilter(filterArchive); >- //} > > // Restore "link with editor" value; by default true > boolean linkValue = true; >@@ -689,6 +698,15 @@ > getViewer().refresh(); > } > >+ public void updatePresentationFilter() { >+ filterPresentation.setFilterHiddenQueries(TasksUiPlugin.getDefault() >+ .getPreferenceStore() >+ .contains(ITasksUiPreferenceConstants.FILTER_HIDDEN)); >+ filterPresentation.setFilterSubtasks(TasksUiPlugin.getDefault() >+ .getPreferenceStore() >+ .contains(ITasksUiPreferenceConstants.FILTER_NON_MATCHING)); >+ } >+ > /** > * Public for testing only. > */ >@@ -1198,7 +1216,12 @@ > manager.add(sortDialogAction); > manager.add(filterOnPriorityAction); > manager.add(filterCompleteTask); >- manager.add(filterSubTasksAction); >+ IMenuManager advancedMenu = new MenuManager("Advanced Filters"); >+ advancedMenu.add(new ShowAllQueriesAction()); >+ advancedMenu.add(new ShowNonMatchingSubtasksAction()); >+ advancedMenu.add(new Separator()); >+ advancedMenu.add(groupSubTasksAction); >+ manager.add(advancedMenu); > > manager.add(new Separator(ID_SEPARATOR_SEARCH)); > manager.add(new GroupMarker(ID_SEPARATOR_TASKS)); >@@ -1262,7 +1285,7 @@ > collapseAll = new CollapseAllAction(this); > expandAll = new ExpandAllAction(this); > filterCompleteTask = new FilterCompletedTasksAction(this); >- filterSubTasksAction = new GroupSubTasksAction(this); >+ groupSubTasksAction = new GroupSubTasksAction(); > synchronizeAutomatically = new SynchronizeAutomaticallyAction(); > openPreferencesAction = new OpenTasksUiPreferencesAction(); > //filterArchiveCategory = new FilterArchiveContainerAction(this); >@@ -1346,6 +1369,7 @@ > filters.clear(); > filters.add(filterArchive); > filters.add(filterWorkingSet); >+ filters.add(filterPresentation); > } > > public void removeFilter(AbstractTaskListFilter filter) { >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskScheduleContentProvider.java >=================================================================== >RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskScheduleContentProvider.java,v >retrieving revision 1.56 >diff -u -r1.56 TaskScheduleContentProvider.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/TaskScheduleContentProvider.java 2 Mar 2011 04:49:27 -0000 1.56 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TaskScheduleContentProvider.java 4 Mar 2011 01:51:34 -0000 >@@ -184,7 +184,6 @@ > result.add(child); > } > } >- > } else if (parent instanceof ITaskContainer) { > for (ITask child : ((ITaskContainer) parent).getChildren()) { > result.add(child);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 338499
:
190242
|
190243
|
190244
| 190337 |
190338
|
190339
|
190340
|
190347