Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/views/TaskListView.java')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/views/TaskListView.java39
1 files changed, 30 insertions, 9 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/views/TaskListView.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/views/TaskListView.java
index f73edb93b..a95159bb6 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/views/TaskListView.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/views/TaskListView.java
@@ -93,9 +93,11 @@ import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.internal.Workbench;
import org.eclipse.ui.internal.dialogs.FilteredTree;
import org.eclipse.ui.part.DrillDownAdapter;
@@ -134,6 +136,8 @@ public class TaskListView extends ViewPart {
private static TaskCompleteFilter COMPLETE_FILTER = new TaskCompleteFilter();
private List<ITaskFilter> filters = new ArrayList<ITaskFilter>();
+ private static final String FILTER_LABEL = "<filter>";
+
protected String[] columnNames = new String[] { "", ".", "!", "Description" };
protected int[] columnWidths = new int[] { 70, 20, 20, 120 };
private TreeColumn[] columns;
@@ -369,15 +373,21 @@ public class TaskListView extends ViewPart {
// };
class TaskListContentProvider implements IStructuredContentProvider, ITreeContentProvider {
- public void inputChanged(Viewer v, Object oldInput, Object newInput) {
+
+ public void inputChanged(Viewer v, Object oldInput, Object newInput) {
// don't care if the input changes
+ expandToActiveTasks();
}
public void dispose() {
// don't care if we are disposed
}
public Object[] getElements(Object parent) {
if (parent.equals(getViewSite())) {
- return applyFilter(MylarTasklistPlugin.getTaskListManager().getTaskList().getRoots()).toArray();
+// if (MylarTasklistPlugin.getTaskListManager() != null) {
+ return applyFilter(MylarTasklistPlugin.getTaskListManager().getTaskList().getRoots()).toArray();
+// } else {
+// return new Object[0];
+// }
// return MylarTasklistPlugin.getTaskListManager().getTaskList().getRoots().toArray();
}
return getChildren(parent);
@@ -441,7 +451,7 @@ public class TaskListView extends ViewPart {
private List<Object> getFilteredChildrenFor(Object parent) {
if (((Text) tree.getFilterControl()).getText() == ""
- || ((Text) tree.getFilterControl()).getText().startsWith("type filter")) {
+ || ((Text) tree.getFilterControl()).getText().startsWith(FILTER_LABEL)) {
List<Object> children = new ArrayList<Object>();
if (parent instanceof AbstractCategory) {
List<? extends ITaskListElement> list = ((AbstractCategory) parent)
@@ -450,7 +460,7 @@ public class TaskListView extends ViewPart {
if (!filter(list.get(i))) {
children.add(list.get(i));
}
- }
+ }
return children;
} else if (parent instanceof Task) {
List<ITask> subTasks = ((Task)parent).getChildren();
@@ -765,7 +775,7 @@ public class TaskListView extends ViewPart {
@Override
public void createPartControl(Composite parent) {
tree = new FilteredTree(parent, SWT.VERTICAL | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION, new TaskListPatternFilter());
- ((Text)tree.getFilterControl()).setText("<filter>");
+ ((Text)tree.getFilterControl()).setText(FILTER_LABEL);
getViewer().getTree().setHeaderVisible(true);
getViewer().getTree().setLinesVisible(true);
getViewer().setColumnProperties(columnNames);
@@ -922,10 +932,15 @@ public class TaskListView extends ViewPart {
}
private void expandToActiveTasks() {
- List<ITask> activeTasks = MylarTasklistPlugin.getTaskListManager().getTaskList().getActiveTasks();
- for (ITask t : activeTasks) {
- getViewer().expandToLevel(t, 0);
- }
+ final IWorkbench workbench = PlatformUI.getWorkbench();
+ workbench.getDisplay().asyncExec(new Runnable() {
+ public void run() {
+ List<ITask> activeTasks = MylarTasklistPlugin.getTaskListManager().getTaskList().getActiveTasks();
+ for (ITask t : activeTasks) {
+ getViewer().expandToLevel(t, 0);
+ }
+ }
+ });
}
private void hookContextMenu() {
@@ -1184,6 +1199,7 @@ public class TaskListView extends ViewPart {
public void notifyTaskDataChanged(ITask task) {
if (getViewer().getTree() != null && !getViewer().getTree().isDisposed()) {
getViewer().refresh();
+ expandToActiveTasks();
}
}
@@ -1305,6 +1321,11 @@ public class TaskListView extends ViewPart {
// fillLocalToolBar(getViewSite().getActionBars().getToolBarManager());
// getViewSite().getActionBars().getToolBarManager().update(true);
// }
+
+ @Override
+ public void dispose() {
+ super.dispose();
+ }
}
//TextTransfer textTransfer = TextTransfer.getInstance();

Back to the top