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 88642 Details for
Bug 217344
open task dialog should filter according to the currently active task working set
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]
Initial patch for testing purposes
clipboard.txt (text/plain), 7.35 KB, created by
Willian Mitsuda
on 2008-02-01 19:30:51 EST
(
hide
)
Description:
Initial patch for testing purposes
Filename:
MIME Type:
Creator:
Willian Mitsuda
Created:
2008-02-01 19:30:51 EST
Size:
7.35 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java,v >retrieving revision 1.26 >diff -u -r1.26 TaskSelectionDialog.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java 28 Nov 2007 23:39:50 -0000 1.26 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java 2 Feb 2008 00:18:13 -0000 >@@ -13,6 +13,7 @@ > import java.util.Set; > > import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.core.runtime.IStatus; > import org.eclipse.core.runtime.Status; >@@ -33,6 +34,7 @@ > import org.eclipse.mylyn.internal.tasks.ui.views.TaskListFilteredTree; > import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView; > import org.eclipse.mylyn.tasks.core.AbstractTask; >+import org.eclipse.mylyn.tasks.core.AbstractTaskContainer; > import org.eclipse.mylyn.tasks.core.TaskList; > import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; > import org.eclipse.search.internal.ui.SearchDialog; >@@ -43,6 +45,7 @@ > import org.eclipse.swt.widgets.Shell; > import org.eclipse.ui.IMemento; > import org.eclipse.ui.IWorkbenchWindow; >+import org.eclipse.ui.IWorkingSet; > import org.eclipse.ui.PlatformUI; > import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog; > import org.eclipse.ui.dialogs.SearchPattern; >@@ -65,6 +68,8 @@ > > private static final String SHOW_COMPLETED_TASKS_SETTING = "ShowCompletedTasks"; > >+ private static final String FILTER_BY_WORKING_SETS_SETTING = "FilterByWorkingSets"; >+ > private boolean openInBrowser; > > public boolean getOpenInBrowser() { >@@ -85,6 +90,8 @@ > return insertInHistory; > } > >+ private Set<IWorkingSet> activeWorkingSets; >+ > /** > * Integrates {@link FilteredItemsSelectionDialog} history management with Mylyn's task list activation history > * <p> >@@ -153,9 +160,9 @@ > setSelectionHistory(new TaskSelectionHistory()); > > labelProvider = new TaskElementLabelProvider(false); >- >+ > setListLabelProvider(labelProvider); >- >+ > // setListLabelProvider(new DecoratingLabelProvider(labelProvider, PlatformUI.getWorkbench() > // .getDecoratorManager() > // .getLabelDecorator())); >@@ -174,6 +181,8 @@ > } > setInitialPattern(text); > } >+ >+ activeWorkingSets = TaskListView.getActiveWorkingSets(); > } > > private boolean showExtendedOpeningOptions; >@@ -188,14 +197,19 @@ > > private ShowCompletedTasksAction showCompletedTasksAction = new ShowCompletedTasksAction(); > >+ private FilterByWorkingSetsAction filterByWorkingSetsAction = new FilterByWorkingSetsAction(); >+ > @Override > protected void fillViewMenu(IMenuManager menuManager) { > super.fillViewMenu(menuManager); > menuManager.add(showCompletedTasksAction); >+ menuManager.add(filterByWorkingSetsAction); > } > > private boolean showCompletedTasks; > >+ private boolean filterByWorkingSets; >+ > private class ShowCompletedTasksAction extends Action { > > public ShowCompletedTasksAction() { >@@ -210,6 +224,19 @@ > > } > >+ private class FilterByWorkingSetsAction extends Action { >+ >+ public FilterByWorkingSetsAction() { >+ super("&Filter by Active Working Set", IAction.AS_CHECK_BOX); >+ } >+ >+ @Override >+ public void run() { >+ filterByWorkingSets = isChecked(); >+ applyFilter(); >+ } >+ } >+ > @Override > protected Control createExtendedContentArea(Composite parent) { > if (!showExtendedOpeningOptions) { >@@ -252,11 +279,16 @@ > > private boolean showCompletedTasks; > >- public TasksFilter(boolean showCompletedTasks) { >+ private boolean filterByWorkingSets; >+ >+ private Set<AbstractTask> allTasksFromWorkingSets; >+ >+ public TasksFilter(boolean showCompletedTasks, boolean filterByWorkingSets) { > super(new SearchPattern()); > // Little hack to force always a match inside any part of task text > patternMatcher.setPattern("*" + patternMatcher.getPattern()); > this.showCompletedTasks = showCompletedTasks; >+ this.filterByWorkingSets = filterByWorkingSets; > } > > @Override >@@ -265,7 +297,18 @@ > return false; > } > if (filter instanceof TasksFilter) { >- return showCompletedTasks == ((TasksFilter) filter).showCompletedTasks; >+ if (showCompletedTasks && !filterByWorkingSets) { >+ return true; >+ } >+ if (!showCompletedTasks && !filterByWorkingSets) { >+ return !((TasksFilter) filter).showCompletedTasks; >+ } >+ if (showCompletedTasks && filterByWorkingSets) { >+ return ((TasksFilter) filter).filterByWorkingSets; >+ } >+ if (!showCompletedTasks && filterByWorkingSets) { >+ return !((TasksFilter) filter).showCompletedTasks && ((TasksFilter) filter).filterByWorkingSets; >+ } > } > return true; > } >@@ -276,7 +319,8 @@ > return false; > } > if (filter instanceof TasksFilter) { >- return showCompletedTasks == ((TasksFilter) filter).showCompletedTasks; >+ return showCompletedTasks == ((TasksFilter) filter).showCompletedTasks >+ && filterByWorkingSets == ((TasksFilter) filter).filterByWorkingSets; > } > return true; > } >@@ -294,13 +338,34 @@ > if (!showCompletedTasks && ((AbstractTask) item).isCompleted()) { > return false; > } >+ if (filterByWorkingSets && !activeWorkingSets.isEmpty()) { >+ if (allTasksFromWorkingSets == null) { >+ populateTasksFromWorkingSets(); >+ } >+ if (!allTasksFromWorkingSets.contains(item)) { >+ return false; >+ } >+ } > return matches(labelProvider.getText(item)); > } >+ >+ private void populateTasksFromWorkingSets() { >+ allTasksFromWorkingSets = new HashSet<AbstractTask>(1000); >+ for (IWorkingSet workingSet : activeWorkingSets) { >+ for (IAdaptable adaptable : workingSet.getElements()) { >+ AbstractTaskContainer atc = (AbstractTaskContainer) adaptable.getAdapter(AbstractTaskContainer.class); >+ if (atc == null) { >+ continue; >+ } >+ allTasksFromWorkingSets.addAll(atc.getChildren()); >+ } >+ } >+ } > } > > @Override > protected ItemsFilter createFilter() { >- return new TasksFilter(showCompletedTasks); >+ return new TasksFilter(showCompletedTasks, filterByWorkingSets); > } > > /** >@@ -339,6 +404,7 @@ > section = settings.addNewSection(TASK_SELECTION_DIALOG_SECTION); > section.put(OPEN_IN_BROWSER_SETTING, false); > section.put(SHOW_COMPLETED_TASKS_SETTING, true); >+ section.put(FILTER_BY_WORKING_SETS_SETTING, true); > } > return section; > } >@@ -348,6 +414,8 @@ > openInBrowser = settings.getBoolean(OPEN_IN_BROWSER_SETTING); > showCompletedTasks = settings.getBoolean(SHOW_COMPLETED_TASKS_SETTING); > showCompletedTasksAction.setChecked(showCompletedTasks); >+ filterByWorkingSets = settings.getBoolean(FILTER_BY_WORKING_SETS_SETTING); >+ filterByWorkingSetsAction.setChecked(filterByWorkingSets); > super.restoreDialog(settings); > } > >@@ -355,6 +423,7 @@ > protected void storeDialog(IDialogSettings settings) { > settings.put(OPEN_IN_BROWSER_SETTING, openInBrowser); > settings.put(SHOW_COMPLETED_TASKS_SETTING, showCompletedTasks); >+ settings.put(FILTER_BY_WORKING_SETS_SETTING, filterByWorkingSets); > super.storeDialog(settings); > }
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 217344
: 88642 |
88643
|
89058
|
89059