diff options
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui')
10 files changed, 247 insertions, 134 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskInfoEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskInfoEditor.java index 94eedbb9b..5f58bc91f 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskInfoEditor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskInfoEditor.java @@ -236,7 +236,6 @@ public class TaskInfoEditor extends EditorPart { // refreshTaskListView(task); MylarTaskListPlugin.getTaskListManager().notifyTaskChanged(task); - MylarTaskListPlugin.getTaskListManager().notifyTaskChanged(task); markDirty(false); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskListUiUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskListUiUtil.java new file mode 100644 index 000000000..fc45e3af9 --- /dev/null +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskListUiUtil.java @@ -0,0 +1,124 @@ +/******************************************************************************* + * Copyright (c) 2004 - 2006 University Of British Columbia 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: + * University Of British Columbia - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylar.internal.tasklist.ui; + +import java.net.MalformedURLException; +import java.net.URL; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.mylar.internal.core.util.MylarStatusHandler; +import org.eclipse.mylar.internal.tasklist.TaskListPreferenceConstants; +import org.eclipse.mylar.tasklist.IQueryHit; +import org.eclipse.mylar.tasklist.ITask; +import org.eclipse.mylar.tasklist.ITaskCategory; +import org.eclipse.mylar.tasklist.MylarTaskListPlugin; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.browser.IWebBrowser; +import org.eclipse.ui.internal.Workbench; +import org.eclipse.ui.internal.browser.WorkbenchBrowserSupport; + +/** + * @author Mik Kersten + */ +public class TaskListUiUtil { + + public static void closeEditorInActivePage(ITask task) { + IWorkbenchPage page = MylarTaskListPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow() + .getActivePage(); + if (page == null) { + return; + } + IEditorInput input = new TaskEditorInput(task); + IEditorPart editor = page.findEditor(input); + if (editor != null) { + page.closeEditor(editor, false); + } + } + + public static void openEditor(final IQueryHit hit) { + ITask task = hit.getOrCreateCorrespondingTask(); + if (task != null) { + openEditor(task); + } else { + MessageDialog.openInformation(null, MylarTaskListPlugin.TITLE_DIALOG, + "Could not create task for query hit: " + hit); + } + } + + public static void openEditor(final ITask task) { + openEditor(task, true); + } + + /** + * Set asyncExec true for testing purposes. + */ + public static void openEditor(final ITask task, boolean asyncExec) { + + final IEditorInput editorInput = new TaskEditorInput(task); + if (!asyncExec) { + openEditorInActivePage(editorInput, TaskListPreferenceConstants.TASK_EDITOR_ID); + } else { + Workbench.getInstance().getDisplay().asyncExec(new Runnable() { + public void run() { + openEditorInActivePage(editorInput, TaskListPreferenceConstants.TASK_EDITOR_ID); + } + }); + } + } + + public static IEditorPart openEditorInActivePage(IEditorInput input, String editorId) { + try { + final IWorkbenchPage page = MylarTaskListPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow() + .getActivePage(); + return page.openEditor(input, editorId); + } catch (PartInitException e) { + MylarStatusHandler.fail(e, "Open for editor failed: " + input + ", id: " + editorId, true); + } + return null; + } + + public static void openEditor(ITaskCategory category) { + final IEditorInput input = new CategoryEditorInput(category); + Workbench.getInstance().getDisplay().asyncExec(new Runnable() { + public void run() { + openEditorInActivePage(input, TaskListPreferenceConstants.CATEGORY_EDITOR_ID); + } + }); + } + + public static void openUrl(String title, String tooltip, String url) { + try { + IWebBrowser b = null; + int flags = 0; + if (WorkbenchBrowserSupport.getInstance().isInternalWebBrowserAvailable()) { + flags = WorkbenchBrowserSupport.AS_EDITOR | WorkbenchBrowserSupport.LOCATION_BAR + | WorkbenchBrowserSupport.NAVIGATION_BAR; + + } else { + flags = WorkbenchBrowserSupport.AS_EXTERNAL | WorkbenchBrowserSupport.LOCATION_BAR + | WorkbenchBrowserSupport.NAVIGATION_BAR; + } + b = WorkbenchBrowserSupport.getInstance().createBrowser(flags, "org.eclipse.mylar.tasklist." + title, + title, tooltip); + b.openURL(new URL(url)); + } catch (PartInitException e) { + MessageDialog.openError(Display.getDefault().getActiveShell(), "Browser init error", + "Browser could not be initiated"); + } catch (MalformedURLException e) { + MessageDialog.openError(Display.getDefault().getActiveShell(), "URL not found", "URL Could not be opened"); + } + } +} diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/DeleteAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/DeleteAction.java index 722219f42..8f5768509 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/DeleteAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/DeleteAction.java @@ -16,15 +16,14 @@ import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.mylar.core.MylarPlugin; -import org.eclipse.mylar.internal.core.util.MylarStatusHandler; import org.eclipse.mylar.internal.tasklist.TaskCategory; +import org.eclipse.mylar.internal.tasklist.ui.TaskListUiUtil; import org.eclipse.mylar.internal.tasklist.ui.views.TaskListView; import org.eclipse.mylar.tasklist.IQueryHit; -import org.eclipse.mylar.tasklist.ITask; import org.eclipse.mylar.tasklist.IRepositoryQuery; +import org.eclipse.mylar.tasklist.ITask; import org.eclipse.mylar.tasklist.MylarTaskListPlugin; import org.eclipse.ui.ISharedImages; -import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.internal.Workbench; import org.eclipse.ui.internal.WorkbenchImages; @@ -75,18 +74,18 @@ public class DeleteAction extends Action { MylarTaskListPlugin.getTaskListManager().deleteTask(task); MylarPlugin.getContextManager().contextDeleted(task.getHandleIdentifier()); - IWorkbenchPage page = MylarTaskListPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow() - .getActivePage(); - - if (page == null) { - return; - } - try { - view.closeTaskEditors(task, page); - } catch (Exception e) { - MylarStatusHandler.log(e, "closing editors failed"); - } - view.getViewer().refresh(); + TaskListUiUtil.closeEditorInActivePage(task); +// IWorkbenchPage page = MylarTaskListPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow() +// .getActivePage(); +// if (page == null) { +// return; +// } +// try { +// view.closeTaskEditors(task, page); +// } catch (Exception e) { +// MylarStatusHandler.log(e, "closing editors failed"); +// } +// view.getViewer().refresh(); } else if (selectedObject instanceof IRepositoryQuery) { boolean deleteConfirmed = MessageDialog.openQuestion(Workbench.getInstance().getActiveWorkbenchWindow() .getShell(), "Confirm delete", "Delete the selected query? Task data will not be deleted."); @@ -102,15 +101,16 @@ public class DeleteAction extends Action { TaskCategory cat = (TaskCategory) selectedObject; for (ITask task : cat.getChildren()) { MylarPlugin.getContextManager().contextDeleted(task.getHandleIdentifier()); - IWorkbenchPage page = MylarTaskListPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow() - .getActivePage(); - if (page != null) { - try { - this.view.closeTaskEditors(task, page); - } catch (Exception e) { - MylarStatusHandler.log(e, " deletion failed"); - } - } + TaskListUiUtil.closeEditorInActivePage(task); +// IWorkbenchPage page = MylarTaskListPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow() +// .getActivePage(); +// if (page != null) { +// try { +// this.view.closeTaskEditors(task, page); +// } catch (Exception e) { +// MylarStatusHandler.log(e, " deletion failed"); +// } +// } } MylarTaskListPlugin.getTaskListManager().deleteCategory(cat); view.getViewer().refresh(); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/NewLocalTaskAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/NewLocalTaskAction.java index d7b56c57a..a6c0c2799 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/NewLocalTaskAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/NewLocalTaskAction.java @@ -18,6 +18,7 @@ import org.eclipse.jface.window.Window; import org.eclipse.mylar.internal.tasklist.Task; import org.eclipse.mylar.internal.tasklist.TaskCategory; import org.eclipse.mylar.internal.tasklist.ui.TaskListImages; +import org.eclipse.mylar.internal.tasklist.ui.TaskListUiUtil; import org.eclipse.mylar.internal.tasklist.ui.views.TaskInputDialog; import org.eclipse.mylar.internal.tasklist.ui.views.TaskListView; import org.eclipse.mylar.tasklist.ITask; @@ -72,7 +73,8 @@ public class NewLocalTaskAction extends Action { } else { MylarTaskListPlugin.getTaskListManager().moveToRoot(newTask); } - newTask.openTaskInEditor(false); + TaskListUiUtil.openEditor(newTask); +// newTask.openTaskInEditor(false); view.getViewer().setSelection(new StructuredSelection(newTask)); view.getViewer().refresh(); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/OpenTaskEditorAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/OpenTaskEditorAction.java deleted file mode 100644 index 3f2c56c06..000000000 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/OpenTaskEditorAction.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 - 2006 University Of British Columbia 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: - * University Of British Columbia - initial API and implementation - *******************************************************************************/ - -package org.eclipse.mylar.internal.tasklist.ui.actions; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.mylar.internal.tasklist.ITaskHandler; -import org.eclipse.mylar.internal.tasklist.Task; -import org.eclipse.mylar.internal.tasklist.TaskCategory; -import org.eclipse.mylar.internal.tasklist.ui.ITaskListElement; -import org.eclipse.mylar.internal.tasklist.ui.views.TaskListView; -import org.eclipse.mylar.tasklist.MylarTaskListPlugin; - -/** - * @author Mik Kersten and Ken Sueda - */ -public class OpenTaskEditorAction extends Action { - - public static final String ID = "org.eclipse.mylar.tasklist.actions.open"; - - private final TaskListView view; - - /** - * @param view - */ - public OpenTaskEditorAction(TaskListView view) { - this.view = view; - setText("Open"); - setToolTipText("Open TaskList Element"); - setId(ID); - } - - @Override - public void run() { - ISelection selection = this.view.getViewer().getSelection(); - Object obj = ((IStructuredSelection) selection).getFirstElement(); - if (obj instanceof ITaskListElement) { - ITaskListElement element = (ITaskListElement) obj; - ITaskHandler taskHandler = MylarTaskListPlugin.getDefault().getHandlerForElement(element); - if (taskHandler != null) { - taskHandler.itemOpened(element); - } else { - if (element instanceof Task) { - ((Task) element).openTaskInEditor(false); - } else if (element instanceof TaskCategory) { - ((TaskCategory) element).openCategoryInEditor(false); - } - } - } - this.view.getViewer().refresh(obj); - } -} diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/OpenTaskListElementAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/OpenTaskListElementAction.java new file mode 100644 index 000000000..c0bb23493 --- /dev/null +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/OpenTaskListElementAction.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * Copyright (c) 2004 - 2006 University Of British Columbia 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: + * University Of British Columbia - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylar.internal.tasklist.ui.actions; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.StructuredViewer; +import org.eclipse.mylar.internal.tasklist.ui.TaskListUiUtil; +import org.eclipse.mylar.tasklist.IQueryHit; +import org.eclipse.mylar.tasklist.IRepositoryQuery; +import org.eclipse.mylar.tasklist.ITask; +import org.eclipse.mylar.tasklist.ITaskCategory; + +/** + * @author Mik Kersten + */ +public class OpenTaskListElementAction extends Action { + + public static final String ID = "org.eclipse.mylar.tasklist.actions.open"; + + private final StructuredViewer viewer; + + /** + * @param view + */ + public OpenTaskListElementAction(StructuredViewer view) { + this.viewer = view; + setText("Open"); + setToolTipText("Open Task List Element"); + setId(ID); + } + + @Override + public void run() { + ISelection selection = viewer.getSelection(); + Object element = ((IStructuredSelection) selection).getFirstElement(); + if (element instanceof ITask) { + TaskListUiUtil.openEditor((ITask)element); + } else if (element instanceof IQueryHit) { + TaskListUiUtil.openEditor((IQueryHit)element); + } else if (element instanceof ITaskCategory) { + TaskListUiUtil.openEditor((ITaskCategory)element); + } else if (element instanceof IRepositoryQuery) { + + } + +// if (obj instanceof ITaskListElement) { +// ITaskListElement element = (ITaskListElement) obj; +// ITaskHandler taskHandler = MylarTaskListPlugin.getDefault().getHandlerForElement(element); +// if (taskHandler != null) { +// taskHandler.itemOpened(element); +// } else { +// if (element instanceof ITask) { +// ((Task) element).openTaskInEditor(false); +// } else if (element instanceof ITaskCategory) { +// ((TaskCategory) element).openCategoryInEditor(false); +// } +// } +// } +// this.view.getViewer().refresh(obj); + } +} diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/TaskDeactivateAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/TaskDeactivateAction.java index 786b7f036..dd0889ec9 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/TaskDeactivateAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/TaskDeactivateAction.java @@ -15,10 +15,10 @@ import org.eclipse.jface.action.Action; import org.eclipse.mylar.core.MylarPlugin; import org.eclipse.mylar.internal.core.util.MylarStatusHandler; import org.eclipse.mylar.internal.tasklist.ui.TaskListImages; +import org.eclipse.mylar.internal.tasklist.ui.TaskListUiUtil; import org.eclipse.mylar.internal.tasklist.ui.views.TaskListView; import org.eclipse.mylar.tasklist.ITask; import org.eclipse.mylar.tasklist.MylarTaskListPlugin; -import org.eclipse.ui.IWorkbenchPage; /** * @author Mik Kersten @@ -35,15 +35,13 @@ public class TaskDeactivateAction extends Action { public void run(ITask task) { MylarPlugin.getContextManager().actionObserved(this, Boolean.FALSE.toString()); - IWorkbenchPage page = MylarTaskListPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow() - .getActivePage(); - if (page == null) - return; + try { if (task != null) { MylarTaskListPlugin.getTaskListManager().deactivateTask(task); TaskListView.getDefault().getViewer().refresh(); - TaskListView.getDefault().closeTaskEditors(task, page); + TaskListUiUtil.closeEditorInActivePage(task); +// TaskListView.getDefault().closeTaskEditors(task, page); } } catch (Exception e) { MylarStatusHandler.log(e, " Closing task editor on task deactivation failed"); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/preferences/MylarTaskListPreferencePage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/preferences/MylarTaskListPreferencePage.java index 670ed9681..515d10a14 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/preferences/MylarTaskListPreferencePage.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/preferences/MylarTaskListPreferencePage.java @@ -92,7 +92,7 @@ public class MylarTaskListPreferencePage extends PreferencePage implements IWork container.setLayout(new GridLayout(2, false)); container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - container.setText("Open Bug Reports With"); + container.setText("Open Repository Tasks With"); reportEditor = new Button(container, SWT.RADIO); reportEditor.setText("Bug editor"); reportEditor.setSelection(getPreferenceStore().getBoolean(TaskListPreferenceConstants.REPORT_OPEN_EDITOR)); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/views/TaskListDropAdapter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/views/TaskListDropAdapter.java index 85ba1ff75..6e23cf3dd 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/views/TaskListDropAdapter.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/views/TaskListDropAdapter.java @@ -24,6 +24,7 @@ import org.eclipse.mylar.internal.core.util.MylarStatusHandler; import org.eclipse.mylar.internal.tasklist.Task; import org.eclipse.mylar.internal.tasklist.TaskCategory; import org.eclipse.mylar.internal.tasklist.ui.ITaskListElement; +import org.eclipse.mylar.internal.tasklist.ui.TaskListUiUtil; import org.eclipse.mylar.tasklist.IQueryHit; import org.eclipse.mylar.tasklist.ITask; import org.eclipse.mylar.tasklist.MylarTaskListPlugin; @@ -147,7 +148,8 @@ public class TaskListDropAdapter extends ViewerDropAdapter { newTask.setPriority(MylarTaskListPlugin.PriorityLevel.P3.toString()); newTask.setUrl(url); - newTask.openTaskInEditor(true); + TaskListUiUtil.openEditor(newTask); +// newTask.openTaskInEditor(true); return true; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/views/TaskListView.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/views/TaskListView.java index 2bb315de5..0a2b5f2ad 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/views/TaskListView.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/views/TaskListView.java @@ -11,13 +11,10 @@ package org.eclipse.mylar.internal.tasklist.ui.views; -import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import javax.security.auth.login.LoginException; - import org.eclipse.jface.action.Action; import org.eclipse.jface.action.ActionContributionItem; import org.eclipse.jface.action.IMenuCreator; @@ -48,14 +45,12 @@ import org.eclipse.jface.window.Window; import org.eclipse.mylar.internal.core.dt.MylarWebRef; import org.eclipse.mylar.internal.core.util.MylarStatusHandler; import org.eclipse.mylar.internal.tasklist.ITaskHandler; -import org.eclipse.mylar.internal.tasklist.Task; import org.eclipse.mylar.internal.tasklist.TaskCategory; import org.eclipse.mylar.internal.tasklist.TaskPriorityFilter; import org.eclipse.mylar.internal.tasklist.ui.AbstractTaskFilter; import org.eclipse.mylar.internal.tasklist.ui.IDynamicSubMenuContributor; import org.eclipse.mylar.internal.tasklist.ui.ITaskListElement; import org.eclipse.mylar.internal.tasklist.ui.TaskCompleteFilter; -import org.eclipse.mylar.internal.tasklist.ui.TaskEditorInput; import org.eclipse.mylar.internal.tasklist.ui.TaskListImages; import org.eclipse.mylar.internal.tasklist.ui.TaskListPatternFilter; import org.eclipse.mylar.internal.tasklist.ui.actions.CollapseAllAction; @@ -70,8 +65,8 @@ import org.eclipse.mylar.internal.tasklist.ui.actions.MarkTaskIncompleteAction; import org.eclipse.mylar.internal.tasklist.ui.actions.NewCategoryAction; import org.eclipse.mylar.internal.tasklist.ui.actions.NewLocalTaskAction; import org.eclipse.mylar.internal.tasklist.ui.actions.NextTaskDropDownAction; -import org.eclipse.mylar.internal.tasklist.ui.actions.OpenTaskEditorAction; import org.eclipse.mylar.internal.tasklist.ui.actions.OpenTaskInExternalBrowserAction; +import org.eclipse.mylar.internal.tasklist.ui.actions.OpenTaskListElementAction; import org.eclipse.mylar.internal.tasklist.ui.actions.PreviousTaskDropDownAction; import org.eclipse.mylar.internal.tasklist.ui.actions.RemoveFromCategoryAction; import org.eclipse.mylar.internal.tasklist.ui.actions.RenameAction; @@ -79,10 +74,10 @@ import org.eclipse.mylar.internal.tasklist.ui.actions.TaskActivateAction; import org.eclipse.mylar.internal.tasklist.ui.actions.TaskDeactivateAction; import org.eclipse.mylar.internal.tasklist.ui.actions.WorkOfflineAction; import org.eclipse.mylar.tasklist.IQueryHit; +import org.eclipse.mylar.tasklist.IRepositoryQuery; import org.eclipse.mylar.tasklist.ITask; import org.eclipse.mylar.tasklist.ITaskActivityListener; import org.eclipse.mylar.tasklist.ITaskCategory; -import org.eclipse.mylar.tasklist.IRepositoryQuery; import org.eclipse.mylar.tasklist.MylarTaskListPlugin; import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.DND; @@ -101,14 +96,11 @@ import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.swt.widgets.TreeItem; import org.eclipse.ui.IActionBars; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IMemento; import org.eclipse.ui.IViewReference; 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; @@ -151,7 +143,7 @@ public class TaskListView extends ViewPart { private CopyDescriptionAction copyDescriptionAction; - private OpenTaskEditorAction openTaskEditor; + private OpenTaskListElementAction openTaskEditor; private OpenTaskInExternalBrowserAction openUrlInExternal; @@ -241,7 +233,7 @@ public class TaskListView extends ViewPart { refresh(null); } } - + public void tasklistRead() { refresh(null); } @@ -262,12 +254,12 @@ public class TaskListView extends ViewPart { getViewer().getControl().setRedraw(true); } else { getViewer().refresh(element, true); - } + } } } }); } - } + } }; private final class PriorityDropDownAction extends Action implements IMenuCreator { @@ -1076,7 +1068,7 @@ public class TaskListView extends ViewPart { action.setEnabled(true); } else if (action instanceof NewLocalTaskAction) { action.setEnabled(false); - } else if (action instanceof OpenTaskEditorAction) { + } else if (action instanceof OpenTaskListElementAction) { action.setEnabled(true); } else if (action instanceof CopyDescriptionAction) { action.setEnabled(true); @@ -1105,7 +1097,7 @@ public class TaskListView extends ViewPart { } else { action.setEnabled(false); } - } else if (action instanceof OpenTaskEditorAction) { + } else if (action instanceof OpenTaskListElementAction) { action.setEnabled(true); } else if (action instanceof CopyDescriptionAction) { action.setEnabled(true); @@ -1141,7 +1133,7 @@ public class TaskListView extends ViewPart { autoClose = new ManageEditorsAction(); markIncompleteAction = new MarkTaskCompleteAction(this); markCompleteAction = new MarkTaskIncompleteAction(this); - openTaskEditor = new OpenTaskEditorAction(this); + openTaskEditor = new OpenTaskListElementAction(this.getViewer()); openUrlInExternal = new OpenTaskInExternalBrowserAction(); filterCompleteTask = new FilterCompletedTasksAction(this); filterOnPriority = new PriorityDropDownAction(); @@ -1197,21 +1189,6 @@ public class TaskListView extends ViewPart { // return false; } - public void closeTaskEditors(ITask task, IWorkbenchPage page) throws LoginException, IOException { - ITaskHandler taskHandler = MylarTaskListPlugin.getDefault().getHandlerForElement(task); - if (taskHandler != null) { - taskHandler.taskClosed(task, page); - } else if (task instanceof Task) { - IEditorInput input = new TaskEditorInput((Task) task); - - IEditorPart editor = page.findEditor(input); - - if (editor != null) { - page.closeEditor(editor, false); - } - } - } - private void hookOpenAction() { getViewer().addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { @@ -1243,12 +1220,13 @@ public class TaskListView extends ViewPart { } } -// public void notifyTaskDataChanged(ITask task) { -// if (getViewer().getTree() != null && !getViewer().getTree().isDisposed()) { -// getViewer().refresh(); -// expandToActiveTasks(); -// } -// } + // public void notifyTaskDataChanged(ITask task) { + // if (getViewer().getTree() != null && !getViewer().getTree().isDisposed()) + // { + // getViewer().refresh(); + // expandToActiveTasks(); + // } + // } public static TaskListView getDefault() { return INSTANCE; |