diff options
author | mkersten | 2006-05-30 01:51:47 +0000 |
---|---|---|
committer | mkersten | 2006-05-30 01:51:47 +0000 |
commit | ce7a489ec9613c6185f89fe8f8b92d62803284f9 (patch) | |
tree | f2bd1c3fa8e1344c4c68711dccc5450c77a8cda2 | |
parent | ab03d12e970d931925ec36fa157ddfeb561ef009 (diff) | |
download | org.eclipse.mylyn.tasks-ce7a489ec9613c6185f89fe8f8b92d62803284f9.tar.gz org.eclipse.mylyn.tasks-ce7a489ec9613c6185f89fe8f8b92d62803284f9.tar.xz org.eclipse.mylyn.tasks-ce7a489ec9613c6185f89fe8f8b92d62803284f9.zip |
Completed: 128884: with multiple of same task present task list linking causes selection to jump
https://bugs.eclipse.org/bugs/show_bug.cgi?id=128884
-rw-r--r-- | org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java | 29 | ||||
-rw-r--r-- | org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/AbstractBugzillaQueryPage.java | 14 | ||||
-rw-r--r-- | org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryWizardPage.java | 12 | ||||
-rw-r--r-- | org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaQueryTypeWizardPage.java | 10 | ||||
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/plugin.xml | 7 | ||||
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskUiUtil.java | 12 | ||||
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/CopyDetailsAction.java (renamed from org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/CopyDescriptionAction.java) | 4 | ||||
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/views/TaskListView.java | 196 |
8 files changed, 163 insertions, 121 deletions
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java index fe82be5e5..14f1a87a6 100644 --- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java +++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/search/BugzillaSearchPage.java @@ -73,10 +73,6 @@ public class BugzillaSearchPage extends AbstractBugzillaQueryPage implements ISe private static final String NUM_DAYS_POSITIVE = "Number of days must be a positive integer. "; - private static final String TITLE = "New Bugzilla Query"; - - private static final String DESCRIPTION = "Enter query parameters. If attributes are blank or stale press the Update button."; - private static final String TITLE_BUGZILLA_QUERY = "Bugzilla Query"; private static final String MAX_HITS = "100"; @@ -137,26 +133,27 @@ public class BugzillaSearchPage extends AbstractBugzillaQueryPage implements ISe public BugzillaSearchPage() { super(TITLE_BUGZILLA_QUERY); - setTitle(TITLE); - setDescription(DESCRIPTION); - setPageComplete(false); +// setTitle(TITLE); +// setDescription(DESCRIPTION); +// setPageComplete(false); } public BugzillaSearchPage(TaskRepository repository) { super(TITLE_BUGZILLA_QUERY); - setTitle(TITLE); - setDescription(DESCRIPTION); this.repository = repository; - setPageComplete(false); +// setTitle(TITLE); +// setDescription(DESCRIPTION); +// setImageDescriptor(TaskListImages.BANNER_REPOSITORY); +// setPageComplete(false); } public BugzillaSearchPage(TaskRepository repository, BugzillaRepositoryQuery origQuery) { super(TITLE_BUGZILLA_QUERY, origQuery.getDescription()); originalQuery = origQuery; this.repository = repository; - setTitle(TITLE); - setDescription(DESCRIPTION); - setPageComplete(false); +// setTitle(TITLE); +// setDescription(DESCRIPTION); +// setPageComplete(false); } public void createControl(Composite parent) { @@ -998,8 +995,10 @@ public class BugzillaSearchPage extends AbstractBugzillaQueryPage implements ISe if (scontainer != null) { scontainer.setPerformActionEnabled(canQuery()); } - summaryPattern.setFocus(); - + if (getWizard() == null) { + // TODO: wierd check + summaryPattern.setFocus(); + } } super.setVisible(visible); } diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/AbstractBugzillaQueryPage.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/AbstractBugzillaQueryPage.java index ea68d7634..003c72f75 100644 --- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/AbstractBugzillaQueryPage.java +++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/AbstractBugzillaQueryPage.java @@ -12,6 +12,7 @@ package org.eclipse.mylar.internal.bugzilla.ui.tasklist; import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.mylar.internal.tasklist.ui.TaskListImages; import org.eclipse.swt.SWT; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.events.KeyListener; @@ -28,12 +29,20 @@ public abstract class AbstractBugzillaQueryPage extends WizardPage { private static final String TITLE_QUERY_TITLE = "Query Title"; + private static final String TITLE = "Enter query parameters"; + + private static final String DESCRIPTION = "If attributes are blank or stale press the Update button."; + private Text title; private String titleString = ""; public AbstractBugzillaQueryPage(String wizardTitle) { this(wizardTitle, ""); + setTitle(TITLE); + setDescription(DESCRIPTION); + setImageDescriptor(TaskListImages.BANNER_REPOSITORY); + setPageComplete(false); } public AbstractBugzillaQueryPage(String wizardTitle, String queryTitle) { @@ -42,9 +51,8 @@ public abstract class AbstractBugzillaQueryPage extends WizardPage { } public void createControl(Composite parent) { - createTitleGroup(parent); - + title.setFocus(); } private void createTitleGroup(Composite composite) { @@ -66,12 +74,10 @@ public abstract class AbstractBugzillaQueryPage extends WizardPage { public void keyPressed(KeyEvent e) { // ignore - } public void keyReleased(KeyEvent e) { setPageComplete(canFlipToNextPage()); - } }); } diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryWizardPage.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryWizardPage.java index e241421b0..f1f337bee 100644 --- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryWizardPage.java +++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaCustomQueryWizardPage.java @@ -11,6 +11,7 @@ package org.eclipse.mylar.internal.bugzilla.ui.tasklist; +import org.eclipse.mylar.internal.tasklist.ui.TaskListImages; import org.eclipse.mylar.provisional.tasklist.MylarTaskListPlugin; import org.eclipse.mylar.provisional.tasklist.TaskRepository; import org.eclipse.swt.SWT; @@ -24,14 +25,15 @@ import org.eclipse.swt.widgets.Text; /** * @author Rob Elves + * @author Mik Kersten */ public class BugzillaCustomQueryWizardPage extends AbstractBugzillaQueryPage { - private static final String LABEL_CUSTOM_QUERY = "Custom Query"; + private static final String LABEL_CUSTOM_QUERY = "Enter query URL"; private static final String TITLE = "Create query from URL"; - private static final String DESCRIPTION = "Enter the name and URL for the query"; +// private static final String DESCRIPTION = "Enter the name and URL for the query"; private Text queryText; @@ -46,14 +48,16 @@ public class BugzillaCustomQueryWizardPage extends AbstractBugzillaQueryPage { this.query = query; this.repository = repository; setTitle(LABEL_CUSTOM_QUERY); - setDescription(DESCRIPTION); +// setDescription(DESCRIPTION); + setImageDescriptor(TaskListImages.BANNER_REPOSITORY); } public BugzillaCustomQueryWizardPage(TaskRepository repository) { super(TITLE); this.repository = repository; setTitle(LABEL_CUSTOM_QUERY); - setDescription(DESCRIPTION); +// setDescription(DESCRIPTION); + setImageDescriptor(TaskListImages.BANNER_REPOSITORY); } public void createControl(Composite parent) { diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaQueryTypeWizardPage.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaQueryTypeWizardPage.java index a6f0d3d6c..0a0bf65bb 100644 --- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaQueryTypeWizardPage.java +++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaQueryTypeWizardPage.java @@ -14,6 +14,7 @@ package org.eclipse.mylar.internal.bugzilla.ui.tasklist; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.mylar.internal.bugzilla.ui.search.BugzillaSearchPage; +import org.eclipse.mylar.internal.tasklist.ui.TaskListImages; import org.eclipse.mylar.provisional.tasklist.TaskRepository; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; @@ -26,13 +27,13 @@ import org.eclipse.swt.widgets.Composite; */ public class BugzillaQueryTypeWizardPage extends WizardPage { - private static final String BUTTON_LABEL_QUERY = "Create query from URL"; + private static final String BUTTON_LABEL_QUERY = "Create query from existing URL"; private static final String BUTTON_LABEL_FORM = "Create query using form"; - private static final String TITLE = "Choose Bugzilla query type"; + private static final String TITLE = "Choose query type"; - private static final String DESCRIPTION = "Select query type below."; + private static final String DESCRIPTION = "Select from the available query types."; private Button buttonCustom; @@ -48,10 +49,9 @@ public class BugzillaQueryTypeWizardPage extends WizardPage { super(TITLE); setTitle(TITLE); setDescription(DESCRIPTION); + setImageDescriptor(TaskListImages.BANNER_REPOSITORY); customPage = new BugzillaCustomQueryWizardPage(repository); searchPage = new BugzillaSearchPage(repository); - - } public void createControl(Composite parent) { diff --git a/org.eclipse.mylyn.tasks.ui/plugin.xml b/org.eclipse.mylyn.tasks.ui/plugin.xml index 282f2984d..4ec333f57 100644 --- a/org.eclipse.mylyn.tasks.ui/plugin.xml +++ b/org.eclipse.mylyn.tasks.ui/plugin.xml @@ -210,12 +210,13 @@ menubarPath="additions" tooltip="Synchronize with Repository"> </action> - <action - class="org.eclipse.mylar.internal.tasklist.ui.actions.CopyDescriptionAction" + <!-- + <action + class="org.eclipse.mylar.internal.tasklist.ui.actions.CopyDetailsAction" id="org.eclipse.mylar.tasklist.copy.details" label="Copy Details" style="push"/> - + --> </viewContribution> </extension> diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskUiUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskUiUtil.java index e4e47a397..c4e6cf3b4 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskUiUtil.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/TaskUiUtil.java @@ -22,6 +22,7 @@ import org.eclipse.mylar.internal.core.util.MylarStatusHandler; import org.eclipse.mylar.internal.tasklist.TaskListPreferenceConstants; import org.eclipse.mylar.internal.tasklist.ui.editors.CategoryEditorInput; import org.eclipse.mylar.internal.tasklist.ui.editors.TaskEditorInput; +import org.eclipse.mylar.internal.tasklist.ui.views.TaskRepositoriesView; import org.eclipse.mylar.provisional.tasklist.AbstractQueryHit; import org.eclipse.mylar.provisional.tasklist.AbstractRepositoryConnector; import org.eclipse.mylar.provisional.tasklist.AbstractRepositoryQuery; @@ -33,6 +34,7 @@ import org.eclipse.mylar.provisional.tasklist.ITaskListElement; import org.eclipse.mylar.provisional.tasklist.MylarTaskListPlugin; import org.eclipse.mylar.provisional.tasklist.Task; import org.eclipse.mylar.provisional.tasklist.TaskCategory; +import org.eclipse.mylar.provisional.tasklist.TaskRepository; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IEditorInput; @@ -140,8 +142,16 @@ public class TaskUiUtil { boolean forceUpdate = false; if (task instanceof AbstractRepositoryTask) { + String repositoryKind = ((AbstractRepositoryTask) task).getRepositoryKind(); final AbstractRepositoryConnector connector = MylarTaskListPlugin.getRepositoryManager() - .getRepositoryConnector(((AbstractRepositoryTask) task).getRepositoryKind()); + .getRepositoryConnector(repositoryKind); + + TaskRepository repository = MylarTaskListPlugin.getRepositoryManager().getRepository(repositoryKind, ((AbstractRepositoryTask) task).getRepositoryUrl()); + if (!repository.hasCredentials()) { + MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), + MylarTaskListPlugin.TITLE_DIALOG, + "Repository does not have credentials set, verify via " + TaskRepositoriesView.NAME + " view"); + } if (connector != null) { Job refreshJob = connector.synchronize((AbstractRepositoryTask) task, forceUpdate, new IJobChangeListener() { diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/CopyDescriptionAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/CopyDetailsAction.java index 20218f00f..0084395ee 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/CopyDescriptionAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/actions/CopyDetailsAction.java @@ -25,7 +25,7 @@ import org.eclipse.swt.custom.StyledText; /** * @author Mik Kersten */ -public class CopyDescriptionAction extends Action { +public class CopyDetailsAction extends Action { private static final String LABEL = "Copy Details"; @@ -33,7 +33,7 @@ public class CopyDescriptionAction extends Action { private TaskListView view; - public CopyDescriptionAction(TaskListView view) { + public CopyDetailsAction(TaskListView view) { this.view = view; setText(LABEL); setToolTipText(LABEL); 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 f6537e3b3..956d9f581 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 @@ -54,7 +54,7 @@ import org.eclipse.mylar.internal.tasklist.ui.TaskListPatternFilter; import org.eclipse.mylar.internal.tasklist.ui.TaskPriorityFilter; import org.eclipse.mylar.internal.tasklist.ui.TaskUiUtil; import org.eclipse.mylar.internal.tasklist.ui.actions.CollapseAllAction; -import org.eclipse.mylar.internal.tasklist.ui.actions.CopyDescriptionAction; +import org.eclipse.mylar.internal.tasklist.ui.actions.CopyDetailsAction; import org.eclipse.mylar.internal.tasklist.ui.actions.DeleteAction; import org.eclipse.mylar.internal.tasklist.ui.actions.ExpandAllAction; import org.eclipse.mylar.internal.tasklist.ui.actions.FilterArchiveContainerAction; @@ -139,7 +139,7 @@ public class TaskListView extends ViewPart { private static final String SEPARATOR_CONTEXT = "context"; private static final String SEPARATOR_FILTERS = "filters"; - + private static final String SEPARATOR_REPORTS = "reports"; private static final String LABEL_NO_TASKS = "no task active"; @@ -149,19 +149,19 @@ public class TaskListView extends ViewPart { public static final String[] PRIORITY_LEVELS = { Task.PriorityLevel.P1.toString(), Task.PriorityLevel.P2.toString(), Task.PriorityLevel.P3.toString(), Task.PriorityLevel.P4.toString(), Task.PriorityLevel.P5.toString() }; - + public static final String[] PRIORITY_LEVEL_DESCRIPTIONS = { Task.PriorityLevel.P1.getDescription(), - Task.PriorityLevel.P2.getDescription(), Task.PriorityLevel.P3.getDescription(), Task.PriorityLevel.P4.getDescription(), - Task.PriorityLevel.P5.getDescription()}; + Task.PriorityLevel.P2.getDescription(), Task.PriorityLevel.P3.getDescription(), + Task.PriorityLevel.P4.getDescription(), Task.PriorityLevel.P5.getDescription() }; private static final String SEPARATOR_ID_REPORTS = SEPARATOR_REPORTS; private static final String PART_NAME = "Mylar Tasks"; -// private static TaskListView INSTANCE; + // private static TaskListView INSTANCE; private IThemeManager themeManager; - + private TaskListFilteredTree filteredTree; private DrillDownAdapter drillDownAdapter; @@ -172,7 +172,7 @@ public class TaskListView extends ViewPart { private GoUpAction goUpAction; - private CopyDescriptionAction copyDescriptionAction; + private CopyDetailsAction copyDetailsAction; private OpenTaskListElementAction openTaskEditor; @@ -187,14 +187,15 @@ public class TaskListView extends ViewPart { private CollapseAllAction collapseAll; private ExpandAllAction expandAll; - + private DeleteAction deleteAction; private RemoveFromCategoryAction removeFromCategoryAction; private TaskActivateAction activateAction = new TaskActivateAction(); -// private TaskDeactivateAction deactivateAction = new TaskDeactivateAction(); + // private TaskDeactivateAction deactivateAction = new + // TaskDeactivateAction(); private MarkTaskCompleteAction markIncompleteAction; @@ -203,7 +204,7 @@ public class TaskListView extends ViewPart { private FilterCompletedTasksAction filterCompleteTask; private FilterArchiveContainerAction filterArchiveCategory; - + private PriorityDropDownAction filterOnPriority; private PreviousTaskDropDownAction previousTaskAction; @@ -215,7 +216,7 @@ public class TaskListView extends ViewPart { private static TaskCompletionFilter FILTER_COMPLETE = new TaskCompletionFilter(); private static TaskArchiveFilter FILTER_ARCHIVE = new TaskArchiveFilter(); - + private Set<AbstractTaskListFilter> filters = new HashSet<AbstractTaskListFilter>(); static final String FILTER_LABEL = "<filter>"; @@ -297,7 +298,8 @@ public class TaskListView extends ViewPart { } public void taskMoved(ITask task, AbstractTaskContainer fromContainer, AbstractTaskContainer toContainer) { - AbstractTaskContainer rootCategory = MylarTaskListPlugin.getTaskListManager().getTaskList().getRootCategory(); + AbstractTaskContainer rootCategory = MylarTaskListPlugin.getTaskListManager().getTaskList() + .getRootCategory(); if (rootCategory.equals(fromContainer) || rootCategory.equals(toContainer)) { refresh(null); } else { @@ -329,19 +331,20 @@ public class TaskListView extends ViewPart { } else { refresh(container); } - } + } }; private final IPropertyChangeListener THEME_CHANGE_LISTENER = new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { if (event.getProperty().equals(IThemeManager.CHANGE_CURRENT_THEME) || TaskListColorsAndFonts.isTaskListTheme(event.getProperty())) { - taskListTableLabelProvider.setCategoryBackgroundColor(themeManager.getCurrentTheme().getColorRegistry().get(TaskListColorsAndFonts.THEME_COLOR_TASKLIST_CATEGORY)); + taskListTableLabelProvider.setCategoryBackgroundColor(themeManager.getCurrentTheme().getColorRegistry() + .get(TaskListColorsAndFonts.THEME_COLOR_TASKLIST_CATEGORY)); getViewer().refresh(); - } + } } }; - + private TaskListTableLabelProvider taskListTableLabelProvider; private final class PriorityDropDownAction extends Action implements IMenuCreator { @@ -384,8 +387,9 @@ public class TaskListView extends ViewPart { Action P1 = new Action("", AS_CHECK_BOX) { @Override public void run() { - MylarTaskListPlugin.getMylarCorePrefs().setValue(TaskListPreferenceConstants.SELECTED_PRIORITY, Task.PriorityLevel.P1.toString()); -// MylarTaskListPlugin.setCurrentPriorityLevel(Task.PriorityLevel.P1); + MylarTaskListPlugin.getMylarCorePrefs().setValue(TaskListPreferenceConstants.SELECTED_PRIORITY, + Task.PriorityLevel.P1.toString()); + // MylarTaskListPlugin.setCurrentPriorityLevel(Task.PriorityLevel.P1); FILTER_PRIORITY.displayPrioritiesAbove(PRIORITY_LEVELS[0]); getViewer().refresh(); } @@ -399,8 +403,9 @@ public class TaskListView extends ViewPart { Action P2 = new Action("", AS_CHECK_BOX) { @Override public void run() { - MylarTaskListPlugin.getMylarCorePrefs().setValue(TaskListPreferenceConstants.SELECTED_PRIORITY, Task.PriorityLevel.P2.toString()); -// MylarTaskListPlugin.setCurrentPriorityLevel(Task.PriorityLevel.P2); + MylarTaskListPlugin.getMylarCorePrefs().setValue(TaskListPreferenceConstants.SELECTED_PRIORITY, + Task.PriorityLevel.P2.toString()); + // MylarTaskListPlugin.setCurrentPriorityLevel(Task.PriorityLevel.P2); FILTER_PRIORITY.displayPrioritiesAbove(PRIORITY_LEVELS[1]); getViewer().refresh(); } @@ -414,8 +419,9 @@ public class TaskListView extends ViewPart { Action P3 = new Action("", AS_CHECK_BOX) { @Override public void run() { - MylarTaskListPlugin.getMylarCorePrefs().setValue(TaskListPreferenceConstants.SELECTED_PRIORITY, Task.PriorityLevel.P3.toString()); -// MylarTaskListPlugin.setCurrentPriorityLevel(Task.PriorityLevel.P3); + MylarTaskListPlugin.getMylarCorePrefs().setValue(TaskListPreferenceConstants.SELECTED_PRIORITY, + Task.PriorityLevel.P3.toString()); + // MylarTaskListPlugin.setCurrentPriorityLevel(Task.PriorityLevel.P3); FILTER_PRIORITY.displayPrioritiesAbove(PRIORITY_LEVELS[2]); getViewer().refresh(); } @@ -429,8 +435,9 @@ public class TaskListView extends ViewPart { Action P4 = new Action("", AS_CHECK_BOX) { @Override public void run() { - MylarTaskListPlugin.getMylarCorePrefs().setValue(TaskListPreferenceConstants.SELECTED_PRIORITY, Task.PriorityLevel.P4.toString()); -// MylarTaskListPlugin.setCurrentPriorityLevel(Task.PriorityLevel.P4); + MylarTaskListPlugin.getMylarCorePrefs().setValue(TaskListPreferenceConstants.SELECTED_PRIORITY, + Task.PriorityLevel.P4.toString()); + // MylarTaskListPlugin.setCurrentPriorityLevel(Task.PriorityLevel.P4); FILTER_PRIORITY.displayPrioritiesAbove(PRIORITY_LEVELS[3]); getViewer().refresh(); } @@ -444,8 +451,9 @@ public class TaskListView extends ViewPart { Action P5 = new Action("", AS_CHECK_BOX) { @Override public void run() { - MylarTaskListPlugin.getMylarCorePrefs().setValue(TaskListPreferenceConstants.SELECTED_PRIORITY, Task.PriorityLevel.P5.toString()); -// MylarTaskListPlugin.setCurrentPriorityLevel(Task.PriorityLevel.P5); + MylarTaskListPlugin.getMylarCorePrefs().setValue(TaskListPreferenceConstants.SELECTED_PRIORITY, + Task.PriorityLevel.P5.toString()); + // MylarTaskListPlugin.setCurrentPriorityLevel(Task.PriorityLevel.P5); FILTER_PRIORITY.displayPrioritiesAbove(PRIORITY_LEVELS[4]); getViewer().refresh(); } @@ -488,14 +496,14 @@ public class TaskListView extends ViewPart { public static TaskListView getFromActivePerspective() { IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); if (activePage != null) { - IViewPart view= activePage.findView(ID); + IViewPart view = activePage.findView(ID); if (view instanceof TaskListView) { - return (TaskListView)view; + return (TaskListView) view; } } - return null; + return null; } - + public static TaskListView openInActivePerspective() { try { return (TaskListView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(ID); @@ -505,7 +513,7 @@ public class TaskListView extends ViewPart { } public TaskListView() { -// INSTANCE = this; + // INSTANCE = this; MylarTaskListPlugin.getTaskListManager().getTaskList().addChangeListener(TASK_REFERESH_LISTENER); MylarTaskListPlugin.getTaskListManager().addActivityListener(TASK_ACTIVITY_LISTENER); } @@ -515,7 +523,7 @@ public class TaskListView extends ViewPart { super.dispose(); MylarTaskListPlugin.getTaskListManager().getTaskList().removeChangeListener(TASK_REFERESH_LISTENER); MylarTaskListPlugin.getTaskListManager().removeActivityListener(TASK_ACTIVITY_LISTENER); - + final IThemeManager themeManager = getSite().getWorkbenchWindow().getWorkbench().getThemeManager(); if (themeManager != null) { themeManager.removePropertyChangeListener(THEME_CHANGE_LISTENER); @@ -563,9 +571,10 @@ public class TaskListView extends ViewPart { } else if (element instanceof ITaskListElement && isInRenameAction) { switch (columnIndex) { case 4: -// return element instanceof TaskCategory || element instanceof AbstractRepositoryQuery + // return element instanceof TaskCategory || element + // instanceof AbstractRepositoryQuery return element instanceof AbstractTaskContainer - || (element instanceof ITask && !(element instanceof AbstractRepositoryTask)); + || (element instanceof ITask && !(element instanceof AbstractRepositoryTask)); } } return false; @@ -645,8 +654,9 @@ public class TaskListView extends ViewPart { case 2: break; case 4: - MylarTaskListPlugin.getTaskListManager().getTaskList().renameContainer(container, ((String) value).trim()); -// container.setDescription(((String) value).trim()); + MylarTaskListPlugin.getTaskListManager().getTaskList().renameContainer(container, + ((String) value).trim()); + // container.setDescription(((String) value).trim()); break; } } else if (((TreeItem) element).getData() instanceof AbstractRepositoryQuery) { @@ -659,8 +669,9 @@ public class TaskListView extends ViewPart { case 2: break; case 4: - MylarTaskListPlugin.getTaskListManager().getTaskList().renameContainer(query, ((String) value).trim()); -// cat.setDescription(((String) value).trim()); + MylarTaskListPlugin.getTaskListManager().getTaskList().renameContainer(query, + ((String) value).trim()); + // cat.setDescription(((String) value).trim()); break; } } else if (((TreeItem) element).getData() instanceof ITaskListElement) { @@ -701,8 +712,9 @@ public class TaskListView extends ViewPart { break; case 4: if (!(task instanceof AbstractRepositoryTask)) { - MylarTaskListPlugin.getTaskListManager().getTaskList().renameTask((Task)task, ((String) value).trim()); -// task.setDescription(((String) value).trim()); + MylarTaskListPlugin.getTaskListManager().getTaskList().renameTask((Task) task, + ((String) value).trim()); + // task.setDescription(((String) value).trim()); // MylarTaskListPlugin.getTaskListManager().notifyTaskPropertyChanged(task, // columnNames[3]); MylarTaskListPlugin.getTaskListManager().getTaskList().notifyLocalInfoChanged(task); @@ -795,10 +807,10 @@ public class TaskListView extends ViewPart { // MylarTaskListPlugin.getTaskListManager().getTaskList().addFilter(inCompleteFilter); if (MylarTaskListPlugin.getMylarCorePrefs().contains(TaskListPreferenceConstants.FILTER_COMPLETE_MODE)) addFilter(FILTER_COMPLETE); - + if (MylarTaskListPlugin.getMylarCorePrefs().contains(TaskListPreferenceConstants.FILTER_ARCHIVE_MODE)) addFilter(FILTER_ARCHIVE); - + if (MylarTaskListPlugin.getDefault().isMultipleActiveTasksMode()) { togglePreviousAction(false); toggleNextAction(false); @@ -811,7 +823,7 @@ public class TaskListView extends ViewPart { public void createPartControl(Composite parent) { themeManager = getSite().getWorkbenchWindow().getWorkbench().getThemeManager(); themeManager.addPropertyChangeListener(THEME_CHANGE_LISTENER); - + filteredTree = new TaskListFilteredTree(parent, SWT.MULTI | SWT.VERTICAL | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION, new TaskListPatternFilter()); @@ -859,7 +871,7 @@ public class TaskListView extends ViewPart { CellEditor[] editors = new CellEditor[columnNames.length]; TextCellEditor textEditor = new TextCellEditor(getViewer().getTree()); - ((Text) textEditor.getControl()).setOrientation(SWT.LEFT_TO_RIGHT); + ((Text) textEditor.getControl()).setOrientation(SWT.LEFT_TO_RIGHT); editors[0] = new CheckboxCellEditor(); editors[1] = textEditor; editors[2] = new ComboBoxCellEditor(getViewer().getTree(), PRIORITY_LEVEL_DESCRIPTIONS, SWT.READ_ONLY); @@ -881,7 +893,7 @@ public class TaskListView extends ViewPart { renameAction.run(); } } else if (e.keyCode == 'c' && e.stateMask == SWT.MOD1) { - copyDescriptionAction.run(); + copyDetailsAction.run(); } else if (e.keyCode == SWT.DEL) { deleteAction.run(); } else if (e.keyCode == SWT.INSERT) { @@ -924,7 +936,8 @@ public class TaskListView extends ViewPart { } private void initDragAndDrop(Composite parent) { - Transfer[] types = new Transfer[] { TextTransfer.getInstance(), PluginTransfer.getInstance(), RTFTransfer.getInstance() }; + Transfer[] types = new Transfer[] { TextTransfer.getInstance(), PluginTransfer.getInstance(), + RTFTransfer.getInstance() }; getViewer().addDragSupport(DND.DROP_MOVE, types, new TaskListDragSourceListener(this)); @@ -967,7 +980,7 @@ public class TaskListView extends ViewPart { manager.add(goUpAction); manager.add(collapseAll); manager.add(expandAll); - manager.add(new Separator(SEPARATOR_FILTERS)); + manager.add(new Separator(SEPARATOR_FILTERS)); manager.add(filterCompleteTask); manager.add(filterArchiveCategory); manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); @@ -977,10 +990,10 @@ public class TaskListView extends ViewPart { manager.add(new Separator(SEPARATOR_ID_REPORTS)); manager.add(newLocalTaskAction); // manager.add(newCategoryAction); -// manager.add(new Separator()); + // manager.add(new Separator()); manager.add(filterOnPriority); manager.add(new Separator("navigation")); -// manager.add(new Separator(SEPARATOR_CONTEXT)); + // manager.add(new Separator(SEPARATOR_CONTEXT)); manager.add(previousTaskAction); manager.add(nextTaskAction); manager.add(new Separator(SEPARATOR_CONTEXT)); @@ -1005,14 +1018,14 @@ public class TaskListView extends ViewPart { } else { task = (ITask) element; } - + addAction(openUrlInExternal, manager, element); - if (!(element instanceof AbstractRepositoryTask) - || element instanceof AbstractTaskContainer || element instanceof AbstractRepositoryQuery) { + if (!(element instanceof AbstractRepositoryTask) || element instanceof AbstractTaskContainer + || element instanceof AbstractRepositoryQuery) { addAction(renameAction, manager, element); } - addAction(copyDescriptionAction, manager, element); - + addAction(copyDetailsAction, manager, element); + if (task != null) { if (!(task instanceof AbstractRepositoryTask)) { if (task.isCompleted()) { @@ -1022,11 +1035,11 @@ public class TaskListView extends ViewPart { } } -// if (task.isActive()) { -// manager.add(deactivateAction); -// } else { -// manager.add(activateAction); -// } + // if (task.isActive()) { + // manager.add(deactivateAction); + // } else { + // manager.add(activateAction); + // } addAction(removeFromCategoryAction, manager, element); addAction(deleteAction, manager, element); } else { @@ -1034,7 +1047,7 @@ public class TaskListView extends ViewPart { } } else if (element instanceof AbstractTaskContainer || element instanceof AbstractRepositoryQuery) { addAction(openUrlInExternal, manager, element); - addAction(copyDescriptionAction, manager, element); + addAction(copyDetailsAction, manager, element); addAction(deleteAction, manager, element); } @@ -1044,7 +1057,7 @@ public class TaskListView extends ViewPart { if (drilledIntoCategory != null) { manager.add(goUpAction); } - + for (IDynamicSubMenuContributor contributor : MylarTaskListPlugin.getDefault().getDynamicMenuContributers()) { MenuManager subMenuManager = contributor.getSubMenuManager(this, (ITaskListElement) selectedObject); if (subMenuManager != null) @@ -1055,7 +1068,7 @@ public class TaskListView extends ViewPart { manager.add(newCategoryAction); manager.add(newLocalTaskAction); manager.add(new Separator(SEPARATOR_REPORTS)); - + manager.add(new Separator(SEPARATOR_CONTEXT)); manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); @@ -1065,7 +1078,7 @@ public class TaskListView extends ViewPart { if (element instanceof ITask || element instanceof AbstractQueryHit) { manager.add(menuToAdd); } - } + } private void addAction(Action action, IMenuManager manager, ITaskListElement element) { manager.add(action); @@ -1097,7 +1110,7 @@ public class TaskListView extends ViewPart { action.setEnabled(false); } else if (action instanceof OpenTaskListElementAction) { action.setEnabled(true); - } else if (action instanceof CopyDescriptionAction) { + } else if (action instanceof CopyDetailsAction) { action.setEnabled(true); } else if (action instanceof RenameAction) { action.setEnabled(true); @@ -1126,7 +1139,7 @@ public class TaskListView extends ViewPart { } } else if (action instanceof OpenTaskListElementAction) { action.setEnabled(true); - } else if (action instanceof CopyDescriptionAction) { + } else if (action instanceof CopyDetailsAction) { action.setEnabled(true); } else if (action instanceof RenameAction) { if (element instanceof TaskArchive) @@ -1144,7 +1157,7 @@ public class TaskListView extends ViewPart { private void makeActions() { - copyDescriptionAction = new CopyDescriptionAction(this); + copyDetailsAction = new CopyDetailsAction(this); // workOffline = new WorkOfflineAction(); goIntoAction = new GoIntoAction(); @@ -1235,8 +1248,8 @@ public class TaskListView extends ViewPart { } public String getBugIdFromUser() { - InputDialog dialog = new InputDialog(getSite().getWorkbenchWindow().getShell(), - "Enter Bugzilla ID", "Enter the Bugzilla ID: ", "", null); + InputDialog dialog = new InputDialog(getSite().getWorkbenchWindow().getShell(), "Enter Bugzilla ID", + "Enter the Bugzilla ID: ", "", null); int dialogResult = dialog.open(); if (dialogResult == Window.OK) { return dialog.getValue(); @@ -1267,7 +1280,7 @@ public class TaskListView extends ViewPart { filters.add(filter); } } - + public void clearFilters(boolean preserveArchiveFilter) { filters.clear(); if (preserveArchiveFilter) { @@ -1387,19 +1400,28 @@ public class TaskListView extends ViewPart { if (task == null || getViewer().getControl().isDisposed()) { return; } - getViewer().setSelection(new StructuredSelection(task)); - // if no task exists, select the query hit if exists - AbstractQueryHit hit = null; - if (getViewer().getSelection().isEmpty() - && (hit = MylarTaskListPlugin.getTaskListManager().getTaskList().getQueryHitForHandle( - task.getHandleIdentifier())) != null) { - AbstractRepositoryQuery query = MylarTaskListPlugin.getTaskListManager().getTaskList().getQueryForHandle( - task.getHandleIdentifier()); - getViewer().expandToLevel(query, 1); - getViewer().setSelection(new StructuredSelection(hit), true); - } else { - if (task.getContainer() != null) { - getViewer().expandToLevel(task.getContainer(), 1); + StructuredSelection currentSelection = (StructuredSelection) getViewer().getSelection(); + ITask selectedTask = null; + if (currentSelection.getFirstElement() instanceof ITask) { + selectedTask = (ITask) currentSelection.getFirstElement(); + } else if (currentSelection.getFirstElement() instanceof AbstractQueryHit) { + selectedTask = ((AbstractQueryHit) currentSelection.getFirstElement()).getCorrespondingTask(); + } + if (!task.equals(selectedTask)) { + getViewer().setSelection(new StructuredSelection(task), true); + // if no task exists, select the query hit if exists + AbstractQueryHit hit = null; + if (getViewer().getSelection().isEmpty() + && (hit = MylarTaskListPlugin.getTaskListManager().getTaskList().getQueryHitForHandle( + task.getHandleIdentifier())) != null) { + AbstractRepositoryQuery query = MylarTaskListPlugin.getTaskListManager().getTaskList() + .getQueryForHandle(task.getHandleIdentifier()); + getViewer().expandToLevel(query, 1); + getViewer().setSelection(new StructuredSelection(hit), true); + } else { + if (task.getContainer() != null) { + getViewer().expandToLevel(task.getContainer(), 1); + } } } } @@ -1407,7 +1429,8 @@ public class TaskListView extends ViewPart { protected void refreshTask(ITask task) { refresh(task); AbstractTaskContainer rootCategory = MylarTaskListPlugin.getTaskListManager().getTaskList().getRootCategory(); - if (task.getContainer() == null || task.getContainer() instanceof TaskArchive || task.getContainer().equals(rootCategory)) { + if (task.getContainer() == null || task.getContainer() instanceof TaskArchive + || task.getContainer().equals(rootCategory)) { refresh(null); } else { refresh(task.getContainer()); @@ -1417,7 +1440,7 @@ public class TaskListView extends ViewPart { task.getHandleIdentifier()); for (AbstractQueryHit hit : hits) { refresh(hit); - } + } } private void refresh(final ITaskListElement element) { @@ -1452,7 +1475,7 @@ public class TaskListView extends ViewPart { public Set<AbstractTaskListFilter> getFilters() { return filters; } - + public static String getCurrentPriorityLevel() { if (MylarTaskListPlugin.getMylarCorePrefs().contains(TaskListPreferenceConstants.SELECTED_PRIORITY)) { return MylarTaskListPlugin.getMylarCorePrefs().getString(TaskListPreferenceConstants.SELECTED_PRIORITY); @@ -1465,7 +1488,6 @@ public class TaskListView extends ViewPart { return FILTER_ARCHIVE; } - public void setPriorityButtonEnabled(boolean enabled) { filterOnPriority.setEnabled(enabled); } |